Size: a a a

2020 June 01

T

Thatskriptkid in r0 Crew (KZ)
void func(int a) {
       printf("%d\n", (1000-a));
       char b[86];
       a--;
       func(a);
}

int main() {

       struct rlimit old_lim, lim, new_lim;
 
   lim.rlim_cur = 4;
   lim.rlim_max = 16;
 
   // Set limits
   setrlimit(RLIMIT_STACK, &lim);

       func(1000);

       return 0;
}
источник

T

Thatskriptkid in r0 Crew (KZ)
Franky_T
ага, вижу.. круто, слушай. Все время забываю, что в С столько всего можно
пришлось почитать. МОжно еще тоже самое но с памятью, но эксперементировать лень. Там суть в том, что вызовы brk(). sbrk(), mmap() могут крашнутся если мало выставить доступной виртуальной памяти, так называемого program break
источник

F

Franky_T in r0 Crew (KZ)
круто. Я как-то всегда извне такие ограничения ставила, если надо было. А можно и в самой программе, оказывается)
источник

T

Thatskriptkid in r0 Crew (KZ)
Franky_T
круто. Я как-то всегда извне такие ограничения ставила, если надо было. А можно и в самой программе, оказывается)
да, то что я сделал, это типа аналог ulimit
источник

T

Thatskriptkid in r0 Crew (KZ)
Всё, теперь никаких задачек, мозг уже болит
источник

F

Franky_T in r0 Crew (KZ)
))))
источник

R

Reffi_4 in r0 Crew (KZ)
А как же моя с массивом(
источник

T

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

T

Thatskriptkid in r0 Crew (KZ)
то есть выставить 1000 и делать open() и на 1001 он крашнится
источник

F

Franky_T in r0 Crew (KZ)
ага. Но больше как-то сходу ничего не приходит в голову из других параметров процесса
источник

T

Thatskriptkid in r0 Crew (KZ)
Franky_T
ага. Но больше как-то сходу ничего не приходит в голову из других параметров процесса
процессорное время ввделенное процессу, им тоже можно манипулировать
источник

F

Franky_T in r0 Crew (KZ)
🙈 удивительный мир с)
источник

T

Thatskriptkid in r0 Crew (KZ)
Thatskriptkid
то есть выставить 1000 и делать open() и на 1001 он крашнится
их кстати даже читать не надо, достаточно просто открыть. вообще, в исходниках ядра я нашел описание одной константы и отсюда еще способов 10 крашнуть
источник

F

Franky_T 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)
Reffi_4
у меня есть мысля...не знаю на сколько она верна: можно создать переменную int i = 1000; и  можно установить обработчик исключения на zero division, в функции a нужно сделать декремент i и попытку поделить что-то на i..хм..сли i не 0, то исключения не будет и снова вызываем a
Но это уже было, как выяснилось
источник

T

Thatskriptkid in r0 Crew (KZ)
Reffi_4
Проще всего поймать исключения на деление на нуль
никто не спорит, это проще, просто надо было принципиально чтото с лимитами сделать
источник

R

Reffi_4 in r0 Crew (KZ)
Хм, знает кто про кибервызов от ростелекома?
источник

T

Thatskriptkid in r0 Crew (KZ)
Reffi_4
А как же моя с массивом(
надо поесть
источник