Подскажите, пожалуйста, правильно ли я делаю. Последовательность действий такая: CreateProcess или OpenProcess, WaitForInputIdle, ReadProcessMemory, WriteFile(пишу в файл, то что считал). Читаю с ImageBase по ImageBase+SizeOfImage.
yuzvir Спасибо. А так-то все правильно? Дело в том, что я сдампил программу с такой последовательностью и сравнил с дампом, который получил с помощью PE Tools. Разница в следующем: разница в File Offset, Разные First Bytes. Что же все таки не так?
При попытке запустить, то, что сдампил, появляется следующее сообщение :"Запрос ReadProcessMemory или WriteProcessMemory был выполнен только частично." Подскажите из-за чего это может быть.
Давайте забудем про сдампленную программу. Я запустил процесс, читаю его с пом. ReadProcessMemory и то , что прочитал, сохраняю в prog.exe, после я запускаю prog.exe и она выдает следующее:"Запрос ReadProcessMemory или WriteProcessMemory был выполнен только частично." Ошибок не возникало. Что не так? Подскажите, очень хочу разобраться. Всяк по-моему уже пробовал. Заранее спасибо.
kosfz А ты учитываешь, что смещения секций в файле и в образе различаются ? В файле они выравнены на 512 байт, а в образе на 4К. Поэтому чтобы дамп нормально загружался нужно по крайней мере привести в соответствие смещения и размеры секций с соотв.параметрами SizeOfRawData и PointerToRawData в заголовке PE