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 a string array

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

Joined: 16 Jun 2011
Posts: 4

PostPosted: Thu Jun 16, 2011 12:07 pm    Post subject: finding a string array Reply with quote

hi,

I'm trying to locate an array of string pointers for this game I'm trying to write a bot for. The array should keep the pointers to the chat's strings. I can easily find the addresses of the strings, but I cant seem to find the array that keeps all different string pointers.

From what I know from the game, I suspect there should be a string array of length 255 or 256 that is used to keep chat data.

Anyone could help me out on how to find it please?

regards,
Klmdb
Back to top
View user's profile Send private message
lucidity
Advanced Cheater
Reputation: 0

Joined: 16 Feb 2011
Posts: 91

PostPosted: Thu Jun 16, 2011 12:54 pm    Post subject: Reply with quote

You probably need to find the top of that structure and iterate over the strings (find the first message and begin reading)
_________________
» Antec Twelve Hundred Full Tower » EVGA E760 CLASSIFIED » EVGA GeForce GTX 580 SuperClocked 1536MB » i7-980XE » CORSAIR DOMINATOR 6GB PC3 12800 DDR3 » OS: Intel X25-M SSD » Game Storage: Raid-0 2 x WD VelociRaptor 10000 RPM » CE Cache Drive: 500GB WD Caviar » Power Supply: OCZ Z Series Gold 1000W
Back to top
View user's profile Send private message
klmdb
How do I cheat?
Reputation: 0

Joined: 16 Jun 2011
Posts: 4

PostPosted: Fri Jun 17, 2011 9:51 am    Post subject: Reply with quote

lucidity wrote:
You probably need to find the top of that structure and iterate over the strings (find the first message and begin reading)


I can find the memory region where the first string is stored, but it's just a random place in the memory, so it changes every time I start the game.

Also, I've noticed that when other programs allocate strings, they also write to this memory region.

Hence I suspect the strings are allocated somewhere in the memory there just happens to be room for them, but the game keeps an array of pointers to each of the strings. It's that array I'm trying to find.

Am I making sense?
Back to top
View user's profile Send private message
lucidity
Advanced Cheater
Reputation: 0

Joined: 16 Feb 2011
Posts: 91

PostPosted: Fri Jun 17, 2011 10:10 am    Post subject: Reply with quote

klmdb wrote:
I can find the memory region where the first string is stored, but it's just a random place in the memory, so it changes every time I start the game.

This is normal; you need to find pointers. Memory addresses do not remain constant. If you did Step 8 of the CE tutorial, you know what I mean.

If you're attaching CE to the game's process, then you are searching the game's memory and it is not shared with something else, at least I don't know how that would be possible.

_________________
» Antec Twelve Hundred Full Tower » EVGA E760 CLASSIFIED » EVGA GeForce GTX 580 SuperClocked 1536MB » i7-980XE » CORSAIR DOMINATOR 6GB PC3 12800 DDR3 » OS: Intel X25-M SSD » Game Storage: Raid-0 2 x WD VelociRaptor 10000 RPM » CE Cache Drive: 500GB WD Caviar » Power Supply: OCZ Z Series Gold 1000W
Back to top
View user's profile Send private message
klmdb
How do I cheat?
Reputation: 0

Joined: 16 Jun 2011
Posts: 4

PostPosted: Fri Jun 17, 2011 12:15 pm    Post subject: Reply with quote

I know what you mean but I can't seem to find the pointer. This is what I tried (I think it's similar to what the tutorial says):

1) search for a chat string
--> this usually results in 3 memory regions, one of which is a region that holds many other chat strings
2) select 2 memory addresses: the first a couple of bytes left of the string's first char, the second a few bytes right of the string's first char
3) search the memory for a 4 byte value between the first and the second value ( = search for the pointer to the string)

This gives 0 results --> the pointer cannot be found

I tried this method for all resulting addresses from step 1 for a bunch of chat lines, but never found a single pointer.

Any hints?
Back to top
View user's profile Send private message
lucidity
Advanced Cheater
Reputation: 0

Joined: 16 Feb 2011
Posts: 91

PostPosted: Fri Jun 17, 2011 1:44 pm    Post subject: Reply with quote

I would recommend doing the tutorial all the way through a couple times to make sure you're very familiar with CE, it sounds like you have a couple of knowledge gaps you could fill.
_________________
» Antec Twelve Hundred Full Tower » EVGA E760 CLASSIFIED » EVGA GeForce GTX 580 SuperClocked 1536MB » i7-980XE » CORSAIR DOMINATOR 6GB PC3 12800 DDR3 » OS: Intel X25-M SSD » Game Storage: Raid-0 2 x WD VelociRaptor 10000 RPM » CE Cache Drive: 500GB WD Caviar » Power Supply: OCZ Z Series Gold 1000W
Back to top
View user's profile Send private message
klmdb
How do I cheat?
Reputation: 0

Joined: 16 Jun 2011
Posts: 4

PostPosted: Fri Jun 17, 2011 3:25 pm    Post subject: Reply with quote

lucidity wrote:
I would recommend doing the tutorial all the way through a couple times to make sure you're very familiar with CE, it sounds like you have a couple of knowledge gaps you could fill.


Some more specific pointers would be appreciated. I'm sure that if I read every tutorial and every guide I may find a solution but that kind of answer isn't of much help.

thanks
Back to top
View user's profile Send private message
lucidity
Advanced Cheater
Reputation: 0

Joined: 16 Feb 2011
Posts: 91

PostPosted: Fri Jun 17, 2011 3:35 pm    Post subject: Reply with quote

Well if you knew what I was talking about, you'd know it was not something you read, but something you DO.

The tutorial is a walkthrough of how to use CE's features, it opens automatically the first time you start.

klmdb wrote:
I can find the memory region where the first string is stored, but it's just a random place in the memory, so it changes every time I start the game.

This wreaks of you needing multilevel pointers, Step 8 of the CheatEngine tutorial.

klmdb wrote:
I'm sure that if I read every tutorial and every guide I may find a solution but that kind of answer isn't of much help.

Well if you don't even bother to look, you'll never find anything.

_________________
» Antec Twelve Hundred Full Tower » EVGA E760 CLASSIFIED » EVGA GeForce GTX 580 SuperClocked 1536MB » i7-980XE » CORSAIR DOMINATOR 6GB PC3 12800 DDR3 » OS: Intel X25-M SSD » Game Storage: Raid-0 2 x WD VelociRaptor 10000 RPM » CE Cache Drive: 500GB WD Caviar » Power Supply: OCZ Z Series Gold 1000W
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