Home of Gamehacking - Archiv

Normale Version: CodeInjection in VB? Wie?
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Ich wünsche mir ein TuT über Code Injecten in Vb.
wenn das einer machen würde, würde ich mich echt freuen.
Da ich leider nichts zum Thema gefunden habe und ich nicht weiter komme.

:heart:
Da schonmal reingeschaut?
http://homeofgamehacking.de/showthread.php?tid=57
Da wird auch erklärt, wie man mit VB eine CI umsetzt.
Ja bestimmt schon 20 mal angeguckt, aber ich versteh nicht was du da genau mit tsearch machst.
Ich habe mein Code für die Injektion in CE fertig aber dann......... Huh
Hey,
das Prinzip zur Codeinjection ist immer das Gleiche.
Man hat mit einem Debugger eine Stelle im Code des Spiels gefunden und möchte diese nun nach seinen Wünschen verändern.

Hier mal ein einfaches Beispiel:
Wir sehen uns folgenden fiktiven Code an.

Code:
012813D4         A1 00404000              MOV EAX,DWORD PTR DS:[404000]
012813D9         83E8 01                  SUB EAX,1
012813DC         A3 00404000              MOV DWORD PTR DS:[404000],EAX                                   

Wir haben jetzt im Debugger festgestellt, das 404000 unsere aktuelle Munition enthält. Nun sehen wir das der Wert der Ammoadresse nach eax verschoben wird, dann um 1 vermindert wird und dann wieder in die Ammoadresse geschoben wird.
Eine mögliche Codeinjection wäre nun:

Code:
012813D4         A1 00404000              MOV EAX,DWORD PTR DS:[404000]
012813D9         83E8 01                  SUB EAX,1
012813DC         E9 23050000              JMP ingameCl.01281904

01281904         B8 99090000              MOV EAX,999
01281909         A3 00404000              MOV DWORD PTR DS:[404000],EAX                                   
0128190E       ^ E9 CEFAFFFF              JMP ingameCl.012813E1


Nun gucken wir uns die Bytes zu den Opcodes an. Diese müssen wir einfach an die richtigen Adressen mit WriteProcessMemory schreiben und schon ist unsere Codeinjection fertig.

Kurz und knapp...

Riiichtiiiiig!
Ich glaub ich bin echt zu doof :dodgy:
mein code in CE sieht z.b. so aus

Zitat:alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

newmem:
mov dword[eax+04], f423f
//this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
mov [eax+04],edx
pop edi
ret

exit:
jmp returnhere

"BlackOps.exe"+11CF2B:
jmp newmem
returnhere:

und wie soll ich das in VB schreiben?
Ganz einfach... Du schreibst nicht das was Du da in dem Script siehst (also die Opcodes), sondern die zugehörigen Bytes als "Array of Bytes". Wie das aussieht wurde hier schon in diversen Tutorials gezeigt.
Bsp.:
Zitat:0137188A - 8B 44 24 04 - mov eax,[esp+04]
0137188E - 8B 00 - mov eax,[eax]

Du schreibst also durch Deinen Trainer nicht explizit "mov eax,[esp+04]" und "mov eax,[eax]", sondern Du schreibst einfach das ganze Array. Also schreibst Du "8B 44 24 04 8B 00". Eingefügt wird das ganze an Adresse 0x137188Ah. Das ist der ganze Zauber...
Langsam wird das Licht Heller.....

meinst du die Bytes die auf dem Bild zu sehen sind?
oder welchen Bereich meinst du?
Und wie oder was macht DNA in seinem TuT?

[Bild: cutqppg32jwe.png]

:heart:
Die Idee seines "TMK to VB Autopatcher Converter" ist die das aus einem TSearch "Poke xxxxxxxxx" ein Visual Basic konformes Format wird. Es entfällt praktisch die Arbeit sämtliche Zeilen Code selbst zu schreiben.

Und genau diese Idee hab ich mit meinem Tool für Delphi verfolgt. Siehe z.b. hier... HEX to Array Convert
Im Endeffekt sind diese Tools nicht zwingend notwendig um einen Trainer zu schreiben. Sie erleichtern nur einem enorm die Arbeit.

Das was Du mit deinem Trainer in einen Prozess schreibst sind die Bytes, bzw. die Zeichenkette die hinter "Poke 'Adresse0815' " steht. Also in deinem Beispiel müsste dein Trainer die Bytes "C7 87 2C 03 00 00 E7 03 00 00 8B" an Adresse 0x11EAEA8h in den Prozess BlackOps.exe einfügen.
driften wir hier nicht etwas in's offtopic rein Happy

@ chesar
übrigens dein script oben wird so nicht richtig funktionieren Wink

so schon eher, kleiner aber feiner unterschied:


greetz ABartX
Seiten: 1 2