 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
Attack Cheater
Reputation: 0
Joined: 21 Mar 2011 Posts: 46 Location: Canada
|
Posted: Mon Jan 19, 2015 6:05 pm Post subject: Reverse Engineer a trainer? |
|
|
Hi,
I was for a while interested in gamehacking and am now getting back into it. I've found a decent game to practise on, DuckTales Remastered, since values are easy to find and manipulate.
What I really wanted to achieve was a ghost or coin mode. The former being after a hit you flash and cannot be hit again, the latter being the mode you are in from collecting an invincible coin.
I have found a trainer that does the former (the latter only available at cheat happens). What I would like to do is see what the trainer is doing so that I can learn from it and then apply that knowledge to other games.
|
|
| Back to top |
|
 |
Krampus Cheater
Reputation: 0
Joined: 22 Nov 2014 Posts: 41
|
Posted: Mon Jan 19, 2015 8:50 pm Post subject: Re: Reverse Engineer a trainer? |
|
|
| Attack wrote: | Hi,
I was for a while interested in gamehacking and am now getting back into it. I've found a decent game to practise on, DuckTales Remastered, since values are easy to find and manipulate.
What I really wanted to achieve was a ghost or coin mode. The former being after a hit you flash and cannot be hit again, the latter being the mode you are in from collecting an invincible coin.
I have found a trainer that does the former (the latter only available at cheat happens). What I would like to do is see what the trainer is doing so that I can learn from it and then apply that knowledge to other games. |
It'd be easier to find these things yourself heh. For ghost mode, just search for an unknown value, then get hit and pause really fast, then search for increased, let the game go back to normal and search for decreased, etc.
As for coin mode, I'm not sure. If there are other pickups, such as coins themselves, you could reverse the pickup-item function and hope that they might be connected. Using C++, or any other high-level language, you can then call the game's pickup-item function with your own parameters, though that's pretty advanced. Maybe there's a value/timer when it's on that you could freeze?
_________________
There is no spoon. |
|
| Back to top |
|
 |
atom0s Moderator
Reputation: 205
Joined: 25 Jan 2006 Posts: 8587 Location: 127.0.0.1
|
Posted: Tue Jan 20, 2015 12:17 am Post subject: |
|
|
It depends on the trainer and how it is coded. In some cases it can be something very simple, others it can be something a bit more involved.
A. Simple Trainers
In the case that the trainer is very simple and has no protection, you can set a breakpoint on WriteProcessMemory and ReadProcessMemory while debugging the trainer. Enable the option you want to find the information for and your debugger should hit one of the breakpoints. Dump the arguments from the stack to find the data being written/read and the size of the data etc.
However, not all trainers make use of these API and can sometimes go lower-level and use the NT calls instead to bypass typical trainer spying applications and methods.
B. Harder Trainers
Harder trainers may resort to DLL injection or protecting their work thoroughly through packers / protectors, anti-debugging tricks, use of non-common API (NT calls etc.) and so on. If this is the case then you are going to have to do a bit more work to find the data you want.
First, you can try unpacking the trainer out of whatever protection is being used, if any. Then try the above method I explained. Next, if the trainer is using dll injection, you can dump the dll being injected and then disassemble and analyze it in a disassembler like IDA.
Another method you can resort to if you fail to find what you need is load the game and Cheat Engine. In Cheat Engine pause the process fully so that the game does not alter any memory. Make a dump of the full process memory using your favorite dumping tool etc. Then enable the trainer option you want. Make another full dump of the process memory and compare the two dumps together. This will show you what was altered then you can find what you want.
Overall you should try to avoid just looking at others trainers / work and look into tutorials that show how to find things like this. However, referencing others work sometimes is a way for some to learn and understand what is happening. But if you land up stealing the option from the trainer and releasing it yourself, people will tend to check on other trainers and see if their work is being used etc to find rippers.
_________________
- Retired. |
|
| Back to top |
|
 |
Geri Moderator
Reputation: 111
Joined: 05 Feb 2010 Posts: 5627
|
Posted: Tue Jan 20, 2015 6:50 am Post subject: |
|
|
Ghost mode is usually achieved by searching for an increasing or decreasing timer, that stores how much time do you have until your ghost mode expires. If you freeze the timer, your ghost mode will last forever.
Eg the value may be 0, then you take a hit, it will "jump" to 200 and count down until 0. Once you reach 0, ghost mode ends. You freeze the value to 200 and you are a ghost forever.
Sometimes you can find a flag value, where the value is usually 1 if you are a ghost, 0 if you are not a ghost, but it may work the opposite way too, etc.
_________________
|
|
| Back to top |
|
 |
Attack Cheater
Reputation: 0
Joined: 21 Mar 2011 Posts: 46 Location: Canada
|
Posted: Tue Jan 20, 2015 11:50 pm Post subject: |
|
|
Ok, so the best approach is to start from 0. I usually just learn faster by analyzing code.
As for stealing someone's work, I am only interested in making trainers for myself, for fun. No interest in competing with cheathappens and the like.
Thanks for the advice guys.
|
|
| Back to top |
|
 |
Pingo Grandmaster Cheater
Reputation: 8
Joined: 12 Jul 2007 Posts: 571
|
Posted: Wed Jan 21, 2015 8:37 am Post subject: |
|
|
I have this game on my pc. I've never scanned it for anything but I could start.
Want to to PM you things to try if I find anything? Or is this something you would rather do on your own. I don't mind either way.
_________________
|
|
| Back to top |
|
 |
|
|
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
|
|