Адрес исполняемой файла ImageBase
Почему ImageBase - это разница между CFF и OllyDbg?
1 ответ
CFF показывает вам статический анализ, то есть он просто читает файл с диска, не отлаживая его во время выполнения, показывая "Preferred ImageBase" из заголовка PE, именно здесь двоичный файл хочет быть загружен во время выполнения.
Когда вы выполняете динамический анализ, такой как ollydbg, он показывает вам значения в PE-заголовке во время выполнения, ImageBase будет хранить текущую ImageBase, а не предпочитаемую для диска. Но когда вы прочитаете DllCharacteristics из необязательного PE-заголовка, вы увидите, что для него установлено значение 0x8140.
0x0040 = IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
Это означает, что рандомизация макета адресного пространства включена, заставляя загрузчик Windows загружать модули по случайным адресам, чтобы сделать эксплойты более сложными, потому что жестко закодированные JMP и адреса не будут точными.
Разработчикам эксплойтов теперь нужно вычислять все во время выполнения, хорошо, если только вы не используете Windows 8 или 10, потому что ошибка приводила к неправильной работе ASLR...