Проблемы с доступом к салазкам NOP - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь получить доступ к салазкам NOP для выполнения кода оболочки (упражнение переполнения буфера).У меня есть доступ к 4-байтовому адресу RET.Мне нужно знать значение, чтобы перезаписать его при переполнении.

Я использовал x/1000xb $esp для просмотра большого количества памяти в функции, в которой я сейчас нахожусь в точке останова при использовании GDB.

enter image description here

Я заполнил свой буфер NOP (\ x90s), чтобы начать.Мне нужно заполнить адрес RET, чтобы быть там, где начинается буфер (из того, что я понимаю).Я немного запутался, как работает эта память, так как кажется, что есть куски по 8 байт, затем куски по 2, затем куски по 8 и повтор.

Глядя на 3-ю строку, я вижу, где начинаются мои NOP.Я интерпретирую первый байт как адрес 0xbfffe910, и считаю до начала 0x90, что для меня выглядит как 0xbfffe914.

Однако, когда я ввожу этот адрес (порядковый номер), код не работает.Я не уверен, что ввожу адрес RET неправильно.Кроме того, я не понимаю, почему есть строки, где он выглядит так, как будто он имеет только 2 байта, но показывает 8 значений ... пожалуйста, помогите!

...