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 


Is using trainer form as injector a good idea?

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming
View previous topic :: View next topic  
Author Message
omoe
Grandmaster Cheater
Reputation: 8

Joined: 11 Jun 2013
Posts: 547

PostPosted: Sat Dec 07, 2013 8:53 am    Post subject: Is using trainer form as injector a good idea? Reply with quote

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
View user's profile Send private message  
SteveAndrew
Master Cheater
Reputation: 30

Joined: 02 Sep 2012
Posts: 323

PostPosted: Sat Dec 07, 2013 10:29 am    Post subject: Reply with quote

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? Very Happy 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 Very Happy 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 Wink
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 Smile

_________________
Back to top
View user's profile Send private message  
omoe
Grandmaster Cheater
Reputation: 8

Joined: 11 Jun 2013
Posts: 547

PostPosted: Sat Dec 07, 2013 11:12 am    Post subject: Reply with quote

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? Very Happy 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 Very Happy 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 Wink
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 Smile


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
View user's profile Send private message  
SteveAndrew
Master Cheater
Reputation: 30

Joined: 02 Sep 2012
Posts: 323

PostPosted: Sat Dec 07, 2013 12:40 pm    Post subject: Reply with quote

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 Wink)

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? Smile I'll just do 2 or 3 cheats to be able to quickly do it!

_________________
Back to top
View user's profile Send private message  
omoe
Grandmaster Cheater
Reputation: 8

Joined: 11 Jun 2013
Posts: 547

PostPosted: Sat Dec 07, 2013 1:16 pm    Post subject: Reply with quote

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 Wink)

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? Smile I'll just do 2 or 3 cheats to be able to quickly do it!

Yes i have AC4 , When will it be ready ? Embarassed
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 programming 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