Мне нужно сохранить в файл таблицу такую же как выдаёт "PETools" при "Dump region" Код (Text): HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, Pid ); FILE *f; DWORD start=0; f = fopen("TEST.txt", "w"); while(start<0xFFFFFFFF) { MEMORY_BASIC_INFORMATION mbi; int sz=VirtualQueryEx(hProcess,(void*)start,&mbi,sizeof(MEMORY_BASIC_INFORMATION)); if( (mbi.State==MEM_COMMIT) && (mbi.Protect!=PAGE_READONLY) && (mbi.Protect!=PAGE_EXECUTE_READ) && (mbi.Protect!=PAGE_GUARD) && (mbi.Protect!=PAGE_NOACCESS) ) { printf("Found memory based at %d, size %d",mbi.BaseAddress,mbi.RegionSize); char *p=(char*)malloc(mbi.RegionSize); SIZE_T lpRead; if(!ReadProcessMemory(hProcess,(void*)start,p,mbi.RegionSize,&lpRead)) printf("ReadProcessMemory failed %d Read %d",GetLastError(),lpRead); if(mbi.RegionSize!=lpRead) printf("Read short bytes %d != %d",mbi.RegionSize,lpRead); fwrite(p,1,lpRead,f); } if(start+mbi.RegionSize<start) break; start+=mbi.RegionSize; } создаётся пустой файл =(
Да о чем тут говорить - проверки открытия процесса нет, файл открывается в текщей директории - фиг знает какой, проверки открытия файла нет, память маллоком выделяется и не освобождается - видать решил себе всю память чужого процесса перекачать
Програмка MemViewer делает то, что нужно, хотя обидно, что так и не научился делать самостоятельно =((