Зная Pid Процесса нужно просмотреть всю память этого процесса.
Как это можно сделать?
До свидания, Evgeniy.
np: Lamb Of God - Blood Junkie
[Metal] [Death] [Doom] [Guitar] [Animate] [C++] [asm]
EZ> Зная Pid Процесса нужно просмотреть всю память этого процесса.
EZ> Как это можно сделать?
вендовый 32-битный exe?
тебе нужон описалово формата Portable Executable. найдешь его на
cracklab.ru, в разделе статей.
открываем процесс - OpenProcess().
ReadProcessMemory() - читаешь хедер PE-файла, он прямо с базы
начинается, обычно 0x400000. размер хедера разный, но 512 байт тебе
хватит.
там читаешь первым делом поле Number of objects in Object Table. потом
идешь туда где кончается PE header и начинается таблица секций. начиная
отсюда, читаешь информацию о секциях, в количестве, равном Number of
objects. анализируешь поля Virtual Address и Virtual Size. дампишь тем
же ReadProcessMemory().
_/Good Luck, Evgeniy./_
... [*ФИТ-151*]-[_Zenwalk Linux_]-[_винмоздай_]-[/дзен/]
19 авг 07 12:16, Boris Shklyaev -> Evgeniy Zhavoronkov:
EZ>> Зная Pid Процесса нужно просмотреть всю память этого процесса.
EZ>> Как это можно сделать?
BS> вендовый 32-битный exe?
BS> тебе нужон описалово формата Portable Executable. найдешь его на
BS> cracklab.ru, в разделе статей.
BS> открываем процесс - OpenProcess().
BS> ReadProcessMemory() - читаешь хедер PE-файла, он прямо с базы
BS> начинается, обычно 0x400000. размер хедера разный, но 512 байт тебе
BS> хватит.
BS> там читаешь первым делом поле Number of objects in Object Table. потом
BS> идешь туда где кончается PE header и начинается таблица секций.
BS> начиная отсюда, читаешь информацию о секциях, в количестве, равном
BS> Number of objects. анализируешь поля Virtual Address и Virtual Size.
BS> дампишь тем же ReadProcessMemory().
Спасибо. Вроде понял. Только не очень понятно с анализированием. Может
примерчик кинешь? Тогда все лишние вопросы сами отпадут :)
До свидания, Evgeniy.
np: As I Lay Dying - The Pain Of Separation[paused]
Во-первых, так ты не сможешь прочитать динамически выделенную память,
во-вторых, есть гораздо более простой и надежный способ. Hужно смотреть в
сторону функции VirtualQueryEx.
BS>> ReadProcessMemory()
EZ> Спасибо. Вроде понял. Только не очень понятно с анализированием.
EZ> Может примерчик кинешь? Тогда все лишние вопросы сами отпадут :)
ушло в NETMAIL