Изменение адреса памяти при запуске двоичного кода - PullRequest
0 голосов
/ 10 июля 2020

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

Например: когда я выгружаю заголовок файла с помощью objdump -d myapp. Я вижу такую ​​точку входа: 0x401070 (gdb также показывает те же адреса перед первым запуском), но когда я запускаю эту программу внутри какого-то другого инструмента, каждый адрес в файле сильно меняется. Поэтому, когда я запускаю программу в gdb и затем использую «информационный файл», я получаю такой ответ: Точка входа: 0x555555555070 и все разделы, такие как .data, .text и c. также меняют свои адреса.

Я попытался загрузить рабочие сценарии, написанные в python для моей операционной системы, которые используют уязвимость переполнения буфера в некоторых конкретных c двоичных файлах, но эти эксплойты не работают для меня, потому что мои адреса разные.

Операционная система, которую я использую: Parrot linux 64bit

Не могли бы вы подсказать мне что-нибудь, почему это происходит?

...