Guest User

Untitled

a guest
Jul 15th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.60 KB | None | 0 0
  1.     void SetupHooks(void *hookTarget)
  2.     {
  3.         VTable = reinterpret_cast< void*** >( hookTarget );
  4.         OrigVTable = *VTable;
  5.  
  6.         MEMORY_BASIC_INFORMATION mbi;
  7.         TableSize = -1;
  8.         do
  9.         {
  10.             TableSize++;
  11.             VirtualQuery( OrigVTable[TableSize], &mbi, sizeof( MEMORY_BASIC_INFORMATION ) );
  12.         }
  13.         while( mbi.Protect == PAGE_EXECUTE_READ || mbi.Protect == PAGE_EXECUTE_READWRITE );
  14.  
  15.         OurVTable = reinterpret_cast< void** >( malloc( ( TableSize+3 ) * sizeof( void* ) ) );
  16.         OurVTable[2] = OrigVTable[-1]; 
  17.         for ( int i = 0; i < TableSize; ++i ) OurVTable[i+3] = OrigVTable[i];
  18.  
  19.         *VTable = OurVTable + 3;
  20.     }
Add Comment
Please, Sign In to add comment