Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 18:00

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



EN/DE: Cheat Engine beginner questions

Discussion on EN/DE: Cheat Engine beginner questions within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2017
Posts: 12
Received Thanks: 2
EN/DE: Cheat Engine beginner questions

EN:

Hey guys,

I've got two beginner questions about cheat engine, which should be just understanding problems.

1) Am I right, that the base address (which will change every start of the application) is calculated just by e.g. the instruction address (71DBF9) and the
corresponding offset (Bejeweled3.dll+31DBF9), so that it is after subtraction 400000?
If yes, what's that "Base" in the memory viewer? ("Protect=Read/Write Base=32FD1000 Size=87000").

And because this 400000 is that even, is that a predefined address by windows?

2) I'm messing around a bit with Bejeweled 3.
Everytime you're combining 3+ gems, the highscore gets increased by 100, 200, ...
So I set a breakpoint on that instruction and if I'm combining 3 gems, the register, which gets moved to the highscore, contains 0x14 (= 20 decimal).
And this instruction gets called five times, which makes sense: 5 calls * 20 points (in the register) = 100 points.

But how can I find out, how it is determined how many times the instruction gets called? Just go back in the instructions and check it somehow?

And I also would like to find out the "check"-instruction, which even checks whether 3 or more gems are combined.
Should I also go back in the instructions and set breakpoints..? Or how should I go on here?

Thanks for reading and your time! Cheers


DE:
Guten Morgen zusammen

Ich habe mal zwei kleine Fragen bzgl. Cheat Engine, was lediglich Verständnisfragen sein dürften.

Sehe ich das grundsätzlich richtig, dass sich die Basisadresse (die sich ja nach jedem Neustart ändert) schlichtweg durch Subtraktion der bspw. Instruktionsadresse (wird mir als 0071DBF9 angezeigt) und dem jeweiligen Offset (Bejeweled3.dll+31DBF9) und damit also 00400000 ergibt?

Wenn ja, was ist dann die "Base" im Memory Viewer? ("Protect=Read/Write Base=32FD1000 Size=87000").

Und da diese 00400000 so glatt sind, ist das irgendwie schon von Windows eine vordefinierte Adresse, die für Prozesse belegt werden kann?


Testweise frickel ich gerade ein bisschen mit Bejeweled 3 rum... Beim Highscore schreibt eine Instruktion insgesamt bei jedem (korrekten) Zug 5 Mal und der Highscore erhöht sich um 100.
Habe dann mal einen Breakpoint beim Aufrufen der Instruktion gesetzt und im Register, das letztendlich in die Highscore-Adresse geschoben wird, ist "14" (= Dezimal 20) enthalten. Was ja auch Sinn ergibt, denn 5 * 20 = 100.

Jetzt ist ja aber eins klar - auch diese Instruktion muss aufgerufen werden und insbesondere festgelegt werden, dass sie 5 Mal aufgerufen wird.

Dazu mal eine weiterführende Frage: Bei der besagten Instruktion wird in Abhängigkeit der kombinierten Steine (keine, 3, 4, 5) entsprechend die Punkte vergeben bzw. der Call dementsprechend oft ausgeführt (einmal ausgeführt: 20 Punkte und dementsprechend wird die Anzahl angepasst).

Wenn ich jetzt zu der "Prüf"-Instruktion gelangen will, ob überhaupt mindestens 3 Steine kombiniert sind, bleibt mir nichts anderes übrig, als stichprobenartig vor der Highscore-Instruktion immer wieder Breakpoints zu setzen..oder wie geht man da am besten vor?

Danke fürs Lesen und viele Grüße
whok3hrs is offline  
Old 12/25/2017, 15:39   #2
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
@ Basisadresse:
Jein, 0x400000 ist tatsächlich die windows x86 "standardadresse" an der exes gemappt werden, allerdings kannst du dich nicht darauf verlassen, dass das immer so ist.
Neuere programme werden mit expliziter aslr kompatibilität kompiliert wobei die basisadresse mehr oder weniger "zufällig" ist.
Außerdem lassen sich selbst für solche alten programme im nachhinein aslr aktivieren (wodurch einige schlecht programmierte nicht mehr funktionieren, es die meisten allerdings noch tun).
Deswegen solltest du immer mit GetModuleHandle(NULL) (intern) oder extern z.B. mit toolhelp32 die basisadresse holen und dann den offset draufrechnen (also in deinem beispiel z.B. <Basisadresse der exe>+0x31DBF9.
Falls du nur CE benutzt kannst du es einfach bei ModulName+Offset belassen, ce löst automatisch module auf.

@ Reversing
Würde ich dir mal empfehlen dich mal ins thema reversing einzulesen, aber ja, grob gesagt setzt man breakpoints und geht immer weiter zurück und versucht die stelle zu finden wo schlussendlich die entscheidung getroffen wurde wie oft deine funktion aufgerufen wird.
Hilfreich sind hierbei rechts unten in der memoryanzeige der callstack (wenn breakpoint getriggert wurde) der einem meist relativ zuverlässig zeigt von wo der aufruf ausgeführt wurde und die umliegenden funktionen.
In deinem Fall vielleicht nicht so hilfreich, da du die funktion bereits gefunden hast, aber wenn du keine memoryadresse hast die in der gesuchten funktion verändert wird, du aber weißt wie oft deine gesuchte funktion vermutlich aufgerufen wird, hilft auch noch das hier:
Dr. Coxxy is offline  
Thanks
1 User
Old 04/11/2018, 15:34   #3
 
elite*gold: 0
Join Date: Dec 2017
Posts: 6
Received Thanks: 0
Hey ho hätte auch eine Frage bezüglich zu CE und den Basepointern und wie ich diese mit einem Packetlogger verbinden kann, da den Server beispielsweise daszu bringen möchte einen Dropp eines Items vorzumachen welches man dann aufheben kann, so das es nicht nur Clientside ist. Bin mir aber nicht mal ganz sicher ob das überhaupt möglich ist. Leider noch im Anfangsbereich und versuche mir solche sachen grundsätzlich durch Ausprobieren anzueignen nur daran scheitere ich leider bis jetzt.

Wenn sich jemand damit auskennt kann er sich ja mal bei mir melden, wenn er das dann auch erkläre könnte so das ich es auch verstehe, noch besser
dasistmeiname is offline  
Reply


Similar Threads Similar Threads
Can Anyone use hack with it in Cheat Engine??or Revo engine ??
11/18/2017 - Dekaron - 3 Replies
can u guyz make some hacks using the CE or RE maybe im gonna do something with it like experimenting i made many cheats in RFO but in this Game im a newbie,,,thank you for your support and remember be shareful....:mofo:
Beginner sucht Beginner
04/04/2014 - Starcraft 2 - 7 Replies
Moinmoin, Suche einen "Beginner", d.H erstmal gegen K.I üben, wenn man das nachher dann abgehakt hat, vllt mal gegen echte Spieler. Zu mir: 17 Jahre alt, Headset vorhanden, im Moment viel Zeit. Zu euch: Mindestens über 18 und Stimmlich bitte weit über 18... Headset solltet ihr ein Funktionstüchtiges haben, zum quatschen und absprechen. Könnt mich ja mal in Steam adden, oder eine PM an mich, dann gebe ich euch Battle.net ID und Code Steam ID: DLIKP, habe ein Engelsbild
hack using engine(any engine?) anf by pass for this engine..
10/09/2009 - Grand Chase Philippines - 3 Replies
wla na bang engine na gumagana?



All times are GMT +1. The time now is 18:02.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.