Нет функции, содержащей программный счетчик для выбранного кадра

Я пытаюсь выполнить атаку переполнения буфера для данного уязвимого кода. Но кажется, что это так. идет не так, потому что, хотя мои строки эксплойта не повреждают стек, я вообще не могу заставить мой ассемблерный код (встроенный в строку эксплойта) работать.

Вот фрагмент значений памяти перед выполнением инструкции 'ret' программы, которую я хочу атаковать.

0x55683984:     0x5568398c   0x...(old r.a)      0x68e322a1      0x0000c31c
0x55683994:     0xf7fa9400      0x0804a3d7       0x556839c0      0xf7e518d0

На этом этапе что-то идет не так, потому что он не может вытолкнуть стек и сделать точку% eip для выталкиваемого значения? Итак, мой ассемблерный код эксплойта не работает. (0x68e322a1 0x0000c31c) Gdb сообщает, что ни одна функция не содержит программный счетчик для выбранного фрейма. и когда я пытаюсь выполнить его без отладки, возникает ошибка сегментации.

Связана ли эта проблема с длиной моей сборки? (в данном случае 6)?

Program received signal SIGSEGV, Segmentation fault.
0x5568398c in ?? ()
(gdb) x 0x5568398c
0x5568398c: 0x68e322a1

как это может случиться, если я могу видеть, что внутри адреса вызывает segfault?

7
задан bfaskiplar 20 November 2011 в 14:31
поделиться