Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

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

AW: 32bit-DLL mit LoadLibrary auf einem 64bit-System laden?

  Alt 25. Mai 2016, 13:50
Eine 64Bit-Anwendung erfordert zwingend 64Bit-DLLs
Das ist nicht ganz korrekt. Zumindest kann eine 32 Bit Anwendung "ohne Probleme" eine 64 Bit DLL laden. So funktioniert übrigens auch die ganze WOW64 Emulation. Die System Dlls wie kernel32 sind in einer 64 Bit Anwendung sehr wohl geladen, nur kann die Anwendung diese nicht sehen, da sie in einem Speicherbereich > 32 Bit gemappt werden. Das 32 bittige kernel32 Äquivalent leitet die Aufrufe der Systemfunktionen dann nur noch auf den 64 Bit Code um, während gleichzeitig die CPU kurzzeitig in den 64 Bit Mode geschaltet wird.

Dieses kurzzeitige Umschalten kann man übrigens auch selbst machen:
http://rce.co/knockin-on-heavens-gat...ode-switching/

Ist allerdings nicht ganz trivial und sicherlich ziemlich hacky.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat