summaryrefslogtreecommitdiff
path: root/loader/Source.cpp
diff options
context:
space:
mode:
authorboris <wzn@moneybot.cc>2018-11-28 16:01:44 +1300
committerboris <wzn@moneybot.cc>2018-11-28 16:01:44 +1300
commit1fc179609e1392285e7f3fd01289895c6e5de66c (patch)
tree20200107fb027a63078c6cb63bc4b3f894c3228c /loader/Source.cpp
parent3d412a4b30a9f7c7f51ea6562e694315948bd3da (diff)
oopsie >w<
it appears i've made a fucky wucky ;w;www
Diffstat (limited to 'loader/Source.cpp')
-rw-r--r--loader/Source.cpp190
1 files changed, 0 insertions, 190 deletions
diff --git a/loader/Source.cpp b/loader/Source.cpp
deleted file mode 100644
index 8d72c2b..0000000
--- a/loader/Source.cpp
+++ /dev/null
@@ -1,190 +0,0 @@
-#include <thread>
-#include <fstream>
-#include "d3d_sprite.hpp"
-#include "window.hpp"
-#include "ui.h"
-
-#include "http.h"
-
-#include "manualmap.hpp"
-#include "iface.hpp"
-
-bool g_in_inject = false;
-
-void on_frame( ) {
- if( g_d3d.run_frame( g_window.m_d3d_device ) ) {
- g_d3d.begin( );
- for( auto& it : d3d::sprites ) {
- it->begin( g_window.m_d3d_device );
- }
-
- static auto last_time = GetTickCount( ) * 0.001f;
- auto cur_time = GetTickCount( ) * 0.001f;
-
- auto deltatime = cur_time - last_time;
-
- last_time = cur_time;
-
- constexpr float anim_step = 1.0f / 15.f;
- static float anim_time = 0.f;
- static bool flip = false;
- if( anim_time == 1.0f ) {
- flip = true;
- }
- if( anim_time == 0.f ) {
- flip = false;
- }
-
- if( flip ) anim_time = std::clamp( anim_time - anim_step * deltatime, 0.f, 1.0f );
- else anim_time = std::clamp( anim_time + anim_step * deltatime, 0.f, 1.0f );
-
- ui::set_animtime( anim_time );
- ui::render( );
-
- RECT cur_rect{ };
- GetWindowRect( g_window.get_hwnd( ), &cur_rect );
-
- g_d3d.end( );
- for( auto& it : d3d::sprites ) {
- it->end( );
- }
- }
-}
-
-void decrypt_file( std::vector< uint8_t >& file, uint8_t key ) {
- for( size_t i{ }; i < file.size( ); ++i ) {
- file.data( )[ i ] ^= key;
- }
-}
-
-int find_process( std::string name ) {
- auto window = FindWindowA( 0, name.c_str( ) );
- if( !window ) return -1;
-
- ulong_t pid{ };
- GetWindowThreadProcessId( window, &pid );
-
- return pid;
-}
-
-void thread_fn( ) {
- if( g_in_inject ) return;
-
- g_in_inject = true;
- ulong_t hwid{ };
- GetVolumeInformationA( xors( "C:\\" ), 0, 0, &hwid, 0, 0, 0, 0 );
-
- g_progress = 0.1f;
-
- std::string game{ };
- switch( g_game ) {
- case 1:
- game = xors( "Counter-Strike: Global Offensive" );
- break;
- case 2:
- game = xors( "Team Fortress 2" );
- break;
- case 3:
- game = xors( "Counter-Strike: Global Offensive" );
- break;
- case 4:
- game = xors( "Garry's Mod" );
- break;
- default:
- MessageBoxA( 0, xors( "unknown error" ), xors( "error" ), MB_OK );
- exit( 0 );
- break;
- }
-
- auto pid = find_process( game );
- if( pid == -1 ) {
- MessageBoxA( 0, xors( "game must be running" ), xors( "error" ), MB_OK );
- g_progress = 0.f;
- g_in_inject = false;
- return;
- }
-
- auto h = OpenProcess( PROCESS_ALL_ACCESS, 0, pid );
- iface::manager mgr( h );
-
- mgr.dump_all_modules( pid );
- if( !mgr.count( ) ) {
- MessageBoxA( 0, xors( "unknown error" ), xors( "error" ), MB_OK );
- exit( 0 );
- }
-
- g_progress = 0.3f;
-
- //enter a new scope to run cleanup after we're done, epic life hack
- {
- auto result = http::send_request( g_login, hwid, g_game );
-
- if( result.empty( ) ) {
- MessageBoxA( 0, xors( "unknown error" ), xors( "error" ), MB_OK );
- exit( 0 );
- return;
- }
-
- if( result[ 0 ] == '1' ) {
- char str[ 256 ];
- strenc::w_sprintf_s( str, 256, xors( "hwid mismatch, request change: %08x" ), hwid );
- MessageBoxA( 0, str, xors( "error" ), MB_OK );
- exit( 0 );
- }
- if( result[ 0 ] == '2' ) {
- MessageBoxA( 0, xors( "user unknown" ), xors( "error" ), MB_OK );
- exit( 0 );
- }
- if( result[ 0 ] == '3' ) {
- MessageBoxA( 0, xors( "coming soon" ), xors( "error" ), MB_OK );
- g_progress = 0.f;
- g_in_inject = false;
- return;
- }
-
- g_progress = 0.5f;
-
- //to meme whoever decides to reverse this
- decrypt_file( result, [ ]( ) {
- constexpr auto key_sqr = 49 * 49;
- return 49;
- }( ) );
-
- inject::c_map map( result );
- g_progress = 0.7f;
-
- map.initialize( pid );
- std::this_thread::sleep_for( std::chrono::milliseconds( 300 ) );
- g_progress = 0.8f;
- map.inject( mgr.write_to_process( ) );
- g_progress = 1.0f;
- }
-
- MessageBoxA( 0, xors( "injection successful" ), xors( "success" ), MB_OK );
- exit( 0 );
- g_in_inject = false;
-}
-
-void execute_login( ) {
- std::thread t( thread_fn );
-
- t.detach( );
-}
-
-int __stdcall WinMain( HINSTANCE inst, HINSTANCE prev, char* str, int cmdshow ) {
- std::thread window_thread( [ & ]( ) {
- g_window.create( );
- std::this_thread::sleep_for( std::chrono::milliseconds( 100 ) );
- g_window.add_on_frame( &on_frame );
- for( ;; ) {
- g_window.on_frame( );
-
- std::this_thread::sleep_for( std::chrono::milliseconds( 1 ) );
- exit( -1 );
- }
- } );
-
- window_thread.detach( );
-
- while( 1 ) { if( GetAsyncKeyState( VK_END ) & 0x8000 ) break; Sleep( 1 ); }
-} \ No newline at end of file