@SchizLoyd

Как узнать размер стека?

есть такая задачка
Submit the size of the stack space after overwritting the EIP as the answer. (Format: 0x00000)

я эксплуатирую переполнение буффера в Linux в GDB

вот так выглядит пайлоад совсем остальным

Buffer = "\x55" * (1040 - 124 - 95 - 4) = 841
NOPs = "\x90" * 124
Shellcode = "\xda\xca\xba\xe4\x11......\x5a\x22\xa2"
EIP = "\x66" * 4'

задача в том чтоб потом гдето посмотреть то что мне нужно.

я делал вот так: (gdb) x/2000xb $esp+550
и там вот так
0xffffd79a: 0x77 0xa4 0x3d 0xe8 0x7c 0x7b 0x3d 0x66
0xffffd7a2: 0x66 0x66 0x66 0x00 0x4c 0x53 0x5f 0x43

0ч66666666 эт окусок нагрузки

вот регистры
eax 0xffffd395 -11371
ecx 0xffffd1b0 -11856
edx 0xffffd1d4 -11820
ebx 0x56556fd4 1448439764
esp 0xffffd174 0xffffd174
ebp 0xffffd178 0xffffd178
esi 0xf7fc2000 -134471680
edi 0x0 0
eip 0x56555551 0x56555551


как узнать то мне нужно?
  • Вопрос задан
  • 1879 просмотров
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Как узнать размер стека?

Тебе сначало нужно самому понять, какой именно размер тебя интересует.
Потому что стек основного потока в пользовательских приложениях linux выделяется динамически.
Например

$ cat /proc/16150/maps | grep stack
7ffd8875b000-7ffd8877c000 rw-p 00000000 00:00 0                          [stack]

в этом приложении сейчас доступно 0x21000 байт стека (132Кб). Но вообще стек может дорасти...

$ ulimit -a | grep stack
stack size              (kbytes, -s) 8192

...до 8Мб.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы