ВА и адреса памяти - PullRequest
       69

ВА и адреса памяти

1 голос
/ 25 апреля 2011

Это должен быть простой вопрос: я знаю, что VA = RVA + база изображений для PE, сейчас я пытаюсь найти в дизассемблере строку и, как оказалось, находится в 0042720E в разделе .text.

База изображений равна 400000, а 2720E - это RVA, до сих пор это нормально.

Но почему, когда я загружаю exe-файл в отладчик, память, в которую отображается инструкция, равна 0140720E?

0140720E (что я вижу в ОЗУ) и 0042720E (VA) отличается от FE0000, почему?Я что-то упустил?

1 Ответ

4 голосов
/ 25 апреля 2011

На самом деле есть только две возможности: произошло перераспределение или вы ошиблись в RVA. Скорее всего, это перераспределение, особенно если вы работаете на Windows Vista или Windows 7 из-за ASLR. В зависимости от того, как вы подключили и какой отладчик вы используете, его можно настроить так, чтобы отладчик настраивал сообщаемые адреса в соответствии с адресами загрузки базового раздела, указанными в PE, ollydbg является одним из них (вы должны запустить приложение через ollydbg, то же самое для DLLs)

...