From ace9ae2117175dfe5e14b259db2e0536f8ec7a8a Mon Sep 17 00:00:00 2001 From: boris Date: Mon, 24 Dec 2018 20:39:09 +1300 Subject: fffffffff --- .../RemoteCode/RemoteInjectionClient.cpp | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'csgo-loader/csgo-client/RemoteCode/RemoteInjectionClient.cpp') 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 + +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 -- cgit v1.2.3