Wie zu erkennen, dass eine bestimmte PE-Datei (exe oder dll) ist 64 bit oder 32 bit

Brauche ich, um zu erkennen, ob eine gegebene .dll-oder .exe-Datei ist 32 bit oder 64 bit

Im moment habe ich nur eine Lösung: Lesen Sie den PE-Header aus der angegebenen Datei und nehmen Sie die 'Maschine' Feld von dort aus.

( Spezifikation: Microsoft Portable Executable and Common Object File Format Specification (.docx-Datei) im Abschnitt "3.3. COFF File Header (Objekt und Bild)" )

In diesem Feld kann bis zu 20 Werte. Drei von Ihnen sind:

IMAGE_FILE_MACHINE_I386  ( == 32bit )

IMAGE_FILE_MACHINE_IA64  ( == 64bit )

IMAGE_FILE_MACHINE_AMD64 ( == 64bit )

Meine Fragen:

1) Ist die 'Maschine' zu Bitanzahl Zuordnung korrekt oder habe ich da etwas verpasst? Gibt es irgendwelche anderen Einschränkungen?

2) Ist es einfacher Weg zu erkennen, der 32/64-Bitanzahl (wahrscheinlich irgendein bestimmtes Feld im PE-format habe ich nicht bemerkt oder einige spezielle system-Funktion)?

dup: stackoverflow.com/questions/971689/...
Dass die andere Frage ist, zu Fragen, über die Architektur, das ist eine Frage über das Wort Größe.
Dokumentation aktualisiert, von v8 auf v11 jetzt im Jahr 2017: microsoft.com/whdc/system/platform/firmware/PECOFF.mspx

InformationsquelleAutor inazaruk | 2009-07-20

Schreibe einen Kommentar