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 


Retrieving Chat Text from a Multiplayer Server Side Game

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

Joined: 15 Mar 2011
Posts: 4

PostPosted: Tue Mar 15, 2011 3:46 pm    Post subject: Retrieving Chat Text from a Multiplayer Server Side Game Reply with quote

I'd like to state that I'm not trying to create a hack, crack, or manipulate data in the game. I simply want to create a program that logs chat text. I have the programing/scripting skill but I'm just fairly new at using Cheat Engine and I'm not sure how to go about retrieving the text.

The game is Guild Wars, which over the years the community has made multiple requests for a Chat Log feature. All requests have been ignored since the game launched in 2005. Why do I think this can be done? Because I believe a Chat Logger has been created by a french player who then made a website with a searchable log of a trade channel to help players estimate market prices of items they are interested in. The website seems to be down, google GwEstimator by Argos Soft (can't post Url's yet)

Now for some Questions:
Do I have to use a packet sniffer?
Should I be able to find the text in memory?
Does anyone reading this have any experience with finding chat text in multi-player games?
Know of any resources/tutorials available that might help?

Thanks in advance!
Back to top
View user's profile Send private message
AhMunRa
Grandmaster Cheater Supreme
Reputation: 27

Joined: 06 Aug 2010
Posts: 1117

PostPosted: Tue Mar 15, 2011 5:45 pm    Post subject: Reply with quote

Not the answer you seek, but perhaps it could be used to accomplish what you are looking to do.

http://www.codeproject.com/KB/cpp/codecave.aspx

Tutorial pulls the games score from pinball, yeah I know. It could be used to read text from the game and log it. It would eliminate the need to packet sniff and then decrypt the packets as the game would decrypt them for you.

Is there no +set debug 1 to the exe?

_________________
<Wiccaan> Bah that was supposed to say 'not saying its dead' lol. Fixing >.>
Back to top
View user's profile Send private message
atom0s
Moderator
Reputation: 198

Joined: 25 Jan 2006
Posts: 8516
Location: 127.0.0.1

PostPosted: Tue Mar 15, 2011 7:04 pm    Post subject: Re: Retrieving Chat Text from a Multiplayer Server Side Game Reply with quote

plaztik wrote:

Now for some Questions:
Do I have to use a packet sniffer?
Should I be able to find the text in memory?
Does anyone reading this have any experience with finding chat text in multi-player games?
Know of any resources/tutorials available that might help?

Thanks in advance!


To answer your questions:
1. No, you do not need a packet sniffer to do this. You can certainly use one though if you wanted but it's not needed.

2. Yes, the text should be in memory. If not, it may be recorded directly to a file after being received by the client.

3. Yes, I've written chat loggers for other games.

I'd suggest scanning for the chat in memory, then determine where the start of the log is in memory. Once you can find that find what writes to the log. Once you find the function that writes to the log you can just hook the function, read the chat its about to paste to the log, and store it elsewhere then let the function continue as normal.

Or if you can map out how the chat is structured in memory you can just read it from memory efficiently if you can easily determine if it has updated or not etc with new text.

_________________
- Retired.
Back to top
View user's profile Send private message Visit poster's website
plaztik
How do I cheat?
Reputation: 0

Joined: 15 Mar 2011
Posts: 4

PostPosted: Tue Mar 15, 2011 9:27 pm    Post subject: Reply with quote

AhMunRa wrote:
Not the answer you seek, but perhaps it could be used to accomplish what you are looking to do.


Tutorial pulls the games score from pinball, yeah I know. It could be used to read text from the game and log it. It would eliminate the need to packet sniff and then decrypt the packets as the game would decrypt them for you.

Is there no +set debug 1 to the exe?


I'll have a look, thanks!


Wiccaan wrote:

I'd suggest scanning for the chat in memory, then determine where the start of the log is in memory. Once you can find that find what writes to the log. Once you find the function that writes to the log you can just hook the function, read the chat its about to paste to the log, and store it elsewhere then let the function continue as normal.

Or if you can map out how the chat is structured in memory you can just read it from memory efficiently if you can easily determine if it has updated or not etc with new text.


Thanks for the swift reply!

I'll load up a file monitor and see there is anything being written to a file.

As far as scanning memory for plain text goes, I've had no luck in finding any words that I've searched for. And I've only searched for text that wouldn't appear in game dialogue from npc's etc.. and was presently displayed on my screen, both from other players and from myself.

I'm fairly new at using Cheat Engine so there's a possibility that I might not be using it correctly? And since you say it's possible that the plain text is being stored in memory somewhere, I'll continue to look and read up on how to use CE more efficiently.

I had a thought though. I read somewhere about statement made from a rep that ".. chat logs were not being considered because they can be manipulated and falsified .." and it's got me wondering if they are not saving plain text at all, like it's being cleared from memory as soon as new messages are displayed client side. If this were the case would I have better luck using a sniffer?

In either case it looks like I'll have a bitch of a time decoding, or i need to find the routine that is doing the decoding.. man I wish I could I just set a break point in softice and find the routine...

Thanks again!!
Back to top
View user's profile Send private message
atom0s
Moderator
Reputation: 198

Joined: 25 Jan 2006
Posts: 8516
Location: 127.0.0.1

PostPosted: Tue Mar 15, 2011 9:36 pm    Post subject: Reply with quote

It all depends on how the game handles the incoming text. They could be removing it from memory by rendering the text to textures and only keeping the textures in memory. There are a lot of possibilities that could be done.

Their main reason for saying they don't keep logs for falsified info issues is because if people ever need to report issues and wanted to use chat logs they could change things on their end and so on. But the logs should be handled server sided to prevent users from doing that though, since they shouldn't rely on users uploading their own chat logs etc. as evidence.

Your best bet to find things easily is to use the normal chat channel like say in an empty zone. Say a few words, search for them, say more stuff and find the changes, granted they might use different buffers per line and so on so you may land up with a bunch of pointers and so on.

Also be sure to try searching for Ascii and Unicode text both, the game may store the player chat differently then other strings in the game.

_________________
- Retired.
Back to top
View user's profile Send private message Visit poster's website
plaztik
How do I cheat?
Reputation: 0

Joined: 15 Mar 2011
Posts: 4

PostPosted: Wed Mar 16, 2011 12:51 am    Post subject: Reply with quote

Wiccaan wrote:
It all depends on how the game handles the incoming text. They could be removing it from memory by rendering the text to textures and only keeping the textures in memory. There are a lot of possibilities that could be done.

Their main reason for saying they don't keep logs for falsified info issues is because if people ever need to report issues and wanted to use chat logs they could change things on their end and so on. But the logs should be handled server sided to prevent users from doing that though, since they shouldn't rely on users uploading their own chat logs etc. as evidence.

Your best bet to find things easily is to use the normal chat channel like say in an empty zone. Say a few words, search for them, say more stuff and find the changes, granted they might use different buffers per line and so on so you may land up with a bunch of pointers and so on.

Also be sure to try searching for Ascii and Unicode text both, the game may store the player chat differently then other strings in the game.


Unicode did it, thanks again!

So now I have to determine what routine is controlling the text and find out how it's storing it in memory so i can read it, the memory addresses that I find text at seem to be constantly changing..... hrm, gotta figure out how the routine is deciding where to store stuff... it's late and I'm tired...
Back to top
View user's profile Send private message
AhMunRa
Grandmaster Cheater Supreme
Reputation: 27

Joined: 06 Aug 2010
Posts: 1117

PostPosted: Wed Mar 16, 2011 8:31 am    Post subject: Reply with quote

Can't you hook the function and write whatever vars are sent to that function straight to a text file?
_________________
<Wiccaan> Bah that was supposed to say 'not saying its dead' lol. Fixing >.>
Back to top
View user's profile Send private message
plaztik
How do I cheat?
Reputation: 0

Joined: 15 Mar 2011
Posts: 4

PostPosted: Wed Mar 16, 2011 10:35 am    Post subject: Reply with quote

AhMunRa wrote:
Can't you hook the function and write whatever vars are sent to that function straight to a text file?


Thanks for the input!

I could hook the function but I'm kinda weary about modifying any code as I don't want to get my account banned. Also I haven't reversed engineered any game code since around 1998 and to be honest I'm not quite sure how to go about this yet. I suppose I'll start by brushing up on my Asm as I've haven't looked at it in 13 years and see if I can follow the code to find an entry point to that will lead me to what I want.

If you want to give me any more tips, advice, or links to resources that might help, I'd appreciate it.
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