summaryrefslogtreecommitdiff
path: root/csgo-loader/csgo-client/Client.cpp
diff options
context:
space:
mode:
authorboris <wzn@moneybot.cc>2019-01-02 21:11:03 +1300
committerboris <wzn@moneybot.cc>2019-01-02 21:11:03 +1300
commitc0f1354a301ce2a2fc867a89fafdde4571c07c02 (patch)
treeea628b53a41f7d532efe100b94a41e4ca0429767 /csgo-loader/csgo-client/Client.cpp
parentd1ec3d3bb3a87a08e1c9348ca6e482549ebde664 (diff)
6IX9INE "Billy" (WSHH Exclusive - Official Music Video)
Diffstat (limited to 'csgo-loader/csgo-client/Client.cpp')
-rw-r--r--csgo-loader/csgo-client/Client.cpp35
1 files changed, 22 insertions, 13 deletions
diff --git a/csgo-loader/csgo-client/Client.cpp b/csgo-loader/csgo-client/Client.cpp
index 52a288d..7285b6b 100644
--- a/csgo-loader/csgo-client/Client.cpp
+++ b/csgo-loader/csgo-client/Client.cpp
@@ -2,12 +2,6 @@
/*
TODO:
- - Finish off security on client:
- - Add dump protection (closes csgo.exe if a handle is detected, probably explorer shellcode)
- - Add HWID generation [half-assed atm]
-
- - Switch Themida with VMP (Superior VM imho and I can fuck people over with my cool script (: )
-
- Finish off shellcode execution wrapper:
- The shellcode can be executed via two ways
- Either the code is mapped and called via CreateRemoteThread (allows custom param)
@@ -15,16 +9,14 @@
- This will probably be the easiest thing to do.
- Finish off injection wrapper:
- - Allocate a 4KB page for trampoline imports (4096/6) { E9 ? ? ? ? C3 }
- - Actually, allocate every memory page as a bunch of consecutive 4kb sections
- - Trampoline for imports
- - Everything is already laid out, tbh.
+ - Allocate every memory page as a bunch of consecutive 4kb sections (in order to fuck with people trying to dump)
- Have the loader inject a .DLL :^)
TODO (Nave):
- Make the UI look nice.
- Adapt the server to work with your backend.
+ - Add dump protection (closes csgo.exe if a handle is detected, probably explorer shellcode)
*/
@@ -32,11 +24,11 @@
int __stdcall WinMain(HINSTANCE inst, HINSTANCE prev, char* str, int cmdshow)
{
- (Utils::OpenConsole());
+ WRAP_IF_DEBUG(Utils::OpenConsole());
///////////////////////////////////////////////////////////////
- VMProtectBeginUltra("EntryPoint");
+ VMProtectBeginMutation("EntryPoint");
///////////////////////////////////////////////////////////////
@@ -66,16 +58,33 @@ int __stdcall WinMain(HINSTANCE inst, HINSTANCE prev, char* str, int cmdshow)
UserInterface->m_Data.m_ExecutionState = UserExperience::EXECUTION_WAITING;
// Attempt to connect to the remote server.
+ WRAP_IF_DEBUG(
+ printf("[DEBUG] Server IP: %08x\n", inet_addr("35.165.60.229"));
+ );
+
Networking::TCPClientPtr Client = std::make_unique<Networking::TCPClient>();
if(!Client->Start(LOCAL_IP, SERVER_PORT))
ERROR_ASSERT(STR("[000F:0002A000] Server closed the connection unexpectedly."));
-
+
// Allow the user to input their log-in data.
UserInterface->m_Data.m_ExecutionState = UserExperience::EXECUTION_LOG_IN;
while(UserInterface->m_Data.m_ExecutionState != UserExperience::EXECUTION_WAITING) { Sleep(1); }
+ Login::RemoteLoginTransaction LoginTransaction;
+ LoginTransaction.Start(UserInterface->m_Data.m_Username, UserInterface->m_Data.m_Password);
+
+ ByteArray Transaction = LoginTransaction.GetHeader();
+ Client->SendBytes(Transaction);
+
+ ByteArray LoginResponse = Client->ReceiveBytes();
+ if(!LoginTransaction.TranslateResponse(LoginResponse))
+ ExitProcess(0);
+
+ // Allow the user to choose a cheat to inject.
+ UserInterface->m_Data.m_ExecutionState = UserExperience::EXECUTION_CHOOSE;
+
// TODO: Add game selection.
while(1) { if(GetAsyncKeyState(VK_END) & 0x8000) break; Sleep(1); }