Wie kann ich mit C ++ eine ausführbare Datei aus dem RAM ausführen?
Die ausführbare Datei befindet sich im RAM, und ich kenne die Adresse, wie rufe ich das Programm von mir auf?
Diese Art von Dingen kommt normalerweise aus den dunklen Ecken der Welt. ; -)
In Kombination mit Tools wie Metasploit wäre es großartig, einen Prozess direkt aus dem RAM zu erstellen und so versuchten ein paar Leute, all die Dinge, die in CreateProcess () passieren, neu zu implementieren. Nach einer Weile fanden sie heraus, dass es viel zu komplex ist (siehe diese PDF Website) 12f), um dies zur Arbeit zu bringen und sie versuchten eine andere Lösung zu finden und hier ist es: Sie rufen ein normales CreateProcess () mit einem gemeinsamen Programm (z. B. notepad.exe) auf, aber sie starten es mit ThreadSuspended. Dann haben sie einen neuen Thread in diesen Prozess eingefügt, der aus dem Speicher gefüllt wird. Danach sagten sie diesem Thread zu laufen und so bekamen sie einen neuen Prozess aus dem Speicher.
Das ist also nur das große Bild und es ist eine ganze Unordnung (und normalerweise nicht der richtige Weg), dieses Zeug zu machen. Wenn Sie wirklich an diesem Teil interessiert sind, dann haben Sie eine Idee, nach der Sie suchen.
Und übrigens, glaube nicht, dass du das in C # machen kannst. Dies geschieht normalerweise in C / C ++ oder sogar Assembler ...
Meinst du, dass du den Inhalt der EXE-Datei in den RAM geladen hast und nun diese ausführbare Datei ausführen willst?
Da Sie von einer EXE sprechen, nehme ich an, dass Sie unter Windows laufen. Soweit ich weiß, kann Windows das nicht - Ihre einzige Option ist, die ausführbare Datei in eine Datei zu speichern und diese auszuführen (zum Beispiel mit CreateProcess
).
Bearbeiten So würden Sie den Prozess ausführen.
In C ++:
%Vor%In C #:
%Vor%Mabye, das könnte dir helfen: Ссылка
PS: Das Schreiben von Malware ist nicht illegal (im Ausland;)) using is!
Sie meinen, mit einer anderen Anwendung zu kommunizieren, die gleichzeitig mit Ihrer läuft? Das hängt davon ab, welches Betriebssystem Sie verwenden. Auf jeden Fall hat Wikipedia einen Artikel über Interprocess Communication , der einige grundlegende Techniken zeigt.