Hello guys,
It's been a long time I have been using Cheat Engine and I really enjoy it. I have always had trouble finding static addresses and I swear I tried every single tutorial present on both the old and new forums (AOB scan, manually finding pointers offsets, pointer scanner...). I simply can't figure out why I can't find any (or very few) static addresses.
I know most of the people here are asking the exact same questions than I will, and you can be sure I also checked most of these threads, but unfortunately I am still unable to achieve what I want to do.
Just so you know, I will spare you some pain and time : I am a developper, I understand what are pointers and offsets, data structures, static addresses etc. Unfortunately I don't have much knowledge about assembler yet.
Anyway, let's go. I have tried to hack many games with CE but always ended giving up because I simply failed again and again without knowing why. My current target is Slay The Spire.
I successfully wrote an AOB Scan script to find the player gold but failed to do so for both Health and Max Health. Still, I noticed that those values seem to be contained in the same data structure, so I use my gold AOB Scan result with the good offset to point to the right addresses for health.
Here comes the first problem : both the values and addresses are correct, though modifying the value won't change anything in game but if I find the address from a normal scan (which is exactly the same address) the modification works. Strange. Also, the health addresses calculated from the gold address seem to randomly change to another location, so I decide to disable the AOB Scan script and re-enable it to find the new addresses. The addresses are exactly the same ! Very strange.
I start to tell myself that maybe the AOB Scan is not the answer to my problems. I try to manually find the static address and every offset but it is very long and I have never been able to succeed excepted for very simple processes (low-level pointers) and have quickly given up that fastidious method.
I then tried the Pointer Scan method, no luck. From the regular value scan results I found (there are 2 addresses, the GUI value address and the actual variable address), I get 0 results for both of them even after tweaking the depth-levels of the scan. At this point I'm starting to go mad, it even worked sometimes in Terraria, why not here ?
Well, I thought it was time for me to learn how to do real hacking and how to find the (static) address of the player data structure, because eh, if I can get that, I can get almost everything I want. Another failure, I didn't see any static address by dissecting the data structure and I honestly wasn't able to see clearly anything inside the structure excepted the values I found earlier (gold, health and max health).
I feel like I have tried everything on my own and I am really out of ideas. I don't know what I do wrong and why I keep failing.
Obviously, YouTube tutorials were even less useful than the forums ones.
Could you guys help me step up a little bit, as I am kinda enjoying this, but I am really, really, really stuck at this point.
PS: english is not my native language, I'm sorry if you have trouble reading me.
Thanks guys.
Need help finding static addresses
- BringChaos
- Table Makers
- Posts: 61
- Joined: Tue Mar 13, 2018 9:45 pm
- Reputation: 36
Need help finding static addresses
If you want to find a static pointer in Java you have to understand that all the base address for objects are dynamic. The memory management system will shift things around as it sees fit. A way to get around this is to AOBscan into a function that uses that variable and grab the address from there because the same system that moves the base address around will also update every function as it goes.
There isn't too much information on hacking Java games sadly.
There isn't too much information on hacking Java games sadly.
- koderkrazy
- Expert Cheater
- Posts: 254
- Joined: Sun Jun 17, 2018 2:14 pm
- Reputation: 190
Need help finding static addresses
what do you mean by "AOB Scan script to find the player gold "?
I mean, does this scan
a. give you location of the code that writes to the gold? e.g. mov [ebx+C1], eax //here C1 is offset to gold variable, and ebx is pointer to player object
OR
b. give you location in memory where gold value is stored? This is not a reliable solution.
As [USER=14031]@BringChaos[/USER] suggested do option 'a'
Here is a possible way to solve your problem. Provided you know the offsets to gold, health etc.
1. Go to Memory View -> View -> Enumerate DLLs and symbols. Look in to game exe, dlls. It'll look like this.
[IMG]https://preview.ibb.co/jU6ks8/enumerate_Dlls.jpg[/IMG]
2. Find a method on player class which gets executed more often like 'onMove'. Do AOB scan code injection on suitable instruction in method.
3. In injected code get player object pointer in your variable say myPlayerPointer.
4. Add script to the table. Name it like 'Player mods' .
5. On main screen of Cheat engine do 'Add address manually'. Check pointer box. In pointer name put myPlayerPointer. in offset put health offset.
Do 'Add address manually' for gold, mana as well.
6. Now on main window run 'Player mods' script first. Then you'll see health pointer showing health value.
I mean, does this scan
a. give you location of the code that writes to the gold? e.g. mov [ebx+C1], eax //here C1 is offset to gold variable, and ebx is pointer to player object
OR
b. give you location in memory where gold value is stored? This is not a reliable solution.
As [USER=14031]@BringChaos[/USER] suggested do option 'a'
Here is a possible way to solve your problem. Provided you know the offsets to gold, health etc.
1. Go to Memory View -> View -> Enumerate DLLs and symbols. Look in to game exe, dlls. It'll look like this.
[IMG]https://preview.ibb.co/jU6ks8/enumerate_Dlls.jpg[/IMG]
2. Find a method on player class which gets executed more often like 'onMove'. Do AOB scan code injection on suitable instruction in method.
3. In injected code get player object pointer in your variable say myPlayerPointer.
4. Add script to the table. Name it like 'Player mods' .
5. On main screen of Cheat engine do 'Add address manually'. Check pointer box. In pointer name put myPlayerPointer. in offset put health offset.
Do 'Add address manually' for gold, mana as well.
6. Now on main window run 'Player mods' script first. Then you'll see health pointer showing health value.
Who is online
Users browsing this forum: No registered users