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