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 


Creating pointers from aobscan result

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

Joined: 06 Dec 2015
Posts: 58

PostPosted: Fri Aug 04, 2017 6:47 am    Post subject: Creating pointers from aobscan result Reply with quote

So I'm doing something that I think should be really easy, but I can't figure out why I'm getting the results I am. I created a basic script that uses an aobscan and I want to get the address of the result and use that as a base pointer from which I add addresses to my table with offsets from it.

Here's my script:
Code:
[ENABLE]
label(BasePointer)
registersymbol(BasePointer)
aobscan(AOB,F8 91 27 1A 04 00 00 00 02 00 00 00 02 00 00 00 F5 01 00 00)

AOB:
BasePointer:

[DISABLE]
unregistersymbol(BasePointer)


What happens when I do this is that BasePointer has the value 1A2791F8 (the first 4 bytes of my aobscan pattern in little endian). Ok, so I figure it's setting BasePointer equal to the value of AOB rather than the address. Fine. So when I change AOB: to [AOB]: I get the error "This address specifier is not valid" on that line. So how can I get BasePointer to point to the address of the aobscan result? Thanks!
Back to top
View user's profile Send private message
panraven
Grandmaster Cheater
Reputation: 55

Joined: 01 Oct 2008
Posts: 942

PostPosted: Fri Aug 04, 2017 7:52 am    Post subject: Reply with quote

It is syntaxcheck error because the aobscan will not execute during syntaxcheck.
If the aob do exist, and it is 32bit process
Code:

[AOB]:
BasePointer:

will set the BasePointer as 1a2791f8 when actually activate the script.
If it is 64bit process, the BasePointer will be 41a2791f8 , for address size is 8 now.

Try ignore the syntaxcheck error, press [ok] to save the script , then activate the script to see if work or not.

_________________
- Retarded.
Back to top
View user's profile Send private message
maxhavoc
Advanced Cheater
Reputation: 1

Joined: 06 Dec 2015
Posts: 58

PostPosted: Fri Aug 04, 2017 8:12 am    Post subject: Reply with quote

Ok, but I don't want to set BasePointer equal to my aobscan pattern. I want it set to the ADDRESS of the aobscan pattern.
Back to top
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 218

Joined: 07 Nov 2008
Posts: 4438
Location: W kraju nad Wisla. UTC+01:00

PostPosted: Fri Aug 04, 2017 9:02 am    Post subject: Reply with quote

Quote:
I want to get the address of the result and use that as a base pointer from which I add addresses to my table with offsets from it

Maybe you want to use it as start address.


Code:
[ENABLE]
label(StartAddress)
registersymbol(StartAddress)
aobscan(AOB,F8 91 27 1A 04 00 00 00 02 00 00 00 02 00 00 00 F5 01 00 00)

AOB:
StartAddress:

[DISABLE]
unregistersymbol(StartAddress)




Add new addresslist entry, and use address StartAddress.

Add few new entries to above entry. And set it like this:






_________________
Back to top
View user's profile Send private message MSN Messenger
ParkourPenguin
I post too much
Reputation: 140

Joined: 06 Jul 2014
Posts: 4301

PostPosted: Fri Aug 04, 2017 9:11 am    Post subject: Reply with quote

maxhavoc wrote:
BasePointer has the value 1A2791F8 (the first 4 bytes of my aobscan pattern in little endian). Ok, so I figure it's setting BasePointer equal to the value of AOB rather than the address.

That's incorrect. BasePointer is an address. You made that address be the same as the address of the symbol AOB (i.e. the address whose value is the aob signature). Because those two addresses are the same, it follows that the value at the address BasePointer would be the same as the value at the address AOB, which you specified must be the bytes F8 91 27 1A. Everything you've said is completely consistent with the fact that BasePointer is the address the aob signature is stored at.

If you want to add an unnecessary level of indirection, allocate some memory and store the address AOB at that address.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
maxhavoc
Advanced Cheater
Reputation: 1

Joined: 06 Dec 2015
Posts: 58

PostPosted: Fri Aug 04, 2017 12:12 pm    Post subject: Reply with quote

@mgr.inz.Player - Thanks. I actually figured that out this morning, but it's nice to see the detailed steps. Appreciate it.

@ParkourPenguin - You're correct. My mistake was that I was referencing the BasePointer in a pointer entry within the table rather than an address entry. Once I corrected that, I figured out how to do what I want.
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