Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

PE Header + Resource Directory unter 64 Bit auslesen?

  Alt 17. Feb 2009, 21:13
Hey,

ich habe mir eine Unit geschrieben, die die PE Header eine EXE Datei ausliest und die Sections parst. Dies funktioniert wunderbar, sowohl mit 32 als auch mit 64 Bit EXEn. Weitergehend habe ich die Unit jetzt so erweitert, dass ich die Resourcen, die sich in der .rsrc Section befinden manuell auslesen kann. Die Strukturen dazu habe ich in einem offiziellen Dokument von Microsoft gefunden.

http://www.microsoft.com/whdc/system...re/PECOFF.mspx

Wenn ich meinen Code an einer 32 Bit EXE ausprobiere, so klappt alles wunderbar. Lese ich jetzt eine 64 Bit EXE ein, so gibt es schon Probleme beim Auslesen der ersten Resource Directory Struktur. Die Felder im Record enthalten unsinnige Werte und dies obwohl der anhand der PE Header ermittelte Begin der Resource Table korrekt zu sein scheint.

Meine Fragen:
Gibt es Unterschiede zwischen den Resource Sturkturen? (Der PE Header selbst unterscheidet sich ja nicht sichtbar bei 32 und 64 Bit Dateien)
Wenn ja, wie erkenne ich eine 64 Bit EXE direkt am PE Header?

Könnte mir vorstellen, dass in der 64 Bit EXE die Integer Typen einfach doppelt so groß sind, was ja auch einer der Unterschiede zwischen 32 und 64 Bit Code ist.

Gruß Zacherl
  Mit Zitat antworten Zitat