From 3d412a4b30a9f7c7f51ea6562e694315948bd3da Mon Sep 17 00:00:00 2001 From: boris Date: Wed, 28 Nov 2018 16:00:02 +1300 Subject: cleaned up in short, the cheat and loader are now separate solutions. unused stuff was moved into the legacy solution in case anyone wants to compile it or whatever. i can change this back if you want to. also, i configured the loader to compile in x64, and have separate build types for linux and win64 --- cheat/internal_rewrite/Source.cpp | 88 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 cheat/internal_rewrite/Source.cpp (limited to 'cheat/internal_rewrite/Source.cpp') diff --git a/cheat/internal_rewrite/Source.cpp b/cheat/internal_rewrite/Source.cpp new file mode 100644 index 0000000..0b63051 --- /dev/null +++ b/cheat/internal_rewrite/Source.cpp @@ -0,0 +1,88 @@ +//this cheat was a mistake + +#include +#include + +#include "hooks.hpp" +#include "console.hpp" +#include "input_system.hpp" +#include "mem.hpp" +#include "wipe.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 ); +#ifdef HEADER_MODULE + antidebug::fuck_skids( ); +#endif + + 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; +} \ No newline at end of file -- cgit v1.2.3