Size: a a a

2020 June 01

T

Thatskriptkid in r0 Crew (KZ)
да, похоже
источник

R

Reffi_4 in r0 Crew (KZ)
но увы, нельзя плюсы
источник

R

Reffi_4 in r0 Crew (KZ)
а вот кстати хорошо что нет уточнения
источник

R

Reffi_4 in r0 Crew (KZ)
о том сколько функций можно вызывать
источник

F

Franky_T in r0 Crew (KZ)
#include <stdio.h>
#include <stdlib.h>

void f(int i)
{
}

void (*p[1002])(int);

void print_or_exit(int c)
{
   p[c] = &f;
   p[1001] = &exit;
   (*p[c])(0);

   printf("%d\n", c);
   print_or_exit(c + 1);
}

int main(void) {
   print_or_exit(1);
   return 0;
}
источник

F

Franky_T in r0 Crew (KZ)
Вот это милое)
источник

T

Thatskriptkid in r0 Crew (KZ)
@Franky_T я понял о чем ты говорила сегодня более точно. Можно забить пайп так, что программа повиснет в ожидании его освобождения, тем самым получаем еще один вариант "завершения" программы
источник

F

Franky_T in r0 Crew (KZ)
Thatskriptkid
@Franky_T я понял о чем ты говорила сегодня более точно. Можно забить пайп так, что программа повиснет в ожидании его освобождения, тем самым получаем еще один вариант "завершения" программы
Да, вариант от Ербола) тоже прикольно
источник

T

Thatskriptkid in r0 Crew (KZ)
Franky_T
#include <stdio.h>
#include <stdlib.h>

void f(int i)
{
}

void (*p[1002])(int);

void print_or_exit(int c)
{
   p[c] = &f;
   p[1001] = &exit;
   (*p[c])(0);

   printf("%d\n", c);
   print_or_exit(c + 1);
}

int main(void) {
   print_or_exit(1);
   return 0;
}
да, круто, я бы до такого не догадался
источник

T

Thatskriptkid in r0 Crew (KZ)
Franky_T
Да, вариант от Ербола) тоже прикольно
Этот принцип как раз был в одной уязвимости, там суть была в том, что ты забиваешь пайп и не даешь дальше читать, тем временем ты подменяешь адрес буфера, откуда идет чтение, на адреса в kernelspace, потом отпускаешь пайп и ты считай читаешь kernelspace из userspace
источник

F

Franky_T in r0 Crew (KZ)
Жесть какая
источник

R

Reffi_4 in r0 Crew (KZ)
блин, я щас узнал что в винде нет сигналов
источник

R

Reffi_4 in r0 Crew (KZ)
Thatskriptkid
да, круто, я бы до такого не догадался
++
источник

T

Thatskriptkid in r0 Crew (KZ)
про memory api я думал, что можно написать так, что получится выделить только 1000 кусков памяти, а дальше программа крашнится, так как памяти больше нет. То есть сдвинуть границу памяти так, чтобы как раз после вывода 1000 чисел она в нее упиралась. Это возможно сделать и это тоже один из способов, но так лень вчера было
источник

R

Reffi_4 in r0 Crew (KZ)
ну, раз задача была решена, могу подкинуть от себя другую
источник

R

Reffi_4 in r0 Crew (KZ)
"Дан массив и число n, сделайте из цифр в массиве максимальное число меньше n. n гарантированно будет больше минимального числа в массиве"
например n=10 a=[1, 0, 2]
источник

R

Reffi_4 in r0 Crew (KZ)
цифры не должны повторяться
источник

R

Reffi_4 in r0 Crew (KZ)
в 33 строки на жс решил...ужас
источник

R

Reffi_4 in r0 Crew (KZ)
на питоне вообще просто решить...с готовой-то либой(itertools)
источник

T

Thatskriptkid in r0 Crew (KZ)
Thatskriptkid
про memory api я думал, что можно написать так, что получится выделить только 1000 кусков памяти, а дальше программа крашнится, так как памяти больше нет. То есть сдвинуть границу памяти так, чтобы как раз после вывода 1000 чисел она в нее упиралась. Это возможно сделать и это тоже один из способов, но так лень вчера было
@Franky_T вот что я имел в виду
источник