Если вы видите вопросительные знаки в IDA, это означает, что в этом месте в файле (на вашем диске) нет физических данных.
Разделы в файлах PE имеют физический размер (задается полем SizeOfRawData заголовка секции). Этот физический размер (на диске) может отличаться от размера раздела после его сопоставления с памятью процесса загрузчиком Windows (этот размер задается полем VirtualSize заголовка раздела).
Итак, если поле VirtualSize
больше, чем поле SizeOfRawData
, часть раздела не имеет физического существования и существует только в памяти (как только файл отображается в адресное пространство процесса).
В большинстве случаев, в точке ввода программы вы можете предположить, что эта память заполнена 0 (но некоторые части памяти могут быть записаны загрузчиком окон).
Чтобы получить места, где данные записываются, читаются или загружаются, вы можете использовать перекрестные ссылки (xref). Вот пример:
Нажмите на имя данных, из которого вы хотите внешнюю ссылку:
Затем нажмите «х», вы будете показаны все известные (Ида) место, где используются данные:
вторым колонке указывает на то, как используется данные:
- г означает, что она считывается
- ш означает, что написано
- о означает, что он будет загружен как указатель
Так как отслеживать, где находится память dword, или где записывается эта часть памяти? – bernlim
@bernlim «Итак, как я могу отслеживать, где находится память dword»: вы имеете в виду статически или в адресном пространстве процесса? Во второй части вашего вопроса я обновил свой ответ. – Neitsa
Это именно то, что мне нужно – bernlim