Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

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

AW: DLL Injection von Memory in anderen Prozess

  Alt 25. Jul 2015, 14:19
Optimalerweise wäre es jedoch folgendermaßen:
Programm (exe) läd eine Dll direkt in einen Zielprozess ohne Zwischen-DLL und ohne Zwischen-Speichern auf Festplatte.
Warum darf die Dll nicht auf der Festplatte zwischengespeichert werden?

Du kannst die Dll auch direkt aus deiner Resource in den Zielprozess mappen, aber das ist nicht wirklich trivial und erfordert viel Wissen über das PE Format und die Funktionsweise des Windows Loaders. Hatte vor Ewigkeiten mal eine "Manual Mapping" Library geschrieben, die Dlls direkt aus einer Resource laden konnte (nur im eigenen Prozess). Es ist aber auch möglich direkt in einen Zielprozess zu mappen.

Mapping der Sections mit NtCreateSection, NtMapViewOfSection, (evtl. VirtualProtect, wenn du die Section Protections korrekt setzen willst), danach musst du Relocations parsen und anwenden, die IAT auflösen (indem du einen kleinen Loader im Zielprozess ausführst z.b. mit CreateRemoteThread), TLS ausführen, DllMain ausführen, ggfls. noch Exception Tables laden (64 Bit) und noch viele weitere kleine Dinge.

Alles in allem den Aufwand nicht wert denke ich
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat