Я использую IDA Pro для дизассемблирования файла DLL Windows. В какой-то момент у меня есть строка кода, говорящая
mov esi, dword_xxxxxxxx
Мне нужно знать, что такое двойное слово, но двойной щелчок по нему приводит меня на страницу .data, где все под вопросительными знаками .
Как мне получить обычный текст, который должен быть там?
1 ответ
Если вы видите вопросительные знаки в IDA, это означает, что в этом месте файла (на вашем диске) нет физических данных.
Разделы в файлах PE имеют физический размер (заданный тегом SizeOfRawData заголовка раздела). Этот физический размер (на диске) может отличаться от размера раздела, если он отображается в память процесса загрузчиком Windows (этот размер задается тегом VirtualSize заголовка раздела).
Итак, если поле VirtualSize
больше, чем поле SizeOfRawData
, часть раздела не имеет физического существования и существует только в памяти (после того, как файл отображается в адресное пространство процесса).
В большинстве случаев в точке входа в программу вы можете предположить, что эта память заполнена 0 (но некоторые части памяти могут быть записаны загрузчиком Windows).
Чтобы получить места, где данные записываются, читаются или загружаются, вы можете использовать перекрестные ссылки (xref). Вот пример:
Щелкните имя данных, из которых вы хотите получить внешнюю ссылку:
Затем нажмите 'x', вам будет показано все известное (для ida) местоположение, в котором используются данные:
Во втором столбце указано, как используются данные:
- r означает, что он прочитан
- w означает, что написано
- o означает, что он загружен как указатель.
Похожие вопросы
Связанные вопросы
Новые вопросы
windows
Написание программного обеспечения, специфичного для операционной системы Microsoft Windows: API, поведения и т. д. ОБЩАЯ ПОДДЕРЖКА WINDOWS НЕ ПО ТЕМЕ. Вопросы поддержки можно задать на https://superuser.com