EXE Code während der Laufzeit ausführen

Ich habe eine Frage.
Ist es möglich, eine EXE Datei, die ich in meinem Projekt "eingeladen" habe (also drangehängt), ausführen zu lassen, ohne sie vorher zu speichern?
Da ich das für unwahrscheinlich halte, kann man iwas grusliges machen wie die Code-Section der EXE isolieren, ins Mem kopieren und dann ausführen?

Sprache: Egal
 
in Prinzip schon. Ich habe schon einige "Launcher" gesichtet (frag micht jetzt bloß nicht wo).
Wenn Du es alleine machen willst: Du müsstest praktisch den Windows-PE-Loader ersetzten. Also Speicher reservieren, die einzelnen Bestandteile des Programms richtig reinkopieren (Bestandteiele=Sections, die haben jeweils einen VA (Virtuelle Adresse) und VirtualSize angegeben, die nicht mit den Filegrößen übereinstimmen müssen - also erstmal diese beachten, Codesection alleine zu kopieren reicht auch nicht (das Programm braucht ja noch Datensection, Ressourcen usw, davon gibt es mehrere Typen und je nach dem erwarten sie schon eine Vorinitialisierung bzw richtige Zugriffrechte der einzelnen Sections)), dann bleibt noch die Imports auszuwerten und die ImportAdressTabelle auszufüllen, die Reallocationseinträge durchgehen, TLSTable nicht vergessen und was man noch mit den Ressourcen oder dem ganzen "extra" Zeug anstellen muss (Debug,Exception,LoadConfig) habe ich gar keine Ahnung :).
Es ist schon machbar, allerdings setzt es entweder einiges an Hartnäckigkeit und/oder Vorwissen voraus. Eventuell lohnt es sich eher nach "RAM launcher" / "Memory launcher" oder ähnlichem zu suchen. Auch kann man es sich einfacher machen, wenn man z.B nur auf den Start eines bestimmten Programm hinarbeitet.
 
Schau dir doch mal den UPX Code an, ich vermute, da wird bestimmt auf interessante Dokus/Tuts verwiesen. Aber einen PE Loader zu baun ist glaube ich nicht wirklich trivial, wurde aber in anderen Grauzonenboards schon mehrfach erfolgreich gemacht.
 
nicht wirklich trivial
das Problem ist imho eher die Vollständigkeit - dass also wirklich alle Fälle berücksichtigt werden.
Ansonsten kann man ja jeden Packer nehemen - da ist so ein Loader mitintegriert. Öfters auch Teile von UPX "ausgeliehen" (oder y0dacrypter).
 
Zurück
Oben