Windows PE Header, Section Header, Section Grösse

Hallo,
ich komme einfach nicht darauf, wie die Section Grössen korrekt berechnet werden. Bisher habe ich immer angenommen das die Sectiongrösse durch SizeofRawData im Section Header bestimmt wird. Das kommt aber irgendwie nicht hin. Im Anhang mal ein Bild... wo kommt da der 0xB5000 Wert her, wenn nicht aus dem Section-Header?
Btw: Warum unterscheidet sich VirtualSize von SizeofRawData?
 
Btw: Warum unterscheidet sich VirtualSize von SizeofRawData?

Auf Dateioperationen gilt immer SizeOfRawData.
Auf Image-Manipulationen in Memory gilt immer SECTION_ALIGNED(VirtualSize).

Wenn du in der Datei rumfummeln willst, dann arbeitest du mit FileOffsets.
Dafür brauchst du:
- PointerToRawData (Basisadresse der Section)
- SizeOfRawData (Größe der Section)

Wenn du im Speicher an dem Image rumfummelst, dann arbeitest du mit (R)VAs und brauchst:
- "hModule" (Module-Handle; also Basisadresse des Moduls)
- VirtualAddress (relative Basisadresse der Section)
- VirtualSize (Größe der Section)
 
  • Like
Reactions: CDW
Zurück
Oben