Hey,
das ist eigentlich ganz einfach.
Anstatt newmem (was ja einfach alloziierter Speicher ist) kann sich dein Kumpel eine CodeCave suchen. Also einen Bereich im Speicher, in welchem er Lese- und Schreibrechte besitzt. Dort kann er nun die benötigten Befehle schreiben (per WriteProcessMemory), also:
das ist eigentlich ganz einfach.
Anstatt newmem (was ja einfach alloziierter Speicher ist) kann sich dein Kumpel eine CodeCave suchen. Also einen Bereich im Speicher, in welchem er Lese- und Schreibrechte besitzt. Dort kann er nun die benötigten Befehle schreiben (per WriteProcessMemory), also:
Code:
|
Als nächstes schreibt er per WriteProcessMemory an die Originalcode Adresse ("123.exe"+123455) den Jump zur CodeCave Adresse (NOP's nicht vergessen!).
Er muss eben wissen wie die WriteProcessMemory API funktioniert, also das man Bytes schreibt und nicht die Befehle selbst.
Noch ein bisschen Pseudo C++ Code
Code:
|
Man kann auch einfach anstatt je 123.exe+123456 jmp 123.exe+123456 schreiben. Hätte den selben Effekt wie immer byte ptr [eax+06] auf 1 zu setzen. (In sofern dein Beispiel der Realität entspricht).
"Auf dieser Welt gibt es mehr Scheisse als auf Festivalklos"