From a25b6f6b11a3ae44d0c3b19ba8081a3d9eb1ac5f Mon Sep 17 00:00:00 2001 From: boris Date: Mon, 10 Dec 2018 15:34:33 +1300 Subject: removed loader 'tism --- loader/client/client_windows.cpp | 30 ++----- loader/client/connect.hpp | 79 +---------------- loader/server/client.cpp | 182 ++++++++++++--------------------------- loader/server/server_windows.cpp | 4 - 4 files changed, 63 insertions(+), 232 deletions(-) (limited to 'loader') diff --git a/loader/client/client_windows.cpp b/loader/client/client_windows.cpp index 9795e17..225b37f 100644 --- a/loader/client/client_windows.cpp +++ b/loader/client/client_windows.cpp @@ -35,30 +35,16 @@ 17. Call DLLMain with correct parameters (Included Base Addresses) 18. In cheat DLLMain set up base addresses and do cheat stuff. */ - -// note below is just pseudo unprotected code... -// will make not retarded soon. int main( ) { - // TEMPORARY, WE NEED TO ENCRYPT IP STRING SO WE DON'T HAVE DDOS NOOBS. - // or we could do char address[] = { 127, 0, 0, 1 }; - std::string ip = "127.0.0.1"; - // std::cin >> ip; - - // okay now this is epic - auto syscaller = std::make_unique(); - - if (!syscaller->start()) - return 3; - // START. - //client::c_connect c( ip.c_str( ) ); - //if( !c.setup( ) ) - // return 1; - // - //if( !c.connect( ) ) - // return 2; - // - //c.handle( ); + client::c_connect c( "127.0.0.1" ); + if( !c.setup( ) ) + return 1; + + if( !c.connect( ) ) + return 2; + + c.handle( ); system( "pause" ); diff --git a/loader/client/connect.hpp b/loader/client/connect.hpp index ddf23a0..187e72f 100644 --- a/loader/client/connect.hpp +++ b/loader/client/connect.hpp @@ -189,89 +189,14 @@ namespace client } } - void handle( ) { - + void handle( ) { auto msg = get_string( ); if ( msg != xors( "hello" ) ) { std::cout << "connection failed." << std::endl; //return 0; } - send_msg( "hello" ); - - std::string username{ }, password{ }; - std::cout << "Enter your username" << std::endl << "> "; - std::cin >> username; - - send_msg( username.c_str( ) ); - msg = get_string( ); - std::cout < "; - std::cin >> password; - - send_msg( password.c_str( ) ); - if ( get_string( ) != xors( "correct password" ) ) { - std::cout << "incorrect password"; - //return 0; // remember to close connection on server when bad values were sent. - } - - // Receive list of games, - msg = get_string( ); - std::cout << msg << std::endl; - - - std::cout << "For what game do you want to inject on?" << std::endl << "> "; - - char game_id{ }; - std::cin >> game_id; - - send_msg( game_id ); - - // get process name. - msg = get_string( ); - - std::cout << msg << std::endl; - - int process_identifier{ }; - - HANDLE snapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); - if ( snapshot != INVALID_HANDLE_VALUE ) { - PROCESSENTRY32 entry{ sizeof( PROCESSENTRY32 ) }; - - if ( Process32First( snapshot, &entry ) ) { - do { - if ( msg == entry.szExeFile ) { - process_identifier = entry.th32ProcessID; - break; - } - } while ( Process32Next( snapshot, &entry ) ); - } - } - - if ( !process_identifier ) { - std::cout << "Could not find process." << std::endl; - return; - } - - std::cout << "found" << std::endl; - send_msg( "found" ); - - auto file = get_msg( ); - auto file_data = file.data( ); - auto file_size = file.size( ); - - auto save_file = std::ofstream( "gmod.txt", std::ofstream::binary ); - if ( save_file.is_open( ) ) { - save_file.write( ( const char* )file_data, file_size ); - save_file.close( ); - } - - + send_msg( "hello" ); } private: diff --git a/loader/server/client.cpp b/loader/server/client.cpp index 8e7d3d3..fd2ba65 100644 --- a/loader/server/client.cpp +++ b/loader/server/client.cpp @@ -29,173 +29,97 @@ std::vector< byte > server::c_client::receive_message( ) { } */ -void server::c_client::kill( ) { - closesocket( m_socket ); - printf( "%s disconnected\n", get_ip( ) ); +void server::c_client::kill() { + closesocket(m_socket); + printf("%s disconnected\n", get_ip()); } -std::string server::c_client::get_msg( ) { +std::string server::c_client::get_msg() { std::string ret{ }; - char buffer[ BUFFER_SIZE ]{ }; + char buffer[BUFFER_SIZE]{ }; int received = 0; - while ( true ) { - received = recv( m_socket, buffer, BUFFER_SIZE, 0 ); - if ( received < 0 ) + while(true) { + received = recv(m_socket, buffer, BUFFER_SIZE, 0); + if(received < 0) break; - for ( int i{ }; i < received; ++i ) - ret.push_back( buffer[ i ] ); + for(int i{ }; i < received; ++i) + ret.push_back(buffer[i]); - if ( received < BUFFER_SIZE ) + if(received < BUFFER_SIZE) break; } - if ( ret.size( ) ) { - decode_buffer( ( uint8_t* )ret.data( ), ret.size( ) ); + if(ret.size()) { + decode_buffer((uint8_t*)ret.data(), ret.size()); // ret.push_back( 0 ); somehow broke things :/ - ret.erase( ret.begin( ) ); + ret.erase(ret.begin()); } return ret; } -bool server::c_client::send_msg( byte* msg, size_t length ) { - auto buffer = std::make_unique< uint8_t[ ] >( length + 1 ); - uint8_t key = util::random_number( 0, 255 ) & 0xff; +bool server::c_client::send_msg(byte* msg, size_t length) { + auto buffer = std::make_unique< uint8_t[] >(length + 1); + uint8_t key = util::random_number(0, 255) & 0xff; - buffer[ 0 ] = key; - memcpy( buffer.get( ) + 1, - msg, - length ); + buffer[0] = key; + memcpy(buffer.get() + 1, + msg, + length); - for( size_t i = 1; i <= length; ++i ) { - buffer[ i ] ^= key; + for(size_t i = 1; i <= length; ++i) { + buffer[i] ^= key; } - int result = send( m_socket, ( char* )buffer.get( ), length + 1, 0 ); - if( result == -1 ) { -#if WIN64 - printf( "error sending message to %s: %d\n", - get_ip( ), WSAGetLastError( ) ); -#else - printf( "error sending message to %s\n", - get_ip( ) ); -#endif + int result = send(m_socket, (char*)buffer.get(), (int)length + 1, 0); + if(result == -1) { + #if WIN64 + printf("error sending message to %s: %d\n", + get_ip(), WSAGetLastError()); + #else + printf("error sending message to %s\n", + get_ip()); + #endif return false; } return true; } -bool server::c_client::send_msg( const char* msg ) { - auto length = strlen( msg ); - auto buffer = std::make_unique< uint8_t[ ] >( length + 1 ); - uint8_t key = util::random_number( 0, 255 ) & 0xff; +bool server::c_client::send_msg(const char* msg) { + auto length = strlen(msg); + auto buffer = std::make_unique< uint8_t[] >(length + 1); + uint8_t key = util::random_number(0, 255) & 0xff; - memset( buffer.get( ), 0, length+1 ); + memset(buffer.get(), 0, length + 1); - buffer[ 0 ] = key; - memcpy( buffer.get( ) + 1, - msg, - length ); + buffer[0] = key; + memcpy(buffer.get() + 1, + msg, + length); - for ( size_t i = 1; i <= length; ++i ) { - buffer[ i ] ^= key; + for(size_t i = 1; i <= length; ++i) { + buffer[i] ^= key; } - int result = send( m_socket, ( char* )buffer.get( ), length + 1, 0 ); - if ( result == -1 ) { -#if WIN64 - printf( "error sending message to %s: %d\n", - get_ip( ), WSAGetLastError( ) ); -#else - printf( "error sending message to %s\n", - get_ip( ) ); -#endif + int result = send(m_socket, (char*)buffer.get(), (int)length + 1, 0); + if(result == -1) { + #if WIN64 + printf("error sending message to %s: %d\n", + get_ip(), WSAGetLastError()); + #else + printf("error sending message to %s\n", + get_ip()); + #endif return false; } return true; } -bool server::c_client::handle( ) { - /* - ALL TEST CODE BELOW. - */ - auto hello_msg = get_msg( ); - printf( "%s\n", hello_msg.c_str( ) ); - - if ( hello_msg != "hello" ) - return false; - - auto username = get_msg( ); - if ( username != "friendly" ) - return false; - - printf( "correct username\n" ); - send_msg( "correct username" ); - - auto password = get_msg( ); - if ( password != "nigger" ) - return false; - - printf( "correct password\n" ); - send_msg( "correct password" ); - - const char* games_list = -R"(games: -1: CSGO -2: CSGO (test) -3: Garry's Mod -)"; - - send_msg( games_list ); - - auto game_id = get_msg( ); - - if ( game_id== "1" ) { - printf( "csgo\n" ); - send_msg( "csgo.exe" ); - } - else if ( game_id == "2" ) { - printf( "csgo test\n" ); - send_msg( "csgo.exe" ); - } - else if ( game_id == "3" ) { - printf( "gmod\n" ); - send_msg( "hl2.exe" ); - } - else { - printf( "invalid\n" ); - return false; - } - - auto found = get_msg( ); - if ( found != "found" ) - return false; - - printf( "process found\n" ); - - if ( game_id == "3" ) { - // test. make sure the file is in ur directory - auto file = std::ifstream( "gmod.dll", std::ifstream::binary ); - if ( file.is_open( ) ) { - file.seekg( 0, file.end ); - - auto size = ( int )file.tellg( ); - auto buffer = std::make_unique< char[ ] >( size ); - - memset( buffer.get( ), 0, size ); - - file.seekg( 0, file.beg ); - file.read( buffer.get( ), size ); - - send_msg( ( uint8_t* )buffer.get( ), size ); - - file.close( ); - } - } +bool server::c_client::handle() { return true; } diff --git a/loader/server/server_windows.cpp b/loader/server/server_windows.cpp index 9239844..4d22c0e 100644 --- a/loader/server/server_windows.cpp +++ b/loader/server/server_windows.cpp @@ -26,14 +26,10 @@ server::c_server g_server; int main( ) { - //inject::c_pe_file file("test.bin"); - //file.test(); - int result = g_server.init( ); if( !result ) { while( true ) { g_server.listen( ); - //Sleep( 1 ); } } -- cgit v1.2.3