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 


All pointers suddenly stopped working

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
SuperAndromeda
Newbie cheater
Reputation: 0

Joined: 30 Jul 2022
Posts: 12

PostPosted: Mon Mar 04, 2024 9:30 pm    Post subject: All pointers suddenly stopped working Reply with quote

This never happened to me before, but out of the blue, all the pointers I was working with (and I checked their reliability many times before) stopped working at the same time. The curious thing is that they were all from the game's own process, and the other few related to Steam I have are still working fine.

How could this happen and how can I avoid it?
Back to top
View user's profile Send private message
Alt
How do I cheat?
Reputation: 2

Joined: 19 Jan 2017
Posts: 4

PostPosted: Mon Mar 18, 2024 1:42 pm    Post subject: Reply with quote

Maybe an update, or you're dealing with a game that's got a JIT compiler like Unity. Seeing as you had consistency prior, though, I'd imagine it was probably an update. If it was an update, nothing is guaranteed to work, but AOB scanning is generally more robust than pointer chains.
Back to top
View user's profile Send private message
SuperAndromeda
Newbie cheater
Reputation: 0

Joined: 30 Jul 2022
Posts: 12

PostPosted: Mon Mar 18, 2024 2:02 pm    Post subject: Reply with quote

Alt wrote:
Maybe an update, or you're dealing with a game that's got a JIT compiler like Unity. Seeing as you had consistency prior, though, I'd imagine it was probably an update. If it was an update, nothing is guaranteed to work, but AOB scanning is generally more robust than pointer chains.


Is there a way of obtaining reliable pointers from AOB? I'm using my own Python code to write/read data at the address signed by the pointers and would be very troublesome for me to have to work with assemble too, especially since I have little to no expertise in it.
Back to top
View user's profile Send private message
Alt
How do I cheat?
Reputation: 2

Joined: 19 Jan 2017
Posts: 4

PostPosted: Tue Mar 19, 2024 9:25 am    Post subject: Reply with quote

AOB is somewhat update resistant, but not fully. Pointer chains are not update resistant at all. An AOB will break if the corresponding code changes, a pointer chain will almost always break regardless of code changes.
Getting a pointer from an AOB is trivial in CE. You find the instructions that read/write to your address, inject using auto assembler, use the aob template, declare a variable that will store your desired address, move the address from the register that stores it into your variable, then use lua to get that address from the variable and assign it to your table. Doing this outside of CE means doing everything CE does manually, which will likely be a hell of a headache the first few times you do it. Good news though is that, should your AOB break, it's usually easier to find the new AOB than it is to derive a new pointer chain.
Back to top
View user's profile Send private message
SuperAndromeda
Newbie cheater
Reputation: 0

Joined: 30 Jul 2022
Posts: 12

PostPosted: Tue Mar 19, 2024 11:21 am    Post subject: Reply with quote

Alt wrote:
AOB is somewhat update resistant, but not fully. Pointer chains are not update resistant at all. An AOB will break if the corresponding code changes, a pointer chain will almost always break regardless of code changes.
Getting a pointer from an AOB is trivial in CE. You find the instructions that read/write to your address, inject using auto assembler, use the aob template, declare a variable that will store your desired address, move the address from the register that stores it into your variable, then use lua to get that address from the variable and assign it to your table. Doing this outside of CE means doing everything CE does manually, which will likely be a hell of a headache the first few times you do it. Good news though is that, should your AOB break, it's usually easier to find the new AOB than it is to derive a new pointer chain.


Both pointers and AOB scan seem quite troublesome to be honest lol. I've already tried to work with AOB injection with another game I was hacking before, I received a lot of help from people here and many days of work just to come up with a code that reads and prints value from memory pointed by an instruction. Not to mention I would have to either re-write my whole Python code into Lua (and I would need to study a lot of both Lua/assembly to work with this on my own) or work with both Python IDE and Cheat engine separately.

P.S.: Btw, the problem with pointers is not due to updates, they seem to get lost randomly after a couple of days.
Back to top
View user's profile Send private message
lucid
Master Cheater
Reputation: 0

Joined: 23 Jan 2008
Posts: 424

PostPosted: Wed Mar 20, 2024 10:34 am    Post subject: Reply with quote

SuperAndromeda wrote:
P.S.: Btw, the problem with pointers is not due to updates, they seem to get lost randomly after a couple of days.


What game are you working on?
Back to top
View user's profile Send private message
SuperAndromeda
Newbie cheater
Reputation: 0

Joined: 30 Jul 2022
Posts: 12

PostPosted: Wed Mar 20, 2024 4:59 pm    Post subject: Reply with quote

lucid wrote:
SuperAndromeda wrote:
P.S.: Btw, the problem with pointers is not due to updates, they seem to get lost randomly after a couple of days.


What game are you working on?


It's Rivals of Aether. I'm writing a Python code that links the game with my Twitch channelbot, and it works with Pymem to manage pointers. Not sure if I can do that in Lua, but I'll search it up.
Back to top
View user's profile Send private message
lucid
Master Cheater
Reputation: 0

Joined: 23 Jan 2008
Posts: 424

PostPosted: Thu Mar 21, 2024 10:26 am    Post subject: Reply with quote

Did some searching and I found that Rivals was written in GameMaker. GameMaker by default uses a virtual machine JIT compiler, and pretty much any multi-platform game using GameMaker is going to use that default. As such, you're in the same situation as with Unity games. The pointers are going to change on you, and the only way to prevent this is to use AOB scanning to identify your pointers, which will only work after the relevant function has been called and the instructions have been written to memory. This is a headache you're dealing with that I'm not familiar enough with to give you decent guidance.
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