From 0c194bc8046cb3ecb4e4d0577f36a1d3bde58d11 Mon Sep 17 00:00:00 2001 From: boris Date: Thu, 27 Dec 2018 22:42:05 +1300 Subject: bap --- .../RemoteCode/RemoteInjectionServer.hpp | 54 +++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) (limited to 'csgo-loader/csgo-server/RemoteCode/RemoteInjectionServer.hpp') diff --git a/csgo-loader/csgo-server/RemoteCode/RemoteInjectionServer.hpp b/csgo-loader/csgo-server/RemoteCode/RemoteInjectionServer.hpp index f8f7274..3a975f7 100644 --- a/csgo-loader/csgo-server/RemoteCode/RemoteInjectionServer.hpp +++ b/csgo-loader/csgo-server/RemoteCode/RemoteInjectionServer.hpp @@ -1,11 +1,63 @@ #pragma once #include +#include +#include + +using ByteArray = std::vector; namespace RemoteCode { - class RemoteInjectionServer + // What the server sends to the client upon transaction start. + struct RemoteServerHeader { + // Does the cheat support the DirectX thread execution exploit? + bool m_ThreadExploitSupported; + + // This will be used for allocating the remote memory. + uintptr_t m_SizeOfImage; + + // OPTIONAL: The cheat might be using the DllMain function + // to do injection. Make sure to call that. + uintptr_t m_EntryPoint; + + // OPTIONAL: The cheat might be using TLS callbacks to + // do injection. Make sure to call that. + uintptr_t m_TlsCallbackDirectory; + }; + + // Requests supported by the server. + // These are stored in a vector and later looked up. + struct RemoteServerRequest + { + // Hash to look up requests by. + uint64_t m_LookupHash; + + // Name printed on the console when a user injects. + char m_DebugName[128]; + + // File name that's used to load the DLL server-side. + char m_FileName[260]; + // Does the cheat support the DirectX exploit for creating threads? + bool m_ThreadExploitSupported; }; + + // The initial header we receive from the client. + struct RemoteClientRequest + { + uint64_t m_LookupHash; + }; + + // The response we receive from the client upon transaction start. + struct RemoteClientHeader + { + // Address of remote allocation. + uintptr_t m_RemoteAddress; + + // Up to six remote modules. + // NOTE: Stop iterating once a module is NULL. + uintptr_t m_RemoteModules[6]; + }; + } \ No newline at end of file -- cgit v1.2.3