 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
haunted5 Cheater
Reputation: 1
Joined: 23 Aug 2011 Posts: 35
|
Posted: Wed Nov 26, 2014 5:18 pm Post subject: A few questions |
|
|
Hi everyone,
I have been making cheats for a while. My cheating knowledge is quite basic and extends to finding right values for health, ammo etc,
pointerscan usage and basic AA scripts: I have a few questions, If someone could be so kind as to guide me, it would be much appreciated.
1. I would like some insight on how to improve my skills by going to the next level and what I should try next in making better cheats etc.
2. I am making cheats for Farcry 4 these days. Since updating to a new version (1.04 & cracked by ALI), my game seems to be crashing.
I have updated my cheats to the new code. The game allows me to play for a while, but if my cheats are activated and there is a cutscene,
the game crashes afterwards. I even made a script that did nothing, but the game still crashed at the end of a cutscene. So Im assuming there
is some check for the injection somewhere. Question is, how I go about finding this code that crashes my game on detection of Injection.
And are there anyways that pros use to avoid such situations all together.
3. For the life of me I have never been able to find a pointer manually.
Question:Is it even worth finding the pointer manually? Does it guarantee a working pointer?
Below is what I normally do to try and find the pointer manually. Hopefully someone can see where Im going wrong:
a) "what writes to this address"
b) Then if code is ecx+10 (note offset)
c) Copy value of ecx, searchfor it in hex
d) Then take first value from results, then do "what writes to this address", which normally end with finding nothing, so I do "what accesses this address" which does get me some code.
e) Then I repeat from step c again.
f) This eventually gets me to a green address. So i think great, its static.
g) So I create pointer using offsets
h) Reatart game and pointer is no longer valid.
Question: Shouldnt this have worked if I had finally reached a green address?
Question: Sometimes at step d, I cannot find any code writing or accessing any value. so its a dead end, does that happen sometimes or is it something I have done wrong in the process.
Help is greatly appreciated. Thanks
|
|
| Back to top |
|
 |
zm0d Master Cheater
Reputation: 7
Joined: 06 Nov 2013 Posts: 423
|
Posted: Wed Nov 26, 2014 5:53 pm Post subject: |
|
|
To 1) Try to do some skill unlocker or "add item xyz to inventory" cheats. It gets you closer to handle data structures. Also, breaking some simpler anti-memory-editing mechanisms will teach you more.
2) Hm could be protection or some missleading code. You can check this when you attach the cheat engine debugger to the game. Use "Find out what accesses this address" on the health address and look for the access after the cut scene.
3) Just use the pointer scanner. It makes it job pretty good and there iis really no way I would recommend someone to do a manually pointer trace.
Question1: I dont know.
Question2: Pointer in a pointerchain are most likely static. They dont change their address where they are pointing at. Find out what writes to this address wont work here.
|
|
| Back to top |
|
 |
aikoncwd Grandmaster Cheater
Reputation: 23
Joined: 21 Dec 2012 Posts: 591 Location: Spain (Barcelona)
|
Posted: Wed Nov 26, 2014 7:11 pm Post subject: |
|
|
I don't like pointers because reason. To avoid pointers I do this:
- Search an address, for example health
- Select the address, press F6 (find out what writes...)
- Play the game and get dmg from enemy
- I get the instructión that modify my healt (ex: sub [ebx+10],eax)
- Autoassemble:
globalalloc(pBase,4) will hold the player base-address, then add this:
sub [ebx+10],eax
mov [pBase],ebx
At the table y add manually address (pointer) with the name pBase, now every time I get hit, CE fill pBase and show the correct HP address. You can take a look at this table, I learned a lot with this:
http://forum.cheatengine.org/viewtopic.php?t=577393&postdays=0&postorder=asc&start=375 (the last comment have the table)
_________________
Hey Hitler
Test here your skill with CheatEngine, I coded a challenge for you. Try to beat it!
HERE |
|
| Back to top |
|
 |
haunted5 Cheater
Reputation: 1
Joined: 23 Aug 2011 Posts: 35
|
Posted: Sun Nov 30, 2014 3:06 am Post subject: |
|
|
Thanks for your suggestions:
zm0d:
I have dont some inventory adding once or twice before, that is something i'll start doing more often. For your other suggestions,
Unlocking a skill: I dont really understand how I can even find something that changes only once per game session.
Perhaps I would have to look in the player struct but how do you go about identifying it?
AikonCWD:
Many thanks for this. I have been wondering how other people do this for a while. And its great that I wouldnt have to bother finding pointers this way.
Ill definitely start doing this in my scripts.
A question tho: If the code writes to multiple addresses, I normally do "Dissect data structure" to somehow seperate the value I want from the others.
Is this how you would go about it or is there any other ways to easily get the right value.
Many thanks
|
|
| Back to top |
|
 |
aikoncwd Grandmaster Cheater
Reputation: 23
Joined: 21 Dec 2012 Posts: 591 Location: Spain (Barcelona)
|
Posted: Sun Nov 30, 2014 8:39 am Post subject: |
|
|
| haunted5 wrote: |
A question tho: If the code writes to multiple addresses, I normally do "Dissect data structure" to somehow seperate the value I want from the others.
Is this how you would go about it or is there any other ways to easily get the right value. |
Imagine you found your Health address, do a F6 (what writes to this address) and debugger will prompt something like
Your playerbase struc is EBX
Health is sotred at offset +50 from pBase
EAX is the ammount of dmg you recived
right?
Go to memory view and right click: "Find out what address access by this address" (or something like this), play the game and get hurt and you hurt some enemies, some times this window will display more than 1 address (your health + enemy health).
Now rightclick those address and show registers, copy EBX value (because EBX store your pBase)
0F4048B0 (My hero pBase)
0FE8B100 (Enemy pBase)
Lets open struct/dissect and compare those values:
As you can see, +A0 offset is 1 or 0 when EBX points to Hero player or enemy. Now we can make the script:
_________________
Hey Hitler
Test here your skill with CheatEngine, I coded a challenge for you. Try to beat it!
HERE |
|
| Back to top |
|
 |
haunted5 Cheater
Reputation: 1
Joined: 23 Aug 2011 Posts: 35
|
Posted: Sun Nov 30, 2014 3:50 pm Post subject: |
|
|
Thanks for your explanation.
This is how I do it as well. I was wondering if there was any other ways that
I dont know about.
Thanks
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|