Einzelnen Beitrag anzeigen

Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#9

Re: code section lesen bzw. ram editor

  Alt 2. Jul 2008, 14:34
Ok dann will ich es mal so halbwegs selbst beantworten - soweit es eben stimmt.
das hier dürfte als so halbwegs stimmen um die position der section zu bestimmen
Delphi-Quellcode:
       rawCodePosition := SHD^.PointerToRawData;
       virtualCodeSize := SHD^.Misc.VirtualSize;
wobei sich der startpointer dann so berechnet:

startpos := offset + rawCodePosition; offset ist in dem fall einfach der begin des dos header wie man ihn von moduleentry32 bekommt.

lesen kann man also einfach so:
Delphi-Quellcode:
  for i := 0 to INH^.FileHeader.NumberOfSections-1 do
  begin
       rawCodePosition := SHD^.PointerToRawData;
       virtualCodeSize := SHD^.Misc.VirtualSize;
       repeat
       if ReadProcessMemory(pr,pointer(startpos),@puffer,Sizeof(puffer),read) then
       begin
            counter := counter + read;
            startpos := startpos + read;
       ........
       until counter >= virtualCodeSize;
       .......
  end;
wobei ich diesmal als puffer
puffer : Array [0..4095] of Byte; genommen habe.

für mich bleibt nur noch die frage wie man den puffer am bessten durchsucht.
ich hab das alles mal in einen memory stream geschreiben.
allerdings stellt sich mir die frage wie ich das am bessten nach strings durchsuche.
die meißten sachen dürften widestrings sein und damit hab ich wenig erfahrung.

wenn darauf jemand eine antwort hat oder einen tip dann bitte antworten.

lg
Arnulf
  Mit Zitat antworten Zitat