Ich hab es noch nicht ganz da ich nie sicher bin, dass es so stimmt.
kurzfassung:
Delphi-Quellcode:
// pointer to nt header
INH := Pointer(Cardinal(IDH) + Cardinal(IDH^._lfanew));
// pointer to sectionheader
SHD := pointer(cardinal(@(INH^.OptionalHeader)) + INH^.FileHeader.SizeOfOptionalHeader);
ich dachte eigentlich ich müsste nur den image_nt_header überspringen und wäre dirrekt bei den section header...
SHD := Pointer (Cardinal(INH) + Cardinal(SizeOf(IMAGE_NT_HEADERS)));
sollte ich jedenfalls endgültig an den richtigen section header sein
wollte ich noch wissen wie ich jetzt wirklich an die daten komme
SHD^.VirtualAddress
liefert die virtuelle adresse vom image base - aber welche image base?
die im optional header als image base angegeben wird oder der ursprüngliche .exe basis?
INH^.OptionalHeader.ImageBase
ich versuch wirklich schlau zu werden aus den pcoff trotzdem bin ich absolut unsicher was ich da mache.
lg
Arnulf