Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


A few questions

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
haunted5
Cheater
Reputation: 1

Joined: 23 Aug 2011
Posts: 35

PostPosted: Wed Nov 26, 2014 5:18 pm    Post subject: A few questions Reply with quote

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
View user's profile Send private message
zm0d
Master Cheater
Reputation: 7

Joined: 06 Nov 2013
Posts: 423

PostPosted: Wed Nov 26, 2014 5:53 pm    Post subject: Reply with quote

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
View user's profile Send private message
aikoncwd
Grandmaster Cheater
Reputation: 23

Joined: 21 Dec 2012
Posts: 591
Location: Spain (Barcelona)

PostPosted: Wed Nov 26, 2014 7:11 pm    Post subject: This post has 1 review(s) Reply with quote

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
View user's profile Send private message
haunted5
Cheater
Reputation: 1

Joined: 23 Aug 2011
Posts: 35

PostPosted: Sun Nov 30, 2014 3:06 am    Post subject: Reply with quote

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
View user's profile Send private message
aikoncwd
Grandmaster Cheater
Reputation: 23

Joined: 21 Dec 2012
Posts: 591
Location: Spain (Barcelona)

PostPosted: Sun Nov 30, 2014 8:39 am    Post subject: Reply with quote

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

Code:
sub [ebx+50],eax


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:



Very Happy

_________________
Hey Hitler
Test here your skill with CheatEngine, I coded a challenge for you. Try to beat it!
HERE
Back to top
View user's profile Send private message
haunted5
Cheater
Reputation: 1

Joined: 23 Aug 2011
Posts: 35

PostPosted: Sun Nov 30, 2014 3:50 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites