#pragma once #include <windows.h> class CVMTHook { private: PDWORD m_pdwClassTable; int m_iFunctionIndex; PDWORD m_pdwFuntionPointer; DWORD m_dwNewFunction; DWORD m_dwOriginalFunction; DWORD m_dwOldProtect; public: DWORD Hook( DWORD new_Function, PDWORD pClass, int Index ) { m_dwNewFunction = new_Function; m_pdwClassTable = ( PDWORD ) * ( PDWORD ) pClass; m_iFunctionIndex = Index; m_pdwFuntionPointer = ( m_pdwClassTable + ( 0x4 * m_iFunctionIndex ) ); m_dwOriginalFunction = m_pdwClassTable[ m_iFunctionIndex ]; VirtualProtect( ( LPVOID ) m_pdwFuntionPointer, 4, PAGE_EXECUTE_READWRITE, &m_dwOldProtect ); m_pdwClassTable[ m_iFunctionIndex ] = m_dwNewFunction; VirtualProtect( ( LPVOID ) m_pdwFuntionPointer, 4, m_dwOldProtect, NULL ); return m_dwOriginalFunction; } void UnHook( void ) { VirtualProtect( ( LPVOID ) m_pdwFuntionPointer, 4, PAGE_EXECUTE_READWRITE, &m_dwOldProtect ); m_pdwClassTable[ m_iFunctionIndex ] = m_dwOriginalFunction; VirtualProtect( ( LPVOID ) m_pdwFuntionPointer, 4, m_dwOldProtect, NULL ); } void ReHook( void ) { VirtualProtect( ( LPVOID ) m_pdwFuntionPointer, 4, PAGE_EXECUTE_READWRITE, &m_dwOldProtect ); m_pdwClassTable[ m_iFunctionIndex ] = m_dwNewFunction; VirtualProtect( ( LPVOID ) m_pdwFuntionPointer, 4, m_dwOldProtect, NULL ); } DWORD FunctionAddress( void ) { return m_dwOriginalFunction; } };
CVMTHook gIsDrawingLoadingImageHook; ... gIsDrawingLoadingImageHook.Hook( (DWORD)&new_IsDrawingLoadingImage, (PDWORD)g_pEngine, 28 ); ... bool __stdcall new_IsDrawingLoadingImage( void ) { // draw here gIsDrawingLoadingImageHook.UnHook(); bool bRet = g_pEngine->IsDrawingLoadingImage(); gIsDrawingLoadingImageHook.ReHook(); return bRet; }
CVMTHook gIsDrawingLoadingImageHook; typedef bool(__stdcall* IsDrawingLoadingImage_t)(); IsDrawingLoadingImage_t IsDrawingLoadingImage; bool __stdcall new_IsDrawingLoadingImage( void ) { if( !IsDrawingLoadingImage ) IsDrawingLoadingImage = (IsDrawingLoadingImage_t)gIsDrawingLoadingImageHook.FunctionAddress(); // draw here return IsDrawingLoadingImage(); }
Anyway have phun!!1
sign109
Comment