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 


Finding three values that an address can have

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
nergo
How do I cheat?
Reputation: 0

Joined: 16 Jun 2017
Posts: 6

PostPosted: Fri Jun 16, 2017 2:39 pm    Post subject: Finding three values that an address can have Reply with quote

Let's say you have three selectable boxes, and an address that shows one of three certain values that changes depending on which of the three boxes you selected. Every time the game restarts the values change, but the address you have stays. These three values also stay the same during the playthrough, and there is no other way to change the three values other than restarting the game. You know what the values of the address are after selecting each of the three boxes and noting each of them down, but is there a way to obtain the value for each of the three boxes automatically, without needing user input?

To clarify, there's 3 boxes, if you select them each you can obtain three possible values of a certain address. What I want is to find the value this address would have after a certain box is selected without actually having to select the box.

I don't believe this value is stored anywhere else except as a value of the address I have when a certain box is selected.

What should I do? I'll be grateful for any insights, this has been bothering me for quite a while.


Last edited by nergo on Fri Jun 16, 2017 4:05 pm; edited 1 time in total
Back to top
View user's profile Send private message
OldCheatEngineUser
Whateven rank
Reputation: 20

Joined: 01 Feb 2016
Posts: 1587

PostPosted: Fri Jun 16, 2017 3:18 pm    Post subject: Reply with quote

this is not clear enough to ...
maybe providing the name of that game and where to find these boxes / crates.

whats the point of changing values?
what are you trying to get? or what can you get?

_________________
About Me;
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
Jul 26, 2020
STN wrote:
i am a sweetheart.
Back to top
View user's profile Send private message Visit poster's website
nergo
How do I cheat?
Reputation: 0

Joined: 16 Jun 2017
Posts: 6

PostPosted: Fri Jun 16, 2017 3:46 pm    Post subject: Reply with quote

OldCheatEngineUser wrote:
this is not clear enough to ...
maybe providing the name of that game and where to find these boxes / crates.

whats the point of changing values?
what are you trying to get? or what can you get?



There are three boxes you can click on. There's an address you've found that holds three possible values which correspond to the three boxes in a peculiar way: selecting (clicking) a box puts an "X" mark on it. When you select another box, the X mark moves from the box you previously selected to the now selected box, so only one box can ever be marked at a time.

The address you have is what does the actual marking of the three boxes. Let's say the three possible values of this address are "1", "2", and "3". If the value of the address is "1" then box 1 is marked with X, if you change the value of this address to "2", then the mark will move to box 2. So, editing this address directly moves X between boxes.

But the three possible values aren't "1", "2" and "3", and they change every time you restart the game. They don't change once the game starts. I don't know if they can be found anywhere else, except in the value of the address I have when a certain box is selected.

The goal is to obtain all three possible values of this address which would enable you to change the box that is marked. You can find all three of these values very easily if you do so manually. Just start the game, click on a box, look at the address you already have in cheat engine and note down the value this address has. Do this for all three of the addresses and voila, you've done what I'm asking. However, I don't want to do this manually, and am asking for a way to find a value this certain address would have if one of the three boxes was selected. So, I want to load CE, and automatically see all three values that this address would have if I clicked each of the three boxes, and noted the value down for every of them. I believe to have been more clear. Unfortunately, I cannot disclose as to what game I'm talking about, but you would not have heard of it, or been able to do testing yourself. I apologize for this.


Last edited by nergo on Fri Jun 16, 2017 4:32 pm; edited 1 time in total
Back to top
View user's profile Send private message
OldCheatEngineUser
Whateven rank
Reputation: 20

Joined: 01 Feb 2016
Posts: 1587

PostPosted: Fri Jun 16, 2017 4:04 pm    Post subject: Reply with quote

see what writes to the address of that value and disassemble the instruction.
use auto assemble "aob scan" on the selected address. "CTRL+A"

and use this instruction "LEA" load effective address, so will automatically find the address and the value of it.

Code:

[ENABLE]
alloc(address,8) //allocating memory for your address
registersymbol(address) //registering "address" symbol

code:
  push eax
  lea eax,[rbx+954] //change whatever instruction you have with rbx+954
  mov [address],eax
  pop eax
  jmp return

[DISABLE]
unregistersymbol(address)
dealloc(address)


assign it to current cheat table, then add address manually, tick add pointer, write (address) and done.


EDIT:

Code:
  push eax
  lea eax,[rbx+954] //change whatever instruction you have with rbx+954
  mov [address],eax
  pop eax


forgot to say add the default instructions (original one) after pop eax then jmp return.

_________________
About Me;
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
Jul 26, 2020
STN wrote:
i am a sweetheart.


Last edited by OldCheatEngineUser on Fri Jun 16, 2017 5:21 pm; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website
nergo
How do I cheat?
Reputation: 0

Joined: 16 Jun 2017
Posts: 6

PostPosted: Fri Jun 16, 2017 4:19 pm    Post subject: Reply with quote

I get the following: "Error in line 11 (jmp return) :This instruction can't be compiled".
Back to top
View user's profile Send private message
OldCheatEngineUser
Whateven rank
Reputation: 20

Joined: 01 Feb 2016
Posts: 1587

PostPosted: Fri Jun 16, 2017 4:21 pm    Post subject: Reply with quote

post your script here
_________________
About Me;
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
Jul 26, 2020
STN wrote:
i am a sweetheart.
Back to top
View user's profile Send private message Visit poster's website
nergo
How do I cheat?
Reputation: 0

Joined: 16 Jun 2017
Posts: 6

PostPosted: Fri Jun 16, 2017 4:28 pm    Post subject: Reply with quote

OldCheatEngineUser wrote:
post your script here

Code:
[ENABLE]
alloc(address,8) //allocating memory for your address
registersymbol(address) //registering "address" symbol

code:
  push eax
  lea eax,[eax-1] //change whatever instruction you have with rbx+954
  mov [address],eax
  pop eax
  jmp return

[DISABLE]
unregistersymbol(address)
dealloc(newmem)
Back to top
View user's profile Send private message
OldCheatEngineUser
Whateven rank
Reputation: 20

Joined: 01 Feb 2016
Posts: 1587

PostPosted: Fri Jun 16, 2017 4:32 pm    Post subject: Reply with quote

OldCheatEngineUser wrote:
see what writes to the address of that value and disassemble the instruction.
use auto assemble "aob scan" on the selected address. "CTRL+A"


are you kidding me? of course you will get error! return label isnt defined plus you didnt make an aobscanmodule!!

once again, when you disassemble the instruction, press CTRL+A and then a new window will pop up which will be auto assemble window. while the window is active press ctrl+shift+a. then do the changes!!

_________________
About Me;
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
Jul 26, 2020
STN wrote:
i am a sweetheart.
Back to top
View user's profile Send private message Visit poster's website
nergo
How do I cheat?
Reputation: 0

Joined: 16 Jun 2017
Posts: 6

PostPosted: Fri Jun 16, 2017 4:37 pm    Post subject: Reply with quote

I should probably also point out that the instruction of the address seems to be changing depending on which box I'm clicking on. I've seen it be:
Code:
or [edi],ch

Code:
fsubr dword ptr [esi-66]

Code:
pop eax


In light of this info, will the method you provided still work?
Back to top
View user's profile Send private message
OldCheatEngineUser
Whateven rank
Reputation: 20

Joined: 01 Feb 2016
Posts: 1587

PostPosted: Fri Jun 16, 2017 5:00 pm    Post subject: Reply with quote

it will work if you did everything correctly, except for pop eax.
_________________
About Me;
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
Jul 26, 2020
STN wrote:
i am a sweetheart.
Back to top
View user's profile Send private message Visit poster's website
nergo
How do I cheat?
Reputation: 0

Joined: 16 Jun 2017
Posts: 6

PostPosted: Fri Jun 16, 2017 5:04 pm    Post subject: Reply with quote

OldCheatEngineUser wrote:
it will work if you did everything correctly, except for pop eax.


Sorry for being retarded and needing you to walk me through this. I've got this automatically generated:

Code:
[ENABLE]

aobscanmodule(address,exe.exe,89 81 88 00 00 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov [ecx+00000088],eax
  jmp return

address:
  jmp newmem
  nop
return:
registersymbol(address)

[DISABLE]

address:
  db 89 81 88 00 00 00

unregistersymbol(address)
dealloc(newmem)


I had misunderstood you last time. I've now found the address of what writes to this address that I already have. The instruction is mov [ecx+00000088],eax. What should the code be?
Back to top
View user's profile Send private message
OldCheatEngineUser
Whateven rank
Reputation: 20

Joined: 01 Feb 2016
Posts: 1587

PostPosted: Fri Jun 16, 2017 5:21 pm    Post subject: Reply with quote

Code:
[ENABLE]

aobscanmodule(address,exe.exe,89 81 88 00 00 00) // should be unique
alloc(newmem,$50)

alloc(addressbox,8)
registersymbol(addressbox)

label(code)
label(return)

newmem:
  push ebx
  lea ebx,[ecx+00000088] // add this line
  mov [addressbox],ebx
  pop ebx
  //jmp return keep it commented, unless if it didnt work remove the double slash

code:
  mov [ecx+00000088],eax
  jmp return

address:
  jmp newmem
  nop
return:
registersymbol(address)

[DISABLE]

address:
  db 89 81 88 00 00 00

unregistersymbol(address)
dealloc(newmem)
unregistersymbol(addressbox) // add this line
dealloc(addressbox,8) // add this line


then assign it to current cheat table, after this click on add address manually >> tick on pointer (checkbox) >> write (addressbox) it will be red.
activate the script, when you find or view the three boxes you will find the value of them or at least the value of one of them.

_________________
About Me;
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
Jul 26, 2020
STN wrote:
i am a sweetheart.
Back to top
View user's profile Send private message Visit poster's website
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