Re: Поиск в памяти чужой программы
От: BK  
Дата: 23.07.04 10:21
Оценка:
Что сильно медленно работает?

Я делал так
MEMORY_BASIC_INFORMATION MBI;
    DWORD dwNumByte;

    SYSTEM_INFO sInfo;
    GetSystemInfo(&sInfo);
    PVOID pvAddress =sInfo.lpMinimumApplicationAddress; 

    while( pvAddress < sInfo.lpMaximumApplicationAddress)
    {
        dwNumByte = VirtualQueryEx(hProcess,pvAddress,&MBI,sizeof(MBI) ); 

     if(dwNumByte != sizeof(MBI) )
     {
        //Error
     }
     
     pvAddress = (PVOID) ( (DWORD)MBI.BaseAddress + MBI.RegionSize);

     if( MEM_COMMIT != MBI.State ) continue;

       DWORD dwNumberOfBytesRead;
       void* pdwBuf = 0;
       pdwBuf= new BYTE[MBI.RegionSize];
       if(!pdwBuf) 
       {
            // error at alloc memory
       }

           BOOL b=FALSE;        
        b= ReadProcessMemory(
                  hProcess,       // handle to the process whose memory is read
                  MBI.BaseAddress,       // address to start reading
                  pdwBuf,// address of buffer to place read data
                  MBI.RegionSize,//iCount,                 // number of bytes to read
                  &dwNumberOfBytesRead  // address of number of bytes read
              );
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.