summaryrefslogtreecommitdiff
path: root/loader/server
diff options
context:
space:
mode:
authorboris <wzn@moneybot.cc>2018-12-10 15:34:33 +1300
committerboris <wzn@moneybot.cc>2018-12-10 15:34:33 +1300
commita25b6f6b11a3ae44d0c3b19ba8081a3d9eb1ac5f (patch)
tree1aaddf834dd6c95c5fd685ec4be5269086df924a /loader/server
parentdd9bbd12ef353f270d95ba733e1ef465d15d2b44 (diff)
removed loader 'tism
Diffstat (limited to 'loader/server')
-rw-r--r--loader/server/client.cpp182
-rw-r--r--loader/server/server_windows.cpp4
2 files changed, 53 insertions, 133 deletions
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 );
}
}