#include #include #include #include #include #include "strings.hpp" #pragma comment( lib, "wininet.lib" ) //very innovative PROTECTED !!! loader // do NOT LEAK using namespace std::chrono_literals; using ulong_t = unsigned long; namespace http { class inethandle_t { public: operator HINTERNET( ) { return m_handle; } inethandle_t( HINTERNET handle ) : m_handle( handle ) { }; inethandle_t( ) : m_handle( nullptr ) { }; ~inethandle_t( ) { InternetCloseHandle( m_handle ); } private: HINTERNET m_handle; }; auto send_request( char* uname, ulong_t hwid, int appid ) { std::vector< uint8_t > response{ }; inethandle_t intern = InternetOpenA( "none", INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0 ); inethandle_t addr = InternetConnectA( intern, xors( "moneybot.cc" ), INTERNET_DEFAULT_HTTPS_PORT, xors( "HakNtBNxed" ), xors( "PYfBKRduQUdl3oR" ), INTERNET_SERVICE_HTTP, 0, 0 ); if( !addr ) { MessageBoxA( 0, xors( "error" ), xors( "server error" ), MB_OK ); exit( 0 ); } inethandle_t req = HttpOpenRequestA( addr, xors( "POST" ), xors( "iakSZFzfST/money.php" ), 0, 0, 0, INTERNET_FLAG_SECURE | INTERNET_FLAG_KEEP_CONNECTION, 0 ); auto headers = xors( "Content-Type: application/json\r\n" ); const char* POST_FORMAT = xors( R"( { "user": "%s", "hwid": "%08x", "app_id": "%d" } )" ); char send_data[ 300 ]; sprintf_s( send_data, 300, POST_FORMAT, uname, hwid, appid ); auto sent = HttpSendRequestA( req, headers, strlen( headers ), ( void* )send_data, strlen( send_data ) ); if( sent ) { ulong_t blocksize = 4096; ulong_t size{ }; uint8_t* block = ( uint8_t* )malloc( blocksize ); while( InternetReadFile( req, block, blocksize, &size ) && size ) { for( size_t i{ }; i < std::min< ulong_t >( blocksize, size ); ++i ) { response.push_back( block[ i ] ); } } free( block ); } return response; } }