Einzelnen Beitrag anzeigen

venice2
(Gast)

n/a Beiträge
 
#7

AW: Auf Exports hin prüfen ohne DLL zu laden

  Alt 12. Jul 2021, 12: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 12:40 Uhr)
  Mit Zitat antworten Zitat