mapa pamieci processu

0

Witam
Moze ktos sie orientuje w jaki sposob mozna odczytac mape pamieci processu by otrzymac podobny efekt do tego jaki daje ollydbg
user image
Problem jest w tym ze kolejne strony pamieci nie sa rownie oddalone ,czyli:
AdresNastepnej!=AdresPoprzedniej+RozmiarStrony.
Widac to na zalaczonym zdjeciu.
Obojetnie mi czy bede odczytywal pamiec po stronie czy cala,chodzi o efektywne przeszukiwania pamieci procesu...Uff ;-)

0

VirtualQueryEx - daje atrybuty i zwraca rozmiar stron mających takie same flagi.

0

Hym.
Przeanalizujmy sytuacje taka jak na zdjeciu.
Za pierwszym razem VirtualQueryEx :

unsigned long MinAdress=0x00010000;
VirtualQueryEx(handle_to_Process,(void*)MinAdress,&mbi,sizeof(mbi));

zwroci mi

 mbi.BaseAdres=0x00010000;
mbi.RegionSize=0x1000;

wiec jak najbardziej prawidlowo.
Adres nastepnej strony

MinAdress=MinAdress+mbi.RegionSize;

Iteraz kwestia adresu trzeciej strony, ktory w tym wypadku wynosi 0x0031E000.
W jaki sposob go odgadnac ?
Odnalazlem taki project
http://www.codeproject.com/threads/MDumpAll.asp
Tutaj procka tworzaca liste stron korzysta jeszcze z VirtualAlloc.

0

Olly nie wyswietla nieistniejacych stron chyba, nie? Kolejne co odczytasz to blok z MEM_FREE i jego rozmiar... za nim bedzie kolejny /juz w Olku widoczny/ blok.

0

Deus fakt ;].Zasugerowalem sie tym ze olly wyswietla tylko page ,ktore sa uzywane . :-)
Takze juz wszystko jasne [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1