Programm in runtime beschreiben?
-
Hallo,
es gibt da so eine Sache die ich mir von einem anderem
Programm abgeguckt habe
Es geht darum, dass das Programm eine Ausführbare Datei
hat (Binär gespeichert, mit einem Pointer zugreifbar)
Iergendwie Erstellt das Programm nun einen neuen Prozess
(Leere exe-datei!?) Und schreibt mit WriteProcessMemory
die Binär gespeicherte Datei in den leeren Prozess, dieser
wird dann fortgesetzt und das Programm läuft...Funktioniert das!?
Welche API's brauche ich dafür?
Wie erstelle ich eine leere exe-datei im Speicher?
Kann ich den Speicher schützen?
Wie sage ich dem Programm wo der entrypoint ist?Danke schonmal

-
Hi
Für dass was du da vor hast solltest du dich SEHR GUT mit dem
System aus kennen, für Anfänger ist das nichst.Hier ein par API's :
CreateRemoteThread
VirtualAllocEx
WriteProcessMemory
ReadProcessMemoryIch hab mal Code von mir in einem anderen Programm zur Laufzeit eingeschleust,
und dass ging so:1.) Speicher im Prozess mit VirtualAllocEx
2.) Den neueun Code mit WriteProcessMemory in den Prozess kopieren
3.) Einen Remote Thread starten der den Code ausführt.Das ist aber alles nicht so einfach. Du must schauen das alle
Addresse richtig reallokiert werden (z.B. Zeiger auf API-Funktionen)
DLL muss du laden die der Prozess noch nicht geladen hat.
Das alles ist nicht so einfach, einige Probleme konne ich nur
mit Assembler lösen.