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 


Need help finding base address, pointer scan did not work.

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

Joined: 31 Oct 2015
Posts: 4

PostPosted: Sat Oct 31, 2015 3:38 pm    Post subject: Need help finding base address, pointer scan did not work. Reply with quote

Hi everyone,

I'm trying to find base address of a list of item location in the storage.
After some little investigation, there's something I know about it:

- Each "Item Location" is represent by an array of 5: [ FFFFFFF, itemLocation, itemIndex, columnsInStorage, rowsInStorage]. So, each "Item Location" will take 20 bytes.

- "Item List" is an array of "Item Location".

I tried to found address of "columns" value of an Item. And "Find out what accesses this address". Please look at my attachment.

As you can see from the attachment:

- 2D8 should be the offset of "columns" value.

- eax = 500 = 64*0x14 -> 64 should be the index of Item which I scanned in array

- ecx = 04622148 -> this should be the base of array.

So I add value of ecx into the cheat table and do a pointer scan. I got a lot of results in my computer, even after restart the computer I still got more than 100.000 results.

But when I copy the pointer results to my virtual machine and do the rescan there. All pointers were disappear.

I tried many times but no luck at all.

Could anyone please help ? If you need more information I can provide.

Is there really no base address for this value ?



1.jpg
 Description:
 Filesize:  75.69 KB
 Viewed:  11329 Time(s)

1.jpg


Back to top
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 222

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

PostPosted: Sat Oct 31, 2015 4:19 pm    Post subject: Reply with quote

Increase "max level" and "max offset". (what max level did you try?)
Did you wait till the end of scan or you stopped the scan?

_________________
Back to top
View user's profile Send private message MSN Messenger
ipinkk
How do I cheat?
Reputation: 0

Joined: 31 Oct 2015
Posts: 4

PostPosted: Sat Oct 31, 2015 9:48 pm    Post subject: Reply with quote

Hi mgr.inz.Player,

Thanks for your reply.

I was using default configuration of CE.

Re-trying with max offset value is 3192 and max level is 6. First scan got more than 5 billion results, re-scanning. This is just too long, Will update results later.

If I suspect one of the offset is around "271FB4" , which max offset value should I provide ?

And is there any faster way to find the base ? I often use "Find what access this memory address" method. But failed to use that method against this value.

EDIT:

I scanned for the base of the array and got an address.

And this is what I got when trying to "Find out what access this address" on that address ( see attachment).

And I'm stuck there.

As far as I know, that's because the array was a local variable of the function.
So anyone know how to get its base ? through debugger or anything.

Any help is much appreciated.

I'm new to CE so if there's anything I can read to solve this, please take me there T_T

Thanks



Capture.JPG
 Description:
 Filesize:  65.65 KB
 Viewed:  11265 Time(s)

Capture.JPG


Back to top
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 222

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

PostPosted: Sun Nov 01, 2015 7:45 am    Post subject: Reply with quote

To be clear. You found "columns" value of an Item and do "Find out what accesses...", then you look at ECX register.

That way you received the address of object (array of items).

Is that array in one place all the time (except death, map/level transmission)?



Look here at ECX and ESP registers:


ECX value is way different than ESP value, and that means: array is not a local variable of function.







Better do whole procedure, you did before, this time in one sitting. And make screenshots.

1. find column address, do "Find out what accesses...", do a screenshot (like 1.jpg)
2. add new address to the list (ECX), do "Find out what accesses...", do a screenshot

_________________
Back to top
View user's profile Send private message MSN Messenger
ipinkk
How do I cheat?
Reputation: 0

Joined: 31 Oct 2015
Posts: 4

PostPosted: Sun Nov 01, 2015 11:34 am    Post subject: Reply with quote

Here's what I did, step by step


1.JPG
 Description:
First, by re-allocating I managed to find address to the "columns" of an Item.

By add and subtract the address by mutiplier of 4, I know each Item is represent by an array of 5, mean 20 bytes.
 Filesize:  56.05 KB
 Viewed:  11212 Time(s)

1.JPG



2.JPG
 Description:
"Found out what access this address" and re-allocate the item, I got this
 Filesize:  82.34 KB
 Viewed:  11211 Time(s)

2.JPG



3.JPG
 Description:
From the disassembler, I guess eax is the locationIdx * 0x14.
 Filesize:  162.71 KB
 Viewed:  11211 Time(s)

3.JPG



4.JPG
 Description:
So ecx = 043A2110 should be the base of the array. I do a scan for this address
 Filesize:  65.1 KB
 Viewed:  11211 Time(s)

4.JPG



5.JPG
 Description:
I got 3 results, by observe, I see the value of sencond and third address is being changed continuoustly. So I try "Found out what access this address" for the first one, and this is the results.
 Filesize:  100.21 KB
 Viewed:  11211 Time(s)

5.JPG


Back to top
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 222

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

PostPosted: Sun Nov 01, 2015 2:17 pm    Post subject: Reply with quote

The step 4 and address 043A2110.

You might want to try like this:


Maybe you will find something.

If above found addresses aren't accessed by opcode ("find out what..." doesn't have hits) you can scan for each found address.

Maybe that way you can find address of object which contains pointer to an array of items:
Code:
struct object {
    int arraySize;
    Item* ArrayOfItems;
};


And maybe "find out what..." on that object will have hits.

_________________
Back to top
View user's profile Send private message MSN Messenger
ipinkk
How do I cheat?
Reputation: 0

Joined: 31 Oct 2015
Posts: 4

PostPosted: Mon Nov 02, 2015 12:29 am    Post subject: Reply with quote

Hi mgr.inz.Player,

Thanks very much for the hint.

First, I tried the range you told me but still got nothing good.

Then, I was thinking, if the array is in an object so the address of array should be [objectBase + offset]. So we won't need address higher then address of the array.

So, I tried search range again with range like [arrayBase-c8, arrayBase]. Still got nothing good.

I continue to tried with [arrayBase-190, arrayBase]. Nothing good at all, at this point i'm thinking about giving up.

Luckily I didn't give up, I tried again with range [arrayBase-258, arrayBase]

Then finally, something good appear, an instruction like move "eax,[eax + ecx*4]". The offset from array was 1b4

That look familiar, I managed to find its base address pretty easily.

I didn't have enough time to test the base more, but it seem very good.

Thanks again, and a lot. Without your hint, maybe I would never figure it out.

But if possible, I have one question: why didn't I get anything when try to "find out what access this address" on the base of array. From the final result, I would expect something like "mov eax, [ecx + 1b4]" when try to "find out what access this address".
I'm very eager to learn what really happens there. So if possible please help to answer my question.
Back to top
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 222

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

PostPosted: Mon Nov 02, 2015 12:23 pm    Post subject: Reply with quote

That array could be accessed once, immediately after it was created. While world and assets are loading, or while spawning your character, etc.

You can not do "find out what..." on not yet existing array.

_________________
Back to top
View user's profile Send private message MSN Messenger
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