(Gast)
n/a Beiträge
|
AW: Auf Exports hin prüfen ohne DLL zu laden
12. Jul 2021, 13:37
Hmm.. Es ist kein 64Bit Programm sondern eine 32Bit.DLL die ich mit einem 64Bit Programm auslesen will.
Denke sollte egal sein welchen PE Header die 64Bit hat. Damit lese ich nur aus. Oder?
Nein, natürlich nicht.
Der/die ersten PE-Header sind gleich.
Dort steht dann auch drin, was die Binary bzw. PortableExecute für ein Format hat. (DOS, Win32, Win64 usw.)
Und damit kannst du dann bestimmen welches DatenFormat die nachfolgenden Header/Strukturen haben.
Hmm.. Schwierig.
Eins davon schlägt immer fehl.
Delphi-Quellcode:
ExportTable := ImageRvaToVa(Header, ImagePointer, Header.OptionalHeader.DataDirectory[0].VirtualAddress, nil);
if not Assigned(ExportTable) then
exit;
NamesPointer := ImageRvaToVa(Header, ImagePointer, Cardinal(ExportTable.AddressOfNames), nil);
if not Assigned(NamesPointer) then
exit;
Names := ImageRvaToVa(Header, ImagePointer, Cardinal(NamesPointer^), nil);
if not Assigned(Names) then
exit;
Geändert von venice2 (12. Jul 2021 um 13:40 Uhr)
|
|
Zitat
|