Es genügt nicht die "Exe" einfach in einen Speicherbereich zu laden, einen Prozess zu erzeugen und die erste Adresse anzuspringen.
Eine "Exe" im
PE-Format ist eigentlich eine Beschreibung wie das Programm im Speicher zu erzeugen ist.
Dazu gehört das Laden diverser
DLL, das Mappen der Sprungadressen entsprechend der enthaltenen Tabelle usw..
Schau dir dazu die Dokumentation des
PE-Formats an.