Folgende Warnungen sind aufgetreten:
Warning [2] preg_match_all(): The /e modifier is no longer supported, use preg_replace_callback instead - Line: 1007 - File: inc/highlighter.php PHP 7.4.33 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/highlighter.php 1007 preg_match_all
/inc/highlighter.php 278 generic_highlight
/inc/plugins/coolcode.php 133 asm_highlight
/inc/plugins/coolcode.php 61 coolcode_run
/inc/class_plugins.php 139 coolcode_end
/inc/class_parser.php 232 pluginSystem->run_hooks
/printthread.php 184 postParser->parse_message
Warning [2] Invalid argument supplied for foreach() - Line: 1008 - File: inc/highlighter.php PHP 7.4.33 (Linux)
File Line Function
/inc/highlighter.php 1008 errorHandler->error
/inc/highlighter.php 278 generic_highlight
/inc/plugins/coolcode.php 133 asm_highlight
/inc/plugins/coolcode.php 61 coolcode_run
/inc/class_plugins.php 139 coolcode_end
/inc/class_parser.php 232 pluginSystem->run_hooks
/printthread.php 184 postParser->parse_message
Warning [2] preg_match_all(): The /e modifier is no longer supported, use preg_replace_callback instead - Line: 1007 - File: inc/highlighter.php PHP 7.4.33 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/highlighter.php 1007 preg_match_all
/inc/highlighter.php 278 generic_highlight
/inc/plugins/coolcode.php 133 asm_highlight
/inc/plugins/coolcode.php 61 coolcode_run
/inc/class_plugins.php 139 coolcode_end
/inc/class_parser.php 232 pluginSystem->run_hooks
/printthread.php 184 postParser->parse_message
Warning [2] Invalid argument supplied for foreach() - Line: 1008 - File: inc/highlighter.php PHP 7.4.33 (Linux)
File Line Function
/inc/highlighter.php 1008 errorHandler->error
/inc/highlighter.php 278 generic_highlight
/inc/plugins/coolcode.php 133 asm_highlight
/inc/plugins/coolcode.php 61 coolcode_run
/inc/class_plugins.php 139 coolcode_end
/inc/class_parser.php 232 pluginSystem->run_hooks
/printthread.php 184 postParser->parse_message



Home of Gamehacking - Archiv
Cheat Engine - Probleme mit Assembler - Druckversion

+- Home of Gamehacking - Archiv (http://archiv-homeofgamehacking.de)
+-- Forum: Gamehacking (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=3)
+--- Forum: Gamehacking (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=6)
+--- Thema: Cheat Engine - Probleme mit Assembler (/showthread.php?tid=3100)

Seiten: 1 2


Cheat Engine - Probleme mit Assembler - Shortyoo - 23.01.2018

Servus!
Ich versuche mich gerade bei DarkSoulsIII daran, dass Gegner Schaden bekommen und ich nicht.
Ich hab schon herausgefunden wie ich mich evtl. identifizieren kann, mein Problem ist, dass wenn dann eines der drei Szenarien passiert:
Monster und Ich bekommen trotzdem Schaden
Keiner bekommt Schaden
Spiel verabschiedet sich

Hier erst einmal der Code:

Code:
1
2
3
4
5
6
  pushf
  cmp [rbx+00000130], c0000
  je further
   mov [rbx+000000D8],eax  //Wenn also nicht der Player, damage zufügen
  further:
  popf

Es ist egal wie ich es mache:
Das c0000 ist dabei wahrscheinlich das einzigartige meines Charakters
[rbx+00000130] ist dabei ein Text von 6-Zeichen Länge

Als andere Möglichkeit dachte ich mir, dass ich einfach den Integer-Wert von [rbx+00000130] nehme. Gesagt getan:

Code:
1
2
3
4
5
6
7
8
pushf
  push ebx
  cmp ebx, 3145827
  je further
   mov [rbx+000000D8],eax  //Wenn also nicht der Player, damage zufügen
  further:
  pop ebx
  popf

Tadaa, wir bekommen beide keinen Schaden!
Und da mein Gegner den Wert 3211363 hat, muss ja irgendwas am Code falsch sein...

Hoffe einer kann mir helfen ^^


RE: Cheat Engine - Probleme mit Assembler - DNA - 23.01.2018

Könntest du etwas mehr von deinem Code hier posten?
Am besten die komplette CI inkl. jmp von und zur cave und dem originalcode.


RE: Cheat Engine - Probleme mit Assembler - Shortyoo - 23.01.2018

Na klar - danke schonmal für die Antwort!

Wobei genau das der Originalcode ist:
mov [rbx+000000D8],eax


RE: Cheat Engine - Probleme mit Assembler - DNA - 23.01.2018

Ist das 3145827 der Integer Wert aus ebx?
Wenn ja, dann musst du diesen entweder in Hex umwandeln, um ihn mit
EBX zu vergleichen, oder du musst es in CE so schreiben

Code:
cmp ebx, (int)3145827

EDIT
Und da du EBX ja nur vergleichst, kannst du dir push und pop eigentlich sparen


RE: Cheat Engine - Probleme mit Assembler - Shortyoo - 23.01.2018

Vielen Dank erst mal für die Hilfe!
Ich hab mal das (int) davor geschrieben
Code:



Und: Das Spiel stürzt ab

Edit:
Dachte man müsste push ebx machen, wenn man den Wert verändert und pop ebx, damit der alte Wert in den Speicher zurück kommt und das Spiel nicht mit meinem Wert fortfährt?
Aber gut, Dankeschön! Smiling


RE: Cheat Engine - Probleme mit Assembler - Shortyoo - 23.01.2018

Lösung:


Es funktioniert nun!
Mir ist was bei den Registern aufgefallen:
Das EAX-Register wollte ich nicht nutzen, da bei dem Befehl:

Code:
mov [rbx+000000D8],eax

eben EAX irgendwo hinein geschoben werden würde und ich nicht wusste, ob es fatal wäre:

Code:
cmp eax, (int)....
pop eax
jz further

zu schreiben, weil ich ja eben compare und danach eax "zurücksetze".
Denke jedoch nicht dass es zu einem Fehler führen würde..
Also hab ich das EBX-Register genutzt und eben gesehen, dass ja in das RBX-Register geschrieben wird... also in die "längere" Version des EBX - ich den Wert von EBX aber geändert habe!
Hab nun also EDX genommen und Tada! Es funktioniert!
Für die Interessenten:


Vielen Dank für die Hilfe, DNA!


RE: Cheat Engine - Probleme mit Assembler - iNvIcTUs oRCuS - 24.01.2018

Welches Register Du letztenendes nimmst ist völlig egal...
Es kommt nur drauf an wie du deine Codecave schreibst...
Mit EAX und EBX hätte das auch funktioniert, aber wenn Du dir schon eine
eigene Lösung erarbeitet hast ist doch gut. Weiter so...  Cool

Ürigens... Bei diesem Spiel gibt es auch eine Memory Check Routine...
Nur mal so als Tipp...


RE: Cheat Engine - Probleme mit Assembler - Shortyoo - 28.01.2018

Danke für den Tipp, iNvIcTUs oRCuS.
Jedoch bin ich erst seit neuerem in diesem Gebiet unterwegs und muss daher gestehen, dass ich nicht weiß, was diese Memory Check Routine ist.
Wenn ich raten müsste würde ich darauf tippen, dass es etwas mit AntiCheat zu tun hat. In dem Sinne, dass das Spiel Veränderungen im Speicher bemerkt und diese an den Server meldet. Bin ich da soweit richtig?

Grüße Smiling


RE: Cheat Engine - Probleme mit Assembler - iNvIcTUs oRCuS - 28.01.2018

Ist insofern richtig... Das Spiel sendet aber nix an einen Server...
Es prüft sich nur selbstständig auf Veränderungen im Speicher und schreibt einfach die
Originalcodes wieder zurück... Quasi so als wäre gar kein Cheat ausgeführt worden.
Wenn ich das noch richtig in Erinnerung habe auch nur dann wenn man einen Cheat mit
Erfahrungspunkten realisieren will...

Übrigens... Wegen Deiner Lösung...
Wenn das hier Deine Lösung ist:

ASM Code
1
2
3
4
5
6
7
8
9
10
11
12
newmem:
  pushf
  push edx
  mov edx, rbx
  mov edx, [edx+130]
  cmp edx, (int)3145827
  je further
   mov [rbx+000000D8],eax  //Wenn also nicht der Player, damage zufügen
  further:
  pop edx
  popf
code:


Dann könnteste das auch gleich so schreiben...
Is kürzer und mit verlaub... Auch eleganter... ;-)

ASM Code
newmem:
  cmp [rbx+130], (int)3145827
  je Code
  mov [rbx+000000D8],eax  //Wenn also nicht der Player, damage zufügen
Code:


grEEtZ iNvIcTUs


RE: Cheat Engine - Probleme mit Assembler - Shortyoo - 28.01.2018

Danke für die Antwort, Invictus!

Also bis jetzt hat alles funktioniert, was ich erreichen wollte - soll heißen es wurde noch nichts wieder zurück geschrieben.

Deine Verbesserung ist wirklich gut, muss ich sagen!
Danke für den Hinweis Smiling

Grüße Smiling

Edit: Du hattest Recht. Nach einer Weile wurde der Speicher wieder zurückgesetzt