 |
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
omoe Grandmaster Cheater
Reputation: 8
Joined: 11 Jun 2013 Posts: 547
|
Posted: Sat Dec 07, 2013 8:53 am Post subject: Is using trainer form as injector a good idea? |
|
|
Hi, I wanna start making trainers using c++ , But im not that good at c++ anyway i have a dll with the cheats and aobscans etc , I tested it using a dll injector and it works great so im thinking about making a trainer form which would inject the dll into the game process when trainer active hotkey is pressed and have certain hotkeys to turn trainer cheats on and off , Is this a good idea or is there a better approach ?, I appreciate any help .
|
|
Back to top |
|
 |
SteveAndrew Master Cheater
Reputation: 30
Joined: 02 Sep 2012 Posts: 323
|
Posted: Sat Dec 07, 2013 10:29 am Post subject: |
|
|
Yes that's generally the easiest way, it depends on what your satisfied with though! Do you want your trainer to have a GUI? If so will it be an in-game GUI, or one that sits on your desktop or both? lol
Here's how I've made my trainers in the past, and I'll say which ones my favorite and where I'm currently at now!
No GUI deemed necessary: [Two Parts]
1. Injector EXE
2. Trainer DLL
Probably the simplest and most used trainer method. Working inside the game is easy, and so is injecting into it!
Injector injects your trainer DLL and either quits, or waits for the game to close to set it self up to inject again (If you want it to be a more persistent / not have to run the injector each time you run the game, but just have it open)
Desktop GUI desired:
A.
1. Injector EXE
2. Trainer DLL (with GUI window created upon injection)
or
B.
1. GUI + Injector EXE
2. Trainer DLL (which communicates with desktop GUI exe via pipes or sockets or some sort of shared memory(so it can show status of cheats whether they are enabled/disabled and also let you enable/disable them from the desktop GUI)
or
C.
1. GUI + Trainer EXE
For this one option A is probably the easier one, but the downside is your GUI will close with the game!
Option B is way cooler, but sometimes it can be tricky to get your communication between both applications to work flawlessly! I recommend sticking with pipes as it's probably the easiest to get working nicely using this method!
Option C is like how Cheat Engine works! Doing it this way although a little bit trickier to hack a game from the outside, might be still be easier then getting your pipe communication working solid in option B lol
In-Game GUI desired :My second favorite
1. Injector EXE
2. Trainer DLL (with in-game GUI using DirectX or OpenGL hook for version used [varies depending on game])
In-Game GUI + Desktop GUI desired :My favorite
1. GUI + Injector EXE
2. Trainer DLL (with in-game GUI DX/OpenGL + communicates with pipes/sockets/whatever to desktop GUI)
This last method is actually my favorite one to employ, It's basically a double GUI! The only thing that sucks is it varies depending on the game with in-game gui's... So for me I wont do anything less than a DirectX8 game. DX8 + DX9 are fairly easy. I've almost got my DX11 hook working (just having a few problems with it currently, then I'll go back and do DX10 too [the one I skipped / most games skipped and went straight to DX11) and OpenGL well I haven't encountered a game I wanted to build a trainer for that was using OpenGL, but if I came across one, then I'd figure out OpenGL hooks too! ;D
I'll probably make and post a trainer like this with source code soon! I'm just not sure what game I want to do it for yet. Well I'll decide soon
_________________
|
|
Back to top |
|
 |
omoe Grandmaster Cheater
Reputation: 8
Joined: 11 Jun 2013 Posts: 547
|
Posted: Sat Dec 07, 2013 11:12 am Post subject: |
|
|
SteveAndrew wrote: | Yes that's generally the easiest way, it depends on what your satisfied with though! Do you want your trainer to have a GUI? If so will it be an in-game GUI, or one that sits on your desktop or both? lol
Here's how I've made my trainers in the past, and I'll say which ones my favorite and where I'm currently at now!
No GUI deemed necessary: [Two Parts]
1. Injector EXE
2. Trainer DLL
Probably the simplest and most used trainer method. Working inside the game is easy, and so is injecting into it!
Injector injects your trainer DLL and either quits, or waits for the game to close to set it self up to inject again (If you want it to be a more persistent / not have to run the injector each time you run the game, but just have it open)
Desktop GUI desired:
A.
1. Injector EXE
2. Trainer DLL (with GUI window created upon injection)
or
B.
1. GUI + Injector EXE
2. Trainer DLL (which communicates with desktop GUI exe via pipes or sockets or some sort of shared memory(so it can show status of cheats whether they are enabled/disabled and also let you enable/disable them from the desktop GUI)
or
C.
1. GUI + Trainer EXE
For this one option A is probably the easier one, but the downside is your GUI will close with the game!
Option B is way cooler, but sometimes it can be tricky to get your communication between both applications to work flawlessly! I recommend sticking with pipes as it's probably the easiest to get working nicely using this method!
Option C is like how Cheat Engine works! Doing it this way although a little bit trickier to hack a game from the outside, might be still be easier then getting your pipe communication working solid in option B lol
In-Game GUI desired :My second favorite
1. Injector EXE
2. Trainer DLL (with in-game GUI using DirectX or OpenGL hook for version used [varies depending on game])
In-Game GUI + Desktop GUI desired :My favorite
1. GUI + Injector EXE
2. Trainer DLL (with in-game GUI DX/OpenGL + communicates with pipes/sockets/whatever to desktop GUI)
This last method is actually my favorite one to employ, It's basically a double GUI! The only thing that sucks is it varies depending on the game with in-game gui's... So for me I wont do anything less than a DirectX8 game. DX8 + DX9 are fairly easy. I've almost got my DX11 hook working (just having a few problems with it currently, then I'll go back and do DX10 too [the one I skipped / most games skipped and went straight to DX11) and OpenGL well I haven't encountered a game I wanted to build a trainer for that was using OpenGL, but if I came across one, then I'd figure out OpenGL hooks too! ;D
I'll probably make and post a trainer like this with source code soon! I'm just not sure what game I want to do it for yet. Well I'll decide soon  |
I want something simple , Some text on screen to show people what the hot hotkeys are and inject when the hotkey is activated , I think Desktop GUI - C would be great , Where do i have to start?
|
|
Back to top |
|
 |
SteveAndrew Master Cheater
Reputation: 30
Joined: 02 Sep 2012 Posts: 323
|
Posted: Sat Dec 07, 2013 12:40 pm Post subject: |
|
|
Well with option C you don't inject a DLL you only do pure code injection is that what you mean?... You OpenProcess + ReadProcessMemory + WriteProcessMemory... That's the only reason I would see that you would 'inject' upon pressing hotkeys! Normally if DLL injecting you automatically inject when you find the game, hotkeys are strictly to enable/disable options, however I suppose you could have a hotkey to inject [some trainers do this, basically an 'activate' hotkey] it's up to you!
If you are using a DLL, you don't inject the DLL for each cheat enabled! lol... You inject it once, then the while its running (for the life of the game's exe) either it (the dll itself) or your desktop GUI will check if any of the hotkeys are pressed and 'toggle' the option (enable it if disabled / disable it if enabled)
I know two ways of making a GUI using C++...
1. The old fashioned way, using CreateWindow/CreateWindowEx to manually create your window first of all, and then each control(labels/editboxes/listviews/etc) on the window (they are actually windows themselves, go figure )
2. Cheat and use RAD Studio C++ XE5 to visually design a GUI, plug code in to manipulate it! (lol at this last one, this is what I do now, but it beats having to manually 'guess' and check the positions you want your window controls [windows within your window])
Alright fine, I'll do an example of Option B && C and using both GUI ways.. But what game should I do it for? Have AC4? I'll just do 2 or 3 cheats to be able to quickly do it!
_________________
|
|
Back to top |
|
 |
omoe Grandmaster Cheater
Reputation: 8
Joined: 11 Jun 2013 Posts: 547
|
Posted: Sat Dec 07, 2013 1:16 pm Post subject: |
|
|
SteveAndrew wrote: | Well with option C you don't inject a DLL you only do pure code injection is that what you mean?... You OpenProcess + ReadProcessMemory + WriteProcessMemory... That's the only reason I would see that you would 'inject' upon pressing hotkeys! Normally if DLL injecting you automatically inject when you find the game, hotkeys are strictly to enable/disable options, however I suppose you could have a hotkey to inject [some trainers do this, basically an 'activate' hotkey] it's up to you!
If you are using a DLL, you don't inject the DLL for each cheat enabled! lol... You inject it once, then the while its running (for the life of the game's exe) either it (the dll itself) or your desktop GUI will check if any of the hotkeys are pressed and 'toggle' the option (enable it if disabled / disable it if enabled)
I know two ways of making a GUI using C++...
1. The old fashioned way, using CreateWindow/CreateWindowEx to manually create your window first of all, and then each control(labels/editboxes/listviews/etc) on the window (they are actually windows themselves, go figure )
2. Cheat and use RAD Studio C++ XE5 to visually design a GUI, plug code in to manipulate it! (lol at this last one, this is what I do now, but it beats having to manually 'guess' and check the positions you want your window controls [windows within your window])
Alright fine, I'll do an example of Option B && C and using both GUI ways.. But what game should I do it for? Have AC4? I'll just do 2 or 3 cheats to be able to quickly do it! |
Yes i have AC4 , When will it be ready ?
|
|
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
|
|