View previous topic :: View next topic |
Author |
Message |
SuperAndromeda Newbie cheater Reputation: 0
Joined: 30 Jul 2022 Posts: 12
|
Posted: Mon Mar 04, 2024 9:30 pm Post subject: All pointers suddenly stopped working |
|
|
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 |
|
|
Alt How do I cheat? Reputation: 2
Joined: 19 Jan 2017 Posts: 4
|
Posted: Mon Mar 18, 2024 1:42 pm Post subject: |
|
|
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 |
|
|
SuperAndromeda Newbie cheater Reputation: 0
Joined: 30 Jul 2022 Posts: 12
|
Posted: Mon Mar 18, 2024 2:02 pm Post subject: |
|
|
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 |
|
|
Alt How do I cheat? Reputation: 2
Joined: 19 Jan 2017 Posts: 4
|
Posted: Tue Mar 19, 2024 9:25 am Post subject: |
|
|
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 |
|
|
SuperAndromeda Newbie cheater Reputation: 0
Joined: 30 Jul 2022 Posts: 12
|
Posted: Tue Mar 19, 2024 11:21 am Post subject: |
|
|
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 |
|
|
lucid Master Cheater Reputation: 0
Joined: 23 Jan 2008 Posts: 424
|
Posted: Wed Mar 20, 2024 10:34 am Post subject: |
|
|
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 |
|
|
SuperAndromeda Newbie cheater Reputation: 0
Joined: 30 Jul 2022 Posts: 12
|
Posted: Wed Mar 20, 2024 4:59 pm Post subject: |
|
|
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 |
|
|
lucid Master Cheater Reputation: 0
Joined: 23 Jan 2008 Posts: 424
|
Posted: Thu Mar 21, 2024 10:26 am Post subject: |
|
|
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 |
|
|
|