Как узнать все адресса страниц, которые выделелись в процессе во время его работы ? Я так понимаю только такой вариант возможен: GetSystemInfo + перебор адресов страниц + VirtualQueryЕх ?
CyberManiac бред) очень рекомендую тебе промолчать, если нечего сказать. устал читать твой бред по всему форуму
Сделал такой код: Код (Text): function ScanVirtualMemory(pid:THandle):PChar; var PageSize:DWORD; PageStart,PageEnd,p:PChar; SysInfo:SYSTEM_INFO; MemInfo:MEMORY_BASIC_INFORMATION; begin Result:=nil; pid:=OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_READ,false,pid); if pid = 0 then begin // error exit; end; GetSystemInfo(SysInfo); PageStart:=SysInfo.lpMinimumApplicationAddress; PageEnd:=SysInfo.lpMaximumApplicationAddress; PageSize:=SysInfo.dwPageSize; while PageStart < PageEnd do begin if(VirtualQueryEx(pid,PageStart,MemInfo,sizeof(MemInfo))<>0 ) then begin writeln(IntToHex(cardinal(MemInfo.BaseAddress),8),#13#10); end; inc(PageStart,PageSize); end; CloseHandle(pid); end; var pid:THandle; str:string; begin writeln('pid:'); VirtualAlloc(0,3,MEM_COMMIT,PAGE_READWRITE); pid := GetCurrentProcessId(); // readln(pid); writeln('string:'); // readln(str); ScanVirtualMemory(pid); readln; end. Но что то он не показывает ту память которая была веделена через VirtualAlloc(0,3,MEM_COMMIT,PAGE_READWRITE);
это типа как vmmap от Sysinternals? Если да, то у Рихтера был пример в его книге он идет на диске: 14-VMMap