Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

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

Re: PE Header + Resource Directory unter 64 Bit auslesen?

  Alt 17. Feb 2009, 22:00
Ah danke euch, damit kann ich jetzt zumindest mal zwischen 64 Bit und 32 Bit differenzieren

Also das Ermitteln des IMAGE_DIRECTORY_ENTRY_RESOURCE Directories funktioniert schonmal. Doch dann hängt es an den verwendeten Strukturen, mit denen ich die Resourcen auslese. Momentan verwende ich folgende:

Code:
typedef struct _IMAGE_RESOURCE_DIRECTORY
{
DWORD  Characteristics; // Not important to resource retrieval.
DWORD  TimeDateStamp;  // Not important to resource retrieval.
WORD   MajorVersion;   // Not important to resource retrieval.
WORD   MinorVersion;   // Not important to resource retrieval.
WORD   NumberOfNamedEntries;
WORD   NumberOfIdEntries;
//  IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[];

IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY;

typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY
{
DWORD Name;
DWORD OffsetToData;
}
IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY;

typedef struct _IMAGE_RESOURCE_DIR_STRING_U
{
WORD   Length;       // Number of Unicode characters in string
WCHAR  NameString[1]; // Length Unicode characters
}
IMAGE_RESOURCE_DIR_STRING_U, *PIMAGE_RESOURCE_DIR_STRING_U;

typedef struct _IMAGE_RESOURCE_DATA_ENTRY
{
DWORD  OffsetToData;
DWORD  Size;
DWORD  CodePage; // Possibly important to resource retrieval.
DWORD  Reserved; // Not important to resource retrieval.
}
IMAGE_RESOURCE_DATA_ENTRY, *PIMAGE_RESOURCE_DATA_ENTRY;
Ändert sich im Vergleich zur 32 Bit EXE irgendwas an der Größe der WORD und DWORD Felder? Ist die einzige Erklärung die mir spontan einfällt, außer, dass die Strukturen für 64 Bit EXEn komplett geändert wurden, was ich mir aber irgendwie auch nicht vorstelle kann.

Gruß Zacherl
  Mit Zitat antworten Zitat