有人可以帮我解释下这段代码吗!??
var
p : Pointer;
mi : MEMORY_BASIC_INFORMATION;
x,GG : longword;
lPbaseAddr : Pointer;
lPBuffer : array[0..3] of BYTE;
while longword(p)<$80000000do
begin
if (x<>VirtualQueryEx(Handle_Share,p,mi,x)) then break;
if (mi.State = MEM_COMMIT) and (mi.Protect = PAGE_READWRITE) then begin
GG := mi.RegionSize;
lPbaseAddr := p;
while GG > 0 do begin
if ReadProcessMemory(Handle_Share,lPbaseAddr,@lpBuffer,4,j) then
begin
agm := @lpBuffer;
if agm^ = ShareData then begin
New(op);
op^.Data := LongWord(agm^);
op^.Address := Longword(lpBaseAddr);
LT.Add(op);
end;
end;
inc(longword(lpbaseaddr),4);
Dec(GG,4);
end; end;
inc(longword(p),mi.RegionSize);
end;