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 


Find all offsets an base address is using ?

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

Joined: 27 Mar 2013
Posts: 14

PostPosted: Fri Nov 11, 2016 4:06 am    Post subject: Find all offsets an base address is using ? Reply with quote

Hi,

i'm currently stuck and i can't figure out what i'm looking for. I've searched Google and Forums but maybe i'm to stupid to look for the correct phrase...

My Problem: I've found an base address. So far so good. Let's say the
address is 0x10000000. What i'm looking for is a way to get all offsets that are using this base address.

Let's say Base is: 0x10000000
Offset 1: 0x50 + 0x1C
Offset 2: 0x50 + 0x1F
Offset 3: 0x90
Offset 4: 0x10 + 0xFF + 0x2C
...

Scan for all Offsets that are using the Base Address. Is that possible?

Thank you for any help...
Back to top
View user's profile Send private message
Cake-san
Grandmaster Cheater
Reputation: 8

Joined: 18 Dec 2014
Posts: 541
Location: Semenanjung

PostPosted: Fri Nov 11, 2016 4:26 am    Post subject: Reply with quote

Sorry, I'm not fully understand your question...

But, there are two ways that I know...

First , you can try exploring the structure for that base address using Stucture dissect (Ctrl+Alt +C) . It's a bit tedious to guess the offset by exploring the structure but , it's easier if everything is labeled/symbolize when you defined the structure but unfortunately not all game can be like that, only some ,eg: some .net & mono games...

Second , you can try using the pointer scanner. Set the base address using that base address that you got & set/choose either to scan by address or by value... Set the pointer level ( you guess it ). Then, run the scan and wait....

Well, sometimes you get what you want and sometimes you don't, it depends on the game and your luck ( exp , knowledge , etc... ) Rolling Eyes

_________________
...
Back to top
View user's profile Send private message
FreewareFire
Newbie cheater
Reputation: 0

Joined: 27 Mar 2013
Posts: 14

PostPosted: Fri Nov 11, 2016 7:47 am    Post subject: Thank you! Reply with quote

Hello Cake-san,

your second suggestion sounds interesting. Maybe I can explain it better.

As said I have a base address. This base address is used by money, game time and some other values. The problem is that after an update the offsets are changed. It's stupid to search every value from scratch. The only constant value is the base address for the values. So if there's a way to get all offsets for that base, it's easier than doing manual search for each value...

Thx!
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4702

PostPosted: Fri Nov 11, 2016 8:39 am    Post subject: Reply with quote

The set of all offsets from any given base address used by the game can't be found by only looking at the base address. It would be like playing a guessing game where the number to be guessed is between 0 and infinity.

Using the pointer scanner is one solution. Set the max offset value and max level based on their values before the game update (give max offset some leeway).

If the game updating frequently is a problem, a code injection with a good AoB signature will be less likely to break than a multilevel pointer path. See this topic for information on that and the pointer scanner. It's a bit dated, but it should suffice.

Edit: actually, I remembered the structure spider is a thing if you need to find pointers. Open the structure spider (Tools menu of the memory viewer), set the "Base Region" field to the value at the base address (e.g. [game.exe+1234] instead of only game.exe+1234), set the max level / structsize fields appropriately, and set the "Pointer must be in range" fields to the address you want to find.

_________________
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
H4x0rBattie
Advanced Cheater
Reputation: 0

Joined: 10 Nov 2016
Posts: 58

PostPosted: Sat Nov 12, 2016 12:23 pm    Post subject: Re: Thank you! Reply with quote

FreewareFire wrote:
Hello Cake-san,

your second suggestion sounds interesting. Maybe I can explain it better.

As said I have a base address. This base address is used by money, game time and some other values. The problem is that after an update the offsets are changed. It's stupid to search every value from scratch. The only constant value is the base address for the values. So if there's a way to get all offsets for that base, it's easier than doing manual search for each value...

Thx!


You will need to create a signature for that offset ie. reverse that function to get op codes and then use an appropriate tool to find the updated offset based on the signature you just created.

Search UC forum for offset dumper to get you started.

_________________
Back to top
View user's profile Send private message
FreewareFire
Newbie cheater
Reputation: 0

Joined: 27 Mar 2013
Posts: 14

PostPosted: Sun Nov 13, 2016 3:10 am    Post subject: Reply with quote

Hello H4x0rBattie,

that's exactly what i did at my first attemps. I reversed the Structure. But if you read my first post carefully you will notice that these Structure is changing after Update...

Money ex. : base + 0x30 + 116C

after Update: base + 0x74 + 155A

base in both cases is the same but the offsets are different. But anyway thank you for your reply!
Back to top
View user's profile Send private message
H4x0rBattie
Advanced Cheater
Reputation: 0

Joined: 10 Nov 2016
Posts: 58

PostPosted: Wed Nov 16, 2016 1:49 pm    Post subject: Reply with quote

FreewareFire wrote:
Hello H4x0rBattie,

that's exactly what i did at my first attemps. I reversed the Structure. But if you read my first post carefully you will notice that these Structure is changing after Update...

Money ex. : base + 0x30 + 116C

after Update: base + 0x74 + 155A

base in both cases is the same but the offsets are different. But anyway thank you for your reply!


You're after a truly auto-updating hack. Then your code must read op code for the offset as well and then sum it up. I think it can go easily broken though but you can try it.

I haven't done that before, still learning ASM as well.

_________________
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine 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