Windows, как показать сегмент памяти процесса?
У нас есть такие инструменты, как objdump, readelf и dumbin для отображения содержимого исполняемых файлов.
Но когда исполняемый файл загружается в память (создается процесс), сегменты в памяти обычно отличаются от сегментов в исполняемом файле. Например, при загрузке выделяются два дополнительных сегмента, а именно стек и куча (здесь мы пропускаем детали отображения страниц).
Существует ли инструмент, который помогает отображать сегмент памяти / состояние процесса во времени?
1 ответ
Исполняемые файлы Windows используют формат Portable Executable. Этот формат описывает разделы памяти, которые выделяются при загрузке процесса, и, необязательно, необработанные данные (.text
, .data
разделы) для загрузки в эти разделы.
Каждый раздел обычно имеет смещение файла, указывающее, где в необработанном файле находятся данные, и виртуальный адрес, по которому данные будут загружены. Они могут или не могут напоминать друг друга.
PE Explorer может предоставить вам подробную информацию о разделах (и обо всем остальном о PE-файле) исполняемого файла.
Immunity Debugger позволит вам подключиться к запущенному процессу и увидеть его карту памяти.