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 --- tf2/interfaces.cpp | 241 ----------------------------------------------------- 1 file changed, 241 deletions(-) delete mode 100644 tf2/interfaces.cpp (limited to 'tf2/interfaces.cpp') diff --git a/tf2/interfaces.cpp b/tf2/interfaces.cpp deleted file mode 100644 index 8ca7ff3..0000000 --- a/tf2/interfaces.cpp +++ /dev/null @@ -1,241 +0,0 @@ -#include "interfaces.h" -#include "console.hpp" -#include "hooks.h" -#include "renderer.hpp" -#include "pattern.hpp" -#include "base_cheat.h" -#include "settings.h" -#include "ctx.hpp" -#include "netvars.h" -#include - -tf2::client cl; -tf2::interfaces::c_interface_manager g_factory; - -bool tf2::create_interfaces( client *instance ) -{ - if ( !instance ) { - return false; - } - - - - auto d3d_device = pattern::first_code_match( GetModuleHandleA( xors( "shaderapidx9.dll" ) ), - xors( "A1 ?? ?? ?? ?? 50 8B 08 FF 51 0C" ) ) + 0x1; - - auto move_helper = pattern::first_code_match( GetModuleHandleA( xors( "client.dll" ) ), - xors( "8B 0D ?? ?? ?? ?? 8B 46 08 68" ) ) + 0x2; - - //sig to containing function: (+0x69) E9 ? ? ? ? CC 55 8B EC 5D - //auto beam_ptr = pattern::first_code_match( GetModuleHandleA( xors( "client.dll" ) ), xors( "" ) ); - - //g_con->print( "beam_found: 0x%08x\n", beam_ptr ); - - instance->create( &instance->m_d3d, **reinterpret_cast< uintptr_t** >( d3d_device ) ); - instance->create( &instance->m_movehelper, **reinterpret_cast< uintptr_t** >( move_helper ) ); - //instance->create( &instance->m_beams, *reinterpret_cast< uintptr_t* >( beam_ptr ) ); - - - /* - - - important - - issues: - - the background is white but so am i so really this isnt an issue - - THIS ENTIRE THING IS MESSY AND RIDDLED WITH SHIT COMMENTS AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - - chams - - fucking keyvalues - - glow count aint happy cbf looking into it - - menu goes invis because ????? gj menu - - too lazy to fix d3d - - emitsound hook is different - - aimbot is meh meh rn - - - lots of stuff not done that i want to get done, just wanna get it out there so i can keep working on it and not get harrased for the push - - - - - - */ - - //tf2::interfaces::interface_manager factory; - instance->create( &instance->m_chl, xors( "VClient" ) ); - instance->create( &instance->m_vgui, xors( "VEngineVGui" ) ); - instance->create( &instance->m_surface, xors( "VGUI_Surface" ) ); - instance->create( &instance->m_input, xors( "InputSystemVersion" ) ); - instance->create( &instance->m_panel, xors( "VGUI_Panel" ) ); - instance->create( &instance->m_engine, xors( "VEngineClient" ) ); - instance->create( &instance->m_entlist, xors( "VClientEntityList" ) ); - instance->create( &instance->m_prediction, xors( "VClientPrediction" ) ); - instance->create( &instance->m_cvar, xors( "VEngineCvar" ) ); - instance->create( &instance->m_movement, xors( "GameMovement" ) ); - instance->create( &instance->m_modelinfo, xors( "VModelInfoClient" ) ); - instance->create( &instance->m_overlay, "VDebugOverlay" ); - instance->create( &instance->m_trace, xors( "EngineTraceClient" ) ); - instance->create( &instance->m_model_render, xors( "VEngineModel" ) ); - instance->create( &instance->m_mat_system, xors( "VMaterialSystem" ) ); - instance->create( &instance->m_render_view, xors( "VEngineRenderView" ) ); - instance->create( &instance->m_engine_sound, xors( "IEngineSoundClient" ) ); - instance->create( &instance->m_event_mgr, xors( "GAMEEVENTSMANAGER002" ) ); - instance->create( &instance->m_string_table, xors( "VEngineClientStringTable" ) ); - instance->create( &instance->m_clientmode, **reinterpret_cast< uintptr_t** >( instance->m_chl->get_function( 10 ) + 5 ) ); - - instance->m_globals = *reinterpret_cast< CGlobalVarsBase** >( pattern::first_code_match( instance->m_engine.dll( ), "A1 ? ? ? ? 8B 11 68", 0x8 ) ); - - uintptr_t* input = *reinterpret_cast< uintptr_t** >( - instance->m_chl->get_old_function( 1 ) + 0x1 ); - instance->m_hl_input = reinterpret_cast< CInput* >( input ); - - auto kv_fn = ( void*( __cdecl* )( ) )( GetProcAddress( - GetModuleHandleA( xors( "vstdlib.dll" ) ), - xors( "KeyValuesSystem" ) ) ); - - instance->m_keyvalues = ( IKeyValuesSystem* )kv_fn( ); - instance->listeners.player_hurt.init( ); - - return true; -} - -con_fn clear_fn{ fnv( "clear" ), [ ]( const char*, const char* ) { g_con->m_logs.clear( ); }, "" }; -con_fn enable_logs_fn{ fnv( "log_enable" ), -[ ]( const char* a, const char* ) { - g_settings.menu.logs_enable ^= 1; - g_con->log( g_settings.menu.logs_enable ? xors( "logs enabled" ) : xors( "logs disabled" ) ); -}, -"" -}; - -con_fn fnv_fn{ fnv( "fnv" ), -[ ]( const char* a, const char* ) { - auto print = hash::fnv1a( a ); - g_con->log( "%08x", print ); -}, -"%S" -}; - -con_fn sum_fn{ fnv( "sum" ), -[ ]( const char* a, const char* syntax ) { - auto arg_1 = con_fn::get_arg< int >( a, 0, syntax ); - auto arg_2 = con_fn::get_arg< int >( a, 1, syntax ); - g_con->log( "%d + %d = %d", arg_1, arg_2, arg_1 + arg_2 ); -}, -"%D %D" -}; - -con_fn dump_cfg{ fnv( "dump_cfg" ), -[ ]( const char* , const char* ) { - for( auto& it : data::holder_.get_nodes( ) ) { - auto setting = static_cast< ISetting* >( it ); - g_con->log( "%08x: %s", setting->get_hash( ), setting->get_string( ).c_str( ) ); - } -}, -"" -}; - -con_fn retard_fn{ fnv( "retard" ), -[ ]( const char*, const char* ) { - g_con->log( "snuze" ); -}, -"" -}; - -con_fn unload_fn{ fnv( "unload" ), -[ ]( const char*, const char* ) { - cl.m_panic = true; - ExitProcess( 0 ); -}, -"" -}; - - -/*con_fn alias_fn{ fnv( "alias" ), -[ ]( const char* a, const char* b ) { -auto var_type = std::string( b ); -if( var_type.length( ) > 1 ) { -g_con->log( xors( "unknown var type: %s" ), var_type.c_str( ) ); -return; -} - -switch( b[ 0 ] ) { -case TYPE_STRING: { -std::shared_ptr< con_alias< const char* > >( fnv( ) ) -} -} -}, -"%S %S" -};*/ - -void tf2::client::initialize( ) { - //m_panic = true; - g_con->create( ); - auto now = std::chrono::high_resolution_clock::now( ); - g_con->print( xors( "hello\n" ) ); - //hi - //bye - - tf2::create_interfaces( &cl ); - g_fonts.initialize( ); - - g_netvars.init( ); - g_settings.load( ); - g_con->register_fn( &clear_fn ); - g_con->register_fn( &enable_logs_fn ); - g_con->register_fn( &fnv_fn ); - g_con->register_fn( &sum_fn ); - g_con->register_fn( &dump_cfg ); - g_con->register_fn( &retard_fn ); - g_con->register_fn( &unload_fn ); - - hooks::commit( &cl ); - - //g_cheat.chams.m_materials.initialize_materials( ); - - - auto offset = g_netvars.get_netvar( fnv( "DT_WeaponTFBaseGun" ), fnv( "m_fLastShotTime" ) ); - g_con->log( "lastshottime: %08x", offset ); - g_con->log( "prop: %08x", g_netvars.get_prop( fnv( "DT_WeaponTFBaseGun" ), fnv( "m_fLastShotTime" ) ) ); - - auto after = std::chrono::high_resolution_clock::now( ); - std::this_thread::sleep_for( std::chrono::milliseconds( 100 ) ); - - std::chrono::duration< float > delta = after - now; - g_con->log( xors( "cheat initialized\n" ) ); - g_con->log( xors( "time taken: %f\n" ), delta.count( ) ); - - - - m_panic = false; -} - -void tf2::client::uninitialize( ) { - m_panic = true; - g_con->destroy( ); - - //restore wndproc - if( hooks::window_procedure_o ) { - SetWindowLongA( m_hwnd, GWLP_WNDPROC, ( long )hooks::window_procedure_o ); - } - - //unreference materials - //g_cheat.chams.m_materials.destroy_materials( ); - - //restore all interfaces - restore( ); - - Sleep( 100 ); - - //free the library - FreeLibraryAndExitThread( g_dll, 0 ); -} \ No newline at end of file -- cgit v1.2.3