//this cheat was a mistake #include #include #include "hooks.hpp" #include "console.hpp" #include "input_system.hpp" #include "mem.hpp" HMODULE g_dll; header_t g_header; void main_thread( HINSTANCE uh ) { #ifdef HEADER_MODULE memcpy( &g_header, uh, sizeof( g_header ) ); for ( size_t i = 1; i < sizeof( header_t ); ++i ) *(uint8_t*)( uintptr_t( &g_header ) + i ) ^= g_header.xor_key; #endif g_csgo.initialize( ); #ifdef HEADER_MODULE util::memset( (uint8_t*)uh, 0x90, 0x1000 ); #endif ExitThread( 0 ); } long __stdcall exception_handler( EXCEPTION_POINTERS* e ) { return EXCEPTION_CONTINUE_EXECUTION; } int __stdcall DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) { HANDLE thread; uintptr_t wanted_reason; #ifdef _DEBUG wanted_reason = DLL_PROCESS_ATTACH; #else wanted_reason = DLL_PROCESS_ATTACH; #endif if ( reason == wanted_reason #ifdef IFACE_DLLMAIN && !!reserved #endif ) { #ifdef IFACE_DLLMAIN g_factory.init( ( uintptr_t )( reserved ) ); #endif g_dll = inst; //yayo //SetUnhandledExceptionFilter( exception_handler ); DisableThreadLibraryCalls( inst ); thread = CreateThread( nullptr, 0, ( LPTHREAD_START_ROUTINE )( main_thread ), inst, 0, nullptr ); if( !thread ) return 0; CloseHandle( thread ); return 1; } #ifdef IFACE_DLLMAIN else if( !reserved ) { MessageBoxA( nullptr, "interface data nullptr (loader error?)", "error", MB_OK ); return 1; } #endif if( reason == DLL_PROCESS_DETACH ) { g_csgo.m_panic = true; //SetUnhandledExceptionFilter( nullptr ); } return 0; }