• Trainer
  • Forums
  • Suche
  • Members
  • Kalender
  • Hilfe
  • Extras
Forum stats
Show team
Neue Beiträge ansehen
Heutige Beiträge ansehen
Home of Gamehacking - Archiv
Login to account Create an account
Login
Benutzername:
Passwort: Passwort vergessen?
 



  Home of Gamehacking - Archiv Gamehacking Gamehacking
« Zurück 1 ... 3 4 5 6 7 8 Weiter »
CoD-BlackOps - OneHitKill

Seiten (3): « Zurück 1 2 3 Weiter »
Ansichts-Optionen
CoD-BlackOps - OneHitKill
iNvIcTUs oRCuS Offline
Super Moderator
****
Beiträge: 2.688
Themen: 529
Registriert seit: Aug 2010
Bewertung: 19
#11
21.12.2012, 15:05
Ja okay vielleicht hab ich das nicht weiter ausführlich erläutert...
Wenn ich z.B. einen One Hit Kill versuche zu realisieren dann folgendermaßen...
1. Suche ich die Adresse des Spielers
2. Suche ich die Befehle raus die auf diese Adresse zugreifen
- das geschieht per Rechtsklick auf die Adresse und "Find out what accesses..."
3. Dann lasse ich mir anzeigen welche Adressen alle durch einen Befehl laufen.
- Das geschieht im Memory Fenster mit einem Rechtsklick auf den jeweiligen Befehl und "Find out what addresses this instruction accesses"
4. Dabei taucht dann meistens auch eine gegnerische Adresse auf.
5. Mit dieser Adresse verfahre ich ebenfalls nach den obigen Punkt 2

Das einfachste ist dann natürlich wenn jetzt Befehle auftauchen die nur für gegnerische Adresse gelten. Wenn nicht dann muss die Speicher Struktur analysiert werden. Das hört sich zwar erstmal schwierig an isses aber eigentlich nicht, weil Cheat Engine ja auch schon Möglichkeiten mitbringt die einem wahnsinnig weiterhelfen und eben den Vorteil gegenüber eines reinen Debuggers ausspielen.

Mal sehen, vielleicht mach ich auch noch ein Tutorial eines One Hit Kills wo ich das anhand meiner Erläuterung zeige...
Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer !!!

Traineranfragen per PM werden prinzipiell gelöscht...

[Bild: signatur6akm7.gif]
Suchen
Antworten
Struppi Offline
Junior Member
**
Beiträge: 47
Themen: 12
Registriert seit: Apr 2012
Bewertung: 0
#12
21.12.2012, 16:01 (Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2012, 16:22 von DNA.)
In CheatEngine sieht das bei mir nun so aus...

[code=ASM]
[ENABLE]
alloc(newmem,12288)
label(originalcode)
label(returnhere)
label(exit)

newmem:
cmp eax,01AFFFD4
mov dword ptr[eax+0x184],0x0

originalcode:
sub [eax+0x184],ebx
mov eax,[esp+24]
movzx ecx,word ptr[esp+28]

exit:
jmp returnhere

"BlackOps.exe"+3CE3E1:
jmp newmem
nop
returnhere:

[DISABLE]
dealloc(newmem)
"BlackOps.exe"+3CE3E1:
sub [eax+0x184],ebx
[/code]


Klappt alles wunderbar, aber CodeCave für VB funktioniert irgendwie nicht.
Also da stürzt das Spiel ab und über CheatEngine nicht.
Suchen
Antworten
iNvIcTUs oRCuS Offline
Super Moderator
****
Beiträge: 2.688
Themen: 529
Registriert seit: Aug 2010
Bewertung: 19
#13
21.12.2012, 16:28 (Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2012, 16:29 von iNvIcTUs oRCuS.)
Ich gehe mal davon aus das deine Codecave in VB genauso aussieht?!

Müsste man nur noch wissen wo Deine Codecave geschrieben wird. Es könnte durchaus sein das Du bzw. Dein Trainer keine Schreibrechte auf diesen Speicherbereich hat.
Oder Du hast noch nen Fehler mit den Sprüngen drin...
Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer !!!

Traineranfragen per PM werden prinzipiell gelöscht...

[Bild: signatur6akm7.gif]
Suchen
Antworten
DNA Offline
Administrator
*******
Beiträge: 1.330
Themen: 123
Registriert seit: May 2010
Bewertung: 26
#14
21.12.2012, 16:32
Geht übrigens auch anders:

[code=ASM]
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

newmem:
mov ebx,(int)999999

originalcode:
sub [eax+00000184],ebx

exit:
jmp returnhere

"BlackOps.exe"+3CE3E1:
jmp newmem
nop
returnhere:


[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"BlackOps.exe"+3CE3E1:
sub [eax+00000184],ebx
//Alt: db 29 98 84 01 00 00[/code]

Was genau funktioniert denn bei VB nicht?
ACHTUNG: Lesen gefährdet die Dummheit

[Bild: dna-sig.gif]
Suchen
Antworten
Struppi Offline
Junior Member
**
Beiträge: 47
Themen: 12
Registriert seit: Apr 2012
Bewertung: 0
#15
21.12.2012, 17:47
Also für VB sieht das so aus...

Code:
1
2
3
4
5
6
7
Dim caveaddr = &H009A2720
Dim origaddr = &H007CE3E1
RemoveProtection (ProcName,caveaddr, 35)
Dim cavebytes() As Byte = {&H3D, &HD4, &HFF, &HAF, &H01, &HC7, &H80, &H84, &H01, &H00, &H00, &H00, &H00, &H00, &H00, &H29, &H98, &H84, &H01, &H00, &H00, &H8B, &H44, &H24, &H24, &H0F, &HB7, &H4C, &H24, &H28, &HE9, &HC4, &HE3, &HD5, &HFB}
Dim origbytes() As Byte = {&H29, &H98, &H84, &H01, &H00, &H00}
autopatcher (caveaddr,cavebytes)
autopatcher (origaddr,origbytes)


Aber das bringt das Spiel zum absturz.

Suchen
Antworten
Acubra Offline
Trainermaker
****
Beiträge: 904
Themen: 127
Registriert seit: Oct 2010
Bewertung: 6
#16
21.12.2012, 18:46
Hey,
bist du sicher das der "Compare-Befehl" wirklich von Nöten ist? Anscheinend laufen durch diesen Opcode doch nur die Adressen der Gegner, also musst du gar nicht entscheiden ob Gegner oder Spieler von diesem Befehl betroffen ist. Auch führst du keinen Conditional Jump nach dem Compare aus, also du vergleichst zwar zwei Sachen, fängst aber mit der Information nichts weiter an. Du veränderst somit auch unnötigerweise das z-Flag.
Außerdem setzt du die Gegner Hp auf 0, bevor ebx davon abgezogen wird. Dies könnte bei manchen Spielen zu Problemen führen, die nicht "wissen" wie man mit negativen Werten umgeht.
Zu deinem Crashproblem kann ich dir nicht helfen.
"Auf dieser Welt gibt es mehr Scheisse als auf Festivalklos"
[Bild: hoglogo_smalpxga.jpg]
Homepage Suchen
Antworten
iNvIcTUs oRCuS Offline
Super Moderator
****
Beiträge: 2.688
Themen: 529
Registriert seit: Aug 2010
Bewertung: 19
#17
21.12.2012, 19:47
Und der Sprung vom Originalcode führt auch wirklich zur Codecave?
Was ich aber eher glaube ist das der Jump aus der Codecave zurück zum Originalcode falsch ist. Cool
Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer !!!

Traineranfragen per PM werden prinzipiell gelöscht...

[Bild: signatur6akm7.gif]
Suchen
Antworten
DNA Offline
Administrator
*******
Beiträge: 1.330
Themen: 123
Registriert seit: May 2010
Bewertung: 26
#18
22.12.2012, 12:35
Ich lege dir die Ratschläge von Acubra und silent ans Herz ...
Nimm das von mir gepostete Script, da in deinem Script viel
unnötiges ist, was das Spiel leicht zum crashen bringen kann, wie Acubra
bereits schrieb.

Wenn das Spiel mit deinem VB Code abstürzt, dann scheint irgendwas mit der
Codecave nicht zu stimmen, da du den Originalcode nicht durch einen JMP
überschreibst ... du überschreibst den Originalcode durch den Originalcode

Code:
Dim origbytes() As Byte = {&H29, &H98, &H84, &H01, &H00, &H00}


Code:
sub [eax+00000184],ebx
//Alt: db 29 98 84 01 00 00


Hast du für den VB code den TMKtoVB converter von mir benutzt?

ACHTUNG: Lesen gefährdet die Dummheit

[Bild: dna-sig.gif]
Suchen
Antworten
Struppi Offline
Junior Member
**
Beiträge: 47
Themen: 12
Registriert seit: Apr 2012
Bewertung: 0
#19
22.12.2012, 22:09 (Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2012, 00:00 von DNA.)
Also TMKtoVB 2.0 benutze ich und da ist folgende auswertung:


[code=VB]
Dim caveaddr = &H00400348
Dim origaddr = &H007CE3E1
RemoveProtection (ProcName, caveaddr, 32)
Dim cavebytes() As Byte = {&H3D, &HD4, &HFF, &HAF, &H01, &HC7, &H80, &H84, &H01, &H00, &H00, &H01, &H00, &H00, &H00, &H29, &H98, &H84, &H01, &H00, &H00, &HE9, &H85, &HE0, &H3C, &H00, &HE9, &H62, &H1F, &HC3, &HFF, &H90}
Dim origbytes() As Byte = {&H29, &H98, &H84, &H01, &H00, &H00}
autopatcher (caveaddr,cavebytes)
autopatcher (origaddr,origbytes)
[/code]


In VB sieht es so aus:


[code=VB]
#Region "OneHitKill"
Private Sub Timer6_Tick(sender As System.Object, e As System.EventArgs) Handles Timer6.Tick

'OneHitKill.
If GetAsyncKeyState(VK_NUMPAD3) Then
GetProcessId(ProcName)
If OneHitKill = 0 Then

Dim caveaddr = &H400348
RemoveProtection(ProcName, caveaddr, 32)
Dim cavebytes() As Byte = {&H3D, &HD4, &HFF, &HAF, &H1, &HC7, &H80, &H84, &H1, &H0, &H0, &H1, &H0, &H0, &H0, &H29, &H98, &H84, &H1, &H0, &H0, &HE9, &H85, &HE0, &H3C, &H0, &HE9, &H62, &H1F, &HC3, &HFF, &H90}
autopatcher(caveaddr, cavebytes)

OneHitKill = 1

ElseIf OneHitKill = 1 Then

Dim origaddr = &H7CE3E1
Dim origbytes() As Byte = {&H29, &H98, &H84, &H1, &H0, &H0}
autopatcher(origaddr, origbytes)
OneHitKill = 0
End If
End If
End Sub
#End Region
[/code]


Poke:

Code:
Poke 00400348 3D D4 FF AF 01 C7 80 84 01 00 00 01 00 00 00 29 98 84 01 00 00 E9 85 E0 3C 00
Poke 007CE3E1 E9 62 1F C3 FF 90

Poke 007CE3E1 29 98 84 01 00 00



Wenn ich den Trainer starte passiert nichts, außer das nur On oder Off zu hören ist. Beim CheatEngine - Memory Viewer sehe ich auch, das da nichts passiert.
Mach ich es aber über Cheat Engine, wird in &H400348 der Code geschrieben und die Adresse &H7CE3E1 führt den jmp aus. Mach ich es aus, dann ist in der Adresse &H7CE3E1 der Orginal Code drin. Nur über den VB TRainer passiert nichts und das Spiel stürzt auch nicht ab.

Suchen
Antworten
DNA Offline
Administrator
*******
Beiträge: 1.330
Themen: 123
Registriert seit: May 2010
Bewertung: 26
#20
23.12.2012, 00:03
Das ist klar, da du mit VB auch nur die Codecave schreibst, aber nicht den Sprung vom Originalcode dorthin Wink

Versuch das mal:

[code=VB]Private Sub Timer6_Tick(sender As System.Object, e As System.EventArgs) Handles Timer6.Tick

'OneHitKill.
If GetAsyncKeyState(VK_NUMPAD3) Then
GetProcessId(ProcName)
If OneHitKill = 0 Then

Dim caveaddr = &H400348
Dim origaddr = &H7CE3E1
RemoveProtection(ProcName, caveaddr, 32)
Dim cavebytes() As Byte = {&H3D, &HD4, &HFF, &HAF, &H1, &HC7, &H80, &H84, &H1, &H0, &H0, &H1, &H0, &H0, &H0, &H29, &H98, &H84, &H1, &H0, &H0, &HE9, &H85, &HE0, &H3C, &H0, &HE9, &H62, &H1F, &HC3, &HFF, &H90}
Dim origbytes() As Byte = {&HE9, &H61, &H1F, &HC3, &HFF, &H90}
autopatcher(caveaddr, cavebytes)
autopatcher(origaddr, origbytes)

OneHitKill = 1

ElseIf OneHitKill = 1 Then

Dim origaddr = &H7CE3E1
Dim origbytes() As Byte = {&H29, &H98, &H84, &H1, &H0, &H0}
autopatcher(origaddr, origbytes)
OneHitKill = 0
End If
End If
End Sub[/code]

Noch eine kurze Frage ... nimmst du für jeden Hotkey einen extra Timer?
ACHTUNG: Lesen gefährdet die Dummheit

[Bild: dna-sig.gif]
Suchen
Antworten
Share Thread:            
Seiten (3): « Zurück 1 2 3 Weiter »


  • Druckversion anzeigen
  • Thema abonnieren


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste

  • Kontakt
  • Forum team
  • Forum stats
  • Nach oben
 
  • RSS-Synchronisation
  • Lite mode
  • Home of Gamehacking - Archiv
  • Help
 
Forum software by © MyBB - Theme © iAndrew 2014



Linearer Modus
Baumstrukturmodus