From 7ccb819f867493f8ec202ea3b39c94c198c64584 Mon Sep 17 00:00:00 2001 From: JustSomePwner Date: Thu, 30 Aug 2018 14:01:54 +0200 Subject: first --- loader/http.h | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 loader/http.h (limited to 'loader/http.h') diff --git a/loader/http.h b/loader/http.h new file mode 100644 index 0000000..a965dfe --- /dev/null +++ b/loader/http.h @@ -0,0 +1,70 @@ +#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; + } +} \ No newline at end of file -- cgit v1.2.3