Я использую IDA Pro для дизассемблирования файла DLL Windows. В какой-то момент у меня есть строка кода, говорящая

mov esi, dword_xxxxxxxx

Мне нужно знать, что такое двойное слово, но двойной щелчок по нему приводит меня на страницу .data, где все под вопросительными знаками .

Как мне получить обычный текст, который должен быть там?

6
bunbun 29 Июн 2016 в 10:35

1 ответ

Лучший ответ

Если вы видите вопросительные знаки в IDA, это означает, что в этом месте файла (на вашем диске) нет физических данных.

Разделы в файлах PE имеют физический размер (заданный тегом SizeOfRawData заголовка раздела). Этот физический размер (на диске) может отличаться от размера раздела, если он отображается в память процесса загрузчиком Windows (этот размер задается тегом VirtualSize заголовка раздела).

Итак, если поле VirtualSize больше, чем поле SizeOfRawData, часть раздела не имеет физического существования и существует только в памяти (после того, как файл отображается в адресное пространство процесса).

В большинстве случаев в точке входа в программу вы можете предположить, что эта память заполнена 0 (но некоторые части памяти могут быть записаны загрузчиком Windows).

Чтобы получить места, где данные записываются, читаются или загружаются, вы можете использовать перекрестные ссылки (xref). Вот пример:

enter image description here

Щелкните имя данных, из которых вы хотите получить внешнюю ссылку:

enter image description here

Затем нажмите 'x', вам будет показано все известное (для ida) местоположение, в котором используются данные:

enter image description here

Во втором столбце указано, как используются данные:

  • r означает, что он прочитан
  • w означает, что написано
  • o означает, что он загружен как указатель.
10
Neitsa 29 Июн 2016 в 12:29
Итак, как мне отследить, где находится память двойного слова или куда записывается эта часть памяти?
 – 
bunbun
29 Июн 2016 в 11:32
1
«Итак, как мне отследить, где находится память двойного слова»: вы имеете в виду статически или в адресном пространстве процесса? На вторую часть вашего вопроса я обновил свой ответ.
 – 
Neitsa
29 Июн 2016 в 12:30
Это именно то, что мне нужно
 – 
bunbun
1 Июл 2016 в 10:55
А что, если вопросительные знаки не на странице зернистости, а с вкраплениями нулей, как IAT.
 – 
Lewis Kelsey
12 Июл 2022 в 19:40