DreamingInsanity How do I cheat?
Reputation: 0
Joined: 29 Nov 2020 Posts: 5
|
Posted: Sat Dec 05, 2020 9:59 am Post subject: Set symbol to a constant value with no useable read / writes |
|
|
I'm still working on a free cam for The Witness. I've discovered this feature in the game where if you move into an "illegal position" (that could be under the floor, too high off the ground for too long, out of bounds), you will be teleported to a set position (that doesn't change) in the map.
It seems to use the camera's position to determine whether you should be teleported or not so that means with the free cam, flying around will mean your player is teleported to that position. When the camera is then recoupled to the player instead of being in the position where you started the free cam, you will have been teleported. This is kind of annoying so I want to change it to make the values it teleports you to, the current camera's position.
I scanned for these value and found them. They are constant values with no writes to their addresses at all. There a few reads to them, one which reads from both addresses and one which reads from many hundreds of addresses (shown in the image). To keep it short, I was not able to do something like this: mov [pDefaultVals],rsi to get the value into a symbol. One ends up in a value 1EEC out and one gives a value of 000000 in pDefaultVals.
How can I read these values into a symbol that can be used in a lua script, for instance, without having to reference the exact address which may change?
Description: |
As you can see this read instruction accesses lots of different addresses so I can't inject code in there to try and get the one I want because I will get the wrong one. |
|
Filesize: |
35.32 KB |
Viewed: |
1022 Time(s) |

|
|
|
DreamingInsanity How do I cheat?
Reputation: 0
Joined: 29 Nov 2020 Posts: 5
|
Posted: Sun Dec 06, 2020 5:28 am Post subject: |
|
|
I got it working. I was looking at it from totally the wrong. I was going to continually write to the addresses so the player was always where the camera was.
Instead, I got the X and Y of the player, found out what wrote to those addresses when you got into an "illegal position" and created two script. One just nop's that instruction out so you don't move anywhere. The other will add an instruction in that pushed the two values to a symbol (pDefaultVals) that I can use to modify the default positions.
This is a much better way of doing it.
|
|