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 


Atypical uses for Cheat Engine

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

Joined: 13 Jan 2012
Posts: 10

PostPosted: Fri Jan 13, 2012 3:19 pm    Post subject: Atypical uses for Cheat Engine Reply with quote

So I've used cheat engine to do some of the usual things in games. Teleport, infinite resources, etc.

I play some online games (no this is not a help me cheat <insert game> thread) and there are some things about the games that are annoying.

Take <obfuscate> for example. It doesn't allow you to save your combat log. I'm not looking to hack damage or wall clip, I'm thinking use Cheat Engine to save a combat log as is scrolls.

There are other cosmetic annoyances about the UI. There are maps that all start blotted out, however there are a million maps online, so you just look it up, and away you go. So what about using CE to pull your location and draw you on a static image where you are, circumventing waiting for the map to be revealed. (Not really "cheating" but just an assist to what you do anyway with an 'offline' map.)

These are just a few of the ideas I've had about game 'assists' that aren't outright trying to cheat at an online game, more of a, this is annoying, lets log data, or reveal map (That you've revealed 10000 times before) and other axillary things.

Still more examples include the ability to 'time' in game effects. Wall of fire for example lasts 30 seconds, but there is no in game timer. Launching a timer when the effect goes off would be neat, and easy to do without touching game data. Lots of convenience things.

Has anyone done anything similar to this, is it okay to ask? Even if it wasn't an online game, I could just say the same thing for Borderlands. LOL Get a dps logger. Same idea.

-Me


Last edited by Dubstepper on Mon Jan 23, 2012 8:16 pm; edited 1 time in total
Back to top
View user's profile Send private message
atom0s
Moderator
Reputation: 205

Joined: 25 Jan 2006
Posts: 8587
Location: 127.0.0.1

PostPosted: Fri Jan 13, 2012 3:24 pm    Post subject: Reply with quote

These are common things made for MMOs, external maps with points showing enemies, other players, points of interest, etc. Same with other information the game may not always display.

As long as you don't talk about the game specifically (meaning don't mention the name) its fine to discuss the logic behind making said projects. The map idea is probably the most common with bots.

_________________
- Retired.
Back to top
View user's profile Send private message Visit poster's website
Dubstepper
Newbie cheater
Reputation: 0

Joined: 13 Jan 2012
Posts: 10

PostPosted: Fri Jan 13, 2012 3:29 pm    Post subject: Reply with quote

Wiccaan wrote:
These are common things made for MMOs, external maps with points showing enemies, other players, points of interest, etc. Same with other information the game may not always display.

As long as you don't talk about the game specifically (meaning don't mention the name) its fine to discuss the logic behind making said projects. The map idea is probably the most common with bots.


Well yes you could extrapolate that into other data 'hidden' from the client UI, while interesting data, not really what I'm going for. I'm looking at more practical uses, less, I WIN uses.

-me
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 474

Joined: 09 May 2003
Posts: 25952
Location: The netherlands

PostPosted: Fri Jan 13, 2012 3:50 pm    Post subject: Reply with quote

It depends on what you wish, but it's possible.
Have you ever played ultima online? It has some 'approved' third party tools to record your actions and replay them, show your inventory in a easier way (checks all bags and shows the total), and can show a map of the whole word and show where you are (and friends you have linked)

This is all allowed by the game developers

I'm sure you could make something like this with CE as well (For te map drawing i recommend a plugin dll making use of a better graphics renderer than tbe Canvas ce provides)

_________________
Tools give you results. Knowledge gives you control.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
Dubstepper
Newbie cheater
Reputation: 0

Joined: 13 Jan 2012
Posts: 10

PostPosted: Fri Jan 13, 2012 4:41 pm    Post subject: Reply with quote

Oh, I've played UO, years of it. Long before UOAssist and other tools were approved. (LAST TARGET COR POR I WIN!)

So focusing in on lets say a combat log. I assume you would have to hook the update function on the writing of the combat log that is scrolling in game and parse out the information you're looking for.

Unfortunately it being an 'online game' I really don't want to inject anything to catch that stuff. So I guess my only option is to just read memory so frequently I don't miss it. Or maybe read on a periodic basis, but load the whole combat scroll, and find where I left off, and pick it up again.

That or maybe watch for actual 'hits' as they are posted to the graphics engine to write the damage scroll. But again, the whole injection issue that makes me uncomfortable. (I doubt any online game maker would take kindly to that.)

So maybe a packet avenue, but then I have to decrypt/decompress the stream, but using the that method would be 'safer' from a getting banned perspective.

But... All I want is a combat log. Sad

I guess I'm not really sure where to start. I'm certainly not the assembly language kung-fu master, but I do understand the systems.

Any pointers? (No coding intended) What to read, where to begin?

I want it 'passive' (Without injecting code)
I don't mind reading memory, or packets.
I need to dump the data so I can spread sheet it later. (For fun really, how much damage did I do?)

--Me
Back to top
View user's profile Send private message
atom0s
Moderator
Reputation: 205

Joined: 25 Jan 2006
Posts: 8587
Location: 127.0.0.1

PostPosted: Sat Jan 14, 2012 10:48 am    Post subject: Reply with quote

Dubstepper wrote:
Oh, I've played UO, years of it. Long before UOAssist and other tools were approved. (LAST TARGET COR POR I WIN!)

So focusing in on lets say a combat log. I assume you would have to hook the update function on the writing of the combat log that is scrolling in game and parse out the information you're looking for.


Depends on how the game stores the chat log. You could easily externally read the chat log from the game assuming the log is stored in a format you can read effectively without missing parts. Pointers typically work well if the game uses them for the chat. Hooking isn't required unless you absolutely need it or want the best method of obtaining all chat without the possibility of missing any of it.

Dubstepper wrote:
Unfortunately it being an 'online game' I really don't want to inject anything to catch that stuff. So I guess my only option is to just read memory so frequently I don't miss it. Or maybe read on a periodic basis, but load the whole combat scroll, and find where I left off, and pick it up again.


Spam reading is the more common method for chat reading in games. Depends on how the chat line is stored to do your second idea. If the chat line includes extra details such as an internal tmestamp of some sort, using that method would work well too. But if its just the text, you'd run into issues with people spamming chat with the same thing over and over.


Dubstepper wrote:
That or maybe watch for actual 'hits' as they are posted to the graphics engine to write the damage scroll. But again, the whole injection issue that makes me uncomfortable. (I doubt any online game maker would take kindly to that.)


Externally you'd only be able to really do this with pixel detection. (Not including packet reading and such.) That is, if you want the damage hits. Another route you could take for this is monitoring your players heal and each time it drops from the previous known value, count it as a hit.

Dubstepper wrote:
So maybe a packet avenue, but then I have to decrypt/decompress the stream, but using the that method would be 'safer' from a getting banned perspective.


Depends on the game. Not all games encrypt or compress their packet data. Along with that you'd either have to hook the game to monitor the packets or create a proxy that you force the client to connect to to forward the connection giving you access to the streams.

Dubstepper wrote:
But... All I want is a combat log. Sad

I guess I'm not really sure where to start. I'm certainly not the assembly language kung-fu master, but I do understand the systems.

Any pointers? (No coding intended) What to read, where to begin?

I want it 'passive' (Without injecting code)
I don't mind reading memory, or packets.
I need to dump the data so I can spread sheet it later. (For fun really, how much damage did I do?)

--Me


Start off with finding the chat log in memory. Once you find it map out how you think the game stores it in an actual language. Such as if the chat lines are stored like this:

timestamp|color|playerid|message
00 00 00 01 FF FF FF 01 00 00 00 48 65 6C 6C 6F 20 77 6F 72 6C 64 2E 00

So we'd have:
struct
{
unsigned int timestamp;
unsigned char color_r;
unsigned char color_g;
unsigned char color_b;
unsigned int playerid;
unsigned char* message;
} chat_t;

Assuming the game null terminates the string we could easily read the bytes of the chat knowing the structure of the data. This is just an example, not all games will store things the same or this easily read. You'd have to take a look to see how the game stores it to see how easy it will be to just read the memory of it.

You are better off avoiding packets until you absolutely feel its needed to get what you want done.

Also, do some research to find out of the game has any protection or anti-cheat implemented. If not, hooking onto the game is a more viable option.

_________________
- Retired.
Back to top
View user's profile Send private message Visit poster's website
Dubstepper
Newbie cheater
Reputation: 0

Joined: 13 Jan 2012
Posts: 10

PostPosted: Mon Jan 23, 2012 8:15 pm    Post subject: Reply with quote

Well I got around to messing with it some more.

The game chat is all clear text and easy to strip right out of the packets. Non issue for logging chat.

However the combat log is done entirely differently. The packets may be encrypted, or possibly compressed. It is non-trivial to hack them up.

Read a few blogs on another game where people are trying to do something similar, way too advanced for me.

However the combat log is stores clear text in RAM for a brief period... Then it 'magically' disappears. It looks as if they store it clear text when it first gets the message, then some "sweeper" picks up the message clears the pointer and stores it in some other fashion.

So you can still scroll and see the text in the log, as well as copy it one line at a time to the clipboard. However, once the 'sweep' happens you can't find any of the data in RAM clear text anymore.

So, there isn't a single table or data structure that scrolls. Each message is individual, and short lived (a few seconds) before it is cleared, and a new one is posted.

It looks like it stores the messages in 3 or 5 positions per launch, all pointers so it moves every time you load up a different character.

This looks to be beyond my current skill level. Finding pointers has been a bear too. :-/

I did write an LUA to log date/time when I gain XP so I can track my progress in game, that is useful. However, finding the pointer has been a failure.

I've also found the X/Y/Z of my character as well as party members, again finding the 'root' I haven't been successful.

Just thought I'd update this.
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