[C++] Code-Injection

Hey,

Ich habe seit ein paar Tagen begonnen mich ein bisschen mit Code-Injections ausseinanderzusetzen. Hab auch schon sehr viel gegoogelt sowie die Forumssuche beansprucht, und damit hab ich auch schon einiges erreicht.
Nun zu meinem Post.

Bis jetzt verstehe ich eine Code-injektion so, dass ein bestimmter "jump" in dem Ziel-Programm so verändert wird, dass er auf unseren Code zeigt welchen wir beispielsweise ans Ende angehängt haben.
Nun verstehe ich aber noch nicht so ganz wie ich dies in C++/C syntax umsetzen kann.
Es ist logisch dass der angehängt code in Assembler sein muss, jedoch kann dieser auch zu Laufzeit compiliert werden oder muss er z.B. in Shell-code Vorliegen?
Und vorallem stellt sich mir die Frage wie ist es Möglich einen "Jump" so zu patchen/umzubiegen dass er zu meinem code springt. CDW hat zwar hier schon einigiges erklärt jedoch fehlt mir der Zusammenhand zu C++.
Ich möchte dazu sagen dass ich mich noch nicht sehr viel mit der WindowsAPI beschäftigt habe, aber die anderen Sprachgrundlagen gut beherrsche.

Ich hoffe ihr könnt mir helfen oder mir zumindestens ein bisschen die Richtung aufzeigen. Ich würde mich auch über jegliche Tutorials freuen.

mfg virus
 
Ich verstehe das jetzt so, dass du aus deinem C++ Programm hinaus in eine Binary Code einschleusen willst.
Es ist logisch dass der angehängt code in Assembler sein muss, jedoch kann dieser auch zu Laufzeit compiliert werden oder muss er z.B. in Shell-code Vorliegen?
Wenn du deinem Programm einen Compiler mitgibst wäre das möglich, jedoch sehr aufwändig. Warum sollte er als Shellcode vorliegen? Das wäre bei Injections in Skripts sinnvoll (oder verstehe ich gerade nicht was du meinst?)
 
Eine viel "bequemere" Methode ist es, den Code in eine DLL zu packen(kann also in jeder Sprache geschrieben sein, die DLLs erzeugen kann) und dann per CreateRemoteThread(einfach einen LoadLibrary-Aufruf in the anderen Prozess schreiben und dessen Adresse verwenden) starten zu lassen.
 
Zurück
Oben