diff options
Diffstat (limited to 'csgo-loader/csgo-client/RemoteCode/RemoteInjectionClient.cpp')
| -rw-r--r-- | csgo-loader/csgo-client/RemoteCode/RemoteInjectionClient.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/csgo-loader/csgo-client/RemoteCode/RemoteInjectionClient.cpp b/csgo-loader/csgo-client/RemoteCode/RemoteInjectionClient.cpp index d142264..b8ff03d 100644 --- a/csgo-loader/csgo-client/RemoteCode/RemoteInjectionClient.cpp +++ b/csgo-loader/csgo-client/RemoteCode/RemoteInjectionClient.cpp @@ -1 +1,48 @@ #include <RemoteCode/RemoteInjectionClient.hpp>
+
+namespace RemoteCode
+{
+ // Select a game to inject the cheat for
+ bool RemoteInjectionClient::Start(UserExperience::SelectedGame Game)
+ {
+ if(Game >= UserExperience::SelectedGame::GAME_MAX)
+ return false;
+
+ // TODO: Add any other games :-)
+ switch(Game)
+ {
+ case UserExperience::SelectedGame::GAME_CSGO:
+ case UserExperience::SelectedGame::GAME_CSGO_BETA:
+ strcpy_s(m_ProcessName, "csgo.exe");
+ break;
+ }
+
+ return true;
+ }
+
+ // Allocates a page in the game memory, which will be used to
+ // write and execute the DLL.
+ uintptr_t RemoteInjectionClient::AllocateImagePage(size_t SizeOfImage)
+ {
+ if(!m_Process)
+ return uintptr_t{};
+
+ // Allocate enough space to map the image
+ m_AllocationBase = m_Process.Allocate(SizeOfImage);
+
+ return (uintptr_t)m_AllocationBase;
+ }
+
+ // Initializes m_Process with the game process.
+ bool RemoteInjectionClient::OpenGameHandle()
+ {
+ return m_Process.Start(m_ProcessName);
+ }
+
+ // Writes the cheat binary to the allocated page.
+ void RemoteInjectionClient::WriteToMap(ByteArray &CheatBin)
+ {
+ // is this loss?
+ m_Process.Write(m_AllocationBase, CheatBin.data(), CheatBin.size());
+ }
+}
\ No newline at end of file |
