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 


Tomb Raider 2013 Pointers?

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Mon Apr 01, 2013 3:52 pm    Post subject: Tomb Raider 2013 Pointers? Reply with quote

For those of you that are working on this game, how are you finding a proper, static base address?

At first, I thought all of my pointers were correct, because they always worked...however...I've noticed that sometimes, if I start a new game and play from the beginning, the addresses might change.

Pointers usually aren't a problem, but this game is proving quite difficult.

Any help would be appreciated.

Thanks.


Last edited by ++METHOS on Mon Apr 01, 2013 11:52 pm; edited 1 time in total
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 Apr 01, 2013 6:38 pm    Post subject: Reply with quote

Yes, there is problem in finding pointers in this form:
.....[[[staticbase]+offset1]+offset2]+....
(note: staticbase can be "XXXXXXXX" or "modulename+YYYYYYYY")

Some games simply don't have those.

But probably there are pointers of this type:
.....[[[base]+offset1]+offset2]+....
base is accessed (read or write) by some opcodes, like for example "mov eax,[esi]" or something like that.

You can always try this:
Do "2 level" pointer scan, "only paths with static address" unticked, do many rescans. But, do NOT restart the game, do NOT load checkpoints, you only move around, shoot, change locations (do NOT use "fast travel" for that), do NOT let Lara die (because it will load checkpoint).

Yes, there will be hundreds. But you can change that. You have found almost stable pointer ("they always worked...however...I've noticed that sometimes"). So you know the most common ending offsets. For example, you have this "almost stable static pointer":
[[[[[[[yourstaticbase]+offset1]+offset2]+offset3]+offset4]+offset5]+offset6]+offset7

So do "2 level" pointer scan with ending offsets:
offset7 - last
offset6 - one before last
And of course, "only paths with static address" unticked.

You should have significantly less pointers

OK, now try first pointer and do "what access". Now choose the option which usually we don't use: "find out what accesses this pointer".

If nothing, try next pointer. And so on.




Give me that "almost stable static pointer", I'll try to find some opcodes to determine nonstatic base for level2 pointer (or maybe level1, level3, level4, ....).

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

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Mon Apr 01, 2013 9:47 pm    Post subject: Reply with quote

mgr.inz.Player-

Thanks for your help. I am still working on this. I will try your way.
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: Tue Apr 02, 2013 7:39 am    Post subject: Reply with quote

What's your "almost stable static pointer" ?
_________________
Back to top
View user's profile Send private message MSN Messenger
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Tue Apr 02, 2013 2:23 pm    Post subject: Reply with quote

I trashed what I had before, so I will have to get back to you on this. I will report back when I have more time to look at this. I have been trying your steps on the controller addresses that I found for fly mode. The addresses only changed once, and now, I can't get them to change again...and I can't find any pointers that work for these addresses.

Code:
cmp [11DAEE20],3F800000
je higher
cmp [11DAFD60],3F800000


The above are the controller addresses that I am using. When pressed, the value is 3F800000. When not pressed, the value is 0.

Maybe this won't work for everyone, I don't know. But I would like to write the cheat to work for everyone so that it can be used with a controller...with only the script.

Thanks again, mgr.inz.Player.
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: Tue Apr 02, 2013 4:40 pm    Post subject: Reply with quote

"Maybe this won't work for everyone"
Better do not "cmp" for exact value. Check if value is bigger than 0.5

As for the rest, unfortunately I don't have any controller.

_________________
Back to top
View user's profile Send private message MSN Messenger
TsTg
Master Cheater
Reputation: 5

Joined: 12 Dec 2012
Posts: 340
Location: Somewhere....

PostPosted: Tue Apr 02, 2013 6:09 pm    Post subject: Reply with quote

if you got the base address correctly as you said, then it's a problem with the offsets, some games uses dynamic offsets along with the dynamic addresses, in that case you need to find the other base address that stores the current offset, mostly in instructions like mov dword [eax+ecx*4+100],edx is used with that dma technique
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: Tue Apr 02, 2013 6:30 pm    Post subject: Reply with quote

@TsTg, yeah, for example "salvage" is kept inside list (http://www.tutorialhandbook.com/programming/pascal/linked-lists-in-pascal.html), weird.


Alice0725 found a way:
http://forum.cheatengine.org/viewtopic.php?t=563586

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

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Tue Apr 02, 2013 8:31 pm    Post subject: Reply with quote

mgr.inz.Player wrote:
"Maybe this won't work for everyone"
Better do not "cmp" for exact value. Check if value is bigger than 0.5

As for the rest, unfortunately I don't have any controller.
Okay, I will try this. Thanks. Hopefully, someone with a different controller will test this for me. Very Happy


TsTg wrote:
if you got the base address correctly as you said, then it's a problem with the offsets, some games uses dynamic offsets along with the dynamic addresses, in that case you need to find the other base address that stores the current offset, mostly in instructions like mov dword [eax+ecx*4+100],edx is used with that dma technique
I am not too sure if I have much experience with this. I noticed Alice0725 was using IDA to find the dynamic addresses, but it has been a long time since I used that program. I am still learning how to use Cheat Engine...and I have a hard time remembering things. Very Happy


EDIT:

mgr.inz.Player wrote:
What's your "almost stable static pointer" ?
I did trash this, but searched again, so you could see. I have since given up and just went with code injection.

Here is what I had working for arrow ammo, but the pointers would change and stop working if I started a new game and played from the beginning (that's the only time they stopped working...if I reloaded from checkpoint, they would usually start working again):

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