| View previous topic :: View next topic |
| Author |
Message |
cedo Newbie cheater
Reputation: 0
Joined: 02 Feb 2020 Posts: 10
|
Posted: Sun Feb 02, 2020 5:58 am Post subject: Need help finding Values |
|
|
Trying to hack a game.
I found the values, but they don't stick after the game updates them.
Example i change it to 20. Game shows 20. I interact with something and value updates... changes back to Real value.
I used ALL scan with the increase/decrease method. Didn't find any other offset values. The values it does find are always Float and there's always a group of 6 with the exact same value.
I used "check what writes to this address" and found a code segment.
I'm a total noob at this type of code. I only know the basics from what we learned in high school.
All i see is that the value jumps around a bit being offset each time and then compared a few times.
i don't know what to do from here.
also it seems i can't post links or txt/trace files here so...
|
|
| Back to top |
|
 |
DanyDollaro Master Cheater
Reputation: 3
Joined: 01 Aug 2019 Posts: 334
|
Posted: Sun Feb 02, 2020 6:34 am Post subject: |
|
|
I suppose the situation is something like:
1) I am looking for the life of my character who for example is 20
2) I set my life at 999999
3) I take 50 damage and the character die
The reason it happens is because there will be an anti cheat system, if the game you are referring to is online you can't do anything about it, if instead it is offline you should find some interesting code that acts on your life.
You could see how the death function is called in the game and nop it, if you know which codes act in reading there should be a code that compares life with the value 0 (and if life is less than or equal to 0 the function is called) , you should find something interesting about the death function right there.
|
|
| Back to top |
|
 |
Cyberfreak Cheater
Reputation: 0
Joined: 28 Jan 2017 Posts: 30
|
Posted: Mon Feb 03, 2020 1:27 am Post subject: |
|
|
| In some games the players interface value is not the calculated value, e.g. when it shows 100$ to you, the game actually calculated with 100,000 cent. Scan for an unknown initial value and stick to 4 bytes or float or double, to reduce the amount of results. If the first value type doesn't bring up anything, try the next.
|
|
| Back to top |
|
 |
cedo Newbie cheater
Reputation: 0
Joined: 02 Feb 2020 Posts: 10
|
Posted: Mon Feb 03, 2020 2:13 am Post subject: |
|
|
offline game. Im not new here
like i said i found the value using increase/decrease method until only 6 were left with the exact same value.
I checked if it was the correct one and it was.
Changing the values DID change the numbers in the game and it remained so until it got updated.
Most likely a min/max overflow check.
or some kind of "remember last value" function that checks for the Last time the value was updated.
Problem is i can't find it.
I tried digging in the code... found a few XOR and a lot of jumps so i got lost.
In some games i had similar issues with Sliders. As they have a min/max. But i was usually able to find the Min/max values via Float and searching for the max value while breaking everything else.
Then it was as simple as changing that value. If the slider max was 1, now it was whatever i put.
Im thinking there's something similar here... but i can't seem to find any address that holds the "Real" or "max" value.
Tried ALL search without using Exact value... which took around an hour. Still nothing.
What do you normally do when you encounter problematic code?
|
|
| Back to top |
|
 |
DanyDollaro Master Cheater
Reputation: 3
Joined: 01 Aug 2019 Posts: 334
|
Posted: Mon Feb 03, 2020 2:58 am Post subject: |
|
|
The reason why you got many equal values is because that value is passed through a parameter to a function so a copy of the value is made.
You should try to change all those values unless those values have been decrypted, otherwise you should act for value changed and not changed
|
|
| Back to top |
|
 |
cedo Newbie cheater
Reputation: 0
Joined: 02 Feb 2020 Posts: 10
|
Posted: Tue Feb 04, 2020 4:31 pm Post subject: |
|
|
already tried that.
I found the Primary value. When i change that one, it changes all of the copies.
But that still doesn't fix the issue.
|
|
| Back to top |
|
 |
DanyDollaro Master Cheater
Reputation: 3
Joined: 01 Aug 2019 Posts: 334
|
Posted: Tue Feb 04, 2020 5:45 pm Post subject: |
|
|
If I specify what role this value plays within the game I could give you some advice, but in principle you should explore the code and see the various actions in writing and especially in reading that are carried out on this variable.
Example: if you are acting on the value of money, you can trace the cost of the object you want to buy through the writing operations (also in reading of course) and lower the cost of the object instead of increasing the quantity of your coins
|
|
| Back to top |
|
 |
cedo Newbie cheater
Reputation: 0
Joined: 02 Feb 2020 Posts: 10
|
Posted: Tue Feb 04, 2020 6:01 pm Post subject: |
|
|
good idea.
problem is i don't know much about this code.
I can sort of read it. I have a basic understanding of what the functions do.
but as soon as it starts jumping around spamming addresses i get lost.
i guess i was hoping someone would give me advice as to how to Dissect the code. Something like a Pointer or a code break.
I've used pointers in the past but only for simple functions.
I have no idea how people can just write a script that automates the whole process.
|
|
| Back to top |
|
 |
DanyDollaro Master Cheater
Reputation: 3
Joined: 01 Aug 2019 Posts: 334
|
Posted: Wed Feb 05, 2020 3:35 am Post subject: |
|
|
a simpler method is to find the method by which the cost of the object is loaded and replace the pointer on its value with a pointer on an area you have allocated (ideally initialized on 0).
Have you ever tried to replace the code that decreases your value with a code that increases it by a disproportionately large value?
|
|
| Back to top |
|
 |
cedo Newbie cheater
Reputation: 0
Joined: 02 Feb 2020 Posts: 10
|
Posted: Wed Feb 05, 2020 2:47 pm Post subject: |
|
|
that would be great if i can find that code.
like i said the game uses a lot of jumps and value conversions/offsets.
i tried to post the code here but seems the forum doesn't allow it.
it was basically
>call
>convert
>offset
>XOR
>offset
>jump if
>call
>convert
>offset
>XOR
>offset
>split
>convert
>jump if
etc..
|
|
| Back to top |
|
 |
DanyDollaro Master Cheater
Reputation: 3
Joined: 01 Aug 2019 Posts: 334
|
Posted: Wed Feb 05, 2020 6:15 pm Post subject: |
|
|
| cedo wrote: | | i tried to post the code here but seems the forum doesn't allow it. |
Maybe it's because you're doing it wrong.
However, I could give you some more advice if you had added something more about this code and said what role this value has in the game, on the other hand you have to examine the code backwards, if the value that decreases the value indicated by your address it is loaded on the EAX (or RAX) register, you have to see the last operations (usually they are mov or lea) that are performed on that register, or you can simply replace the value on the register before it is reduced.
|
|
| Back to top |
|
 |
|