GameGuard Hooking Source Code C++

Posts 1–15 of 44 · Page 1 of 3
GameGuard Hooking Source Code C++
Hey guy's i found this Source code in google this is useful code someday to you its hard to search that's why i post it here easy to find no need to search in google...


DllMain.cpp
Code:
#include <windows.h>
#include <stdio.h>
#include <winsock.h>


__declspec(naked) HookFunction()       
{
  char Text = "Mpgh.net.. :] \n";   
  int sizeMsg = 40;
                                    // Some Gcc inline here :\
   __asm("movl %eax,0xC(%ebp)");    // Put msg param into stack
   __asm("pop %eax");               // Take msglen from stack
   __asm("movl %eax,0x10(%ebp)");   // Put msglen into stack
   __asm("pop %eax");               // Sub dword from stack
   __asm("popf");                   // Restore Flags
   __asm("mov %edi,%edi");          
   __asm("push %ebp");              ////// } Harcoded preable from Ws2_32.dll -> Too lazy today :} Do a VirtualProtect and memcpy of your own.
   __asm("mov %ebp,%esp");          
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");                    // If you desire to add some functionalities :]
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");               
   __asm("nop");                    //1 byte JMP + 4 bytes for address.
   __asm("nop"); 
   __asm("nop"); 
   __asm("nop"); 
}


BOOL APIENTRY DllMain (HINSTANCE hInst,DWORD reason,LPVOID reserved)     
{
char  JmpOpcode[1] =     "\xE9";  
char  SavesOpcodes[5] =  "\x90\x90\x90\x90\x90"; 
char  OpcodesMyFunc[3] = "\x9C\x8B\xEC";  
DWORD AddressToWriteTrampolineToSend;
DWORD CalculateJumpFromHookFunctionToWsaSend,CalculateAddressTrampoline;       
DWORD lpflOldProtect  = 0;
DWORD OldProtect  = 0;
HMODULE HandleModule;
DWORD AddressAPI;
DWORD AddresseFakeApi;
DWORD calculateJMP,JMP_TO;


   
    switch (reason)
    {
      case DLL_PROCESS_ATTACH:
      HandleModule = GetModuleHandle(TEXT("ws2_32.dll"));                                      // Get the module Handle of ws2_32.dll
      AddressAPI = GetProcAddress(HandleModule,"send");                                        // Get Address of send API
      AddresseFakeApi = (LPDWORD)&HookFunction;                                                // Get address of AddresseFakeApi


      memcpy(SavesOpcodes,AddressAPI,0x5);                                                     // Save Opcodes from preable. You can use them later with memcpy or harcode them into your HookFunction.


      calculateJMP = AddresseFakeApi - AddressAPI;                                             // Calculate our Jump
      JMP_TO = calculateJMP - 5;                                                          


      VirtualProtect(AddressAPI,0x8,PAGE_READWRITE,&lpflOldProtect);                           // Disable memory protection.
      memcpy(AddressAPI,JmpOpcode,0x1);                                                        //  Write Jump Opcode
      memcpy(AddressAPI+1,&JMP_TO,0x4);                                                        //  Write jump address
      VirtualProtect(AddressAPI,0x8,PAGE_EXECUTE_READ,&lpflOldProtect); //Nuevo
     
      VirtualProtect(AddresseFakeApi,0x3,PAGE_READWRITE,&OldProtect);                          // Disable memory protection.
      memcpy(AddresseFakeApi,OpcodesMyFunc,0x3);                                               // "\x9C\x8B\xEC" to -> HookFunction
      VirtualProtect(AddresseFakeApi,0x3,PAGE_EXECUTE_READ,&OldProtect);                       // Enable memory protection.


      //__asm("int3");                                                                         // 0xCC BreakPoint. For debugging purposes.
      AddressToWriteTrampolineToSend = AddresseFakeApi + 0x32; //1e                            // Where are we going to write JMP XXXXXXXX ?




      CalculateAddressTrampoline = AddressAPI + 0x5;                                           // We must calculate our jump to the first intruction after the preable @ address -> 7651C4CD SUB ESP,10
      CalculateJumpFromHookFunctionToWsaSend = CalculateAddressTrampoline - AddressToWriteTrampolineToSend - 0x5;
      VirtualProtect(AddressToWriteTrampolineToSend,0x8,PAGE_READWRITE,&OldProtect);           // Disable memory protection @ HookFunction


      memcpy(AddressToWriteTrampolineToSend,JmpOpcode,0x1);                                    //Copy uncondicional JUMP opcode
      memcpy(AddressToWriteTrampolineToSend+1,&CalculateJumpFromHookFunctionToWsaSend,0x4);    //Copy Jump Opcode
      VirtualProtect(AddressToWriteTrampolineToSend,0x8,PAGE_EXECUTE_READ,&OldProtect);        //Enable memory protection @ HookFunction
      break;
    }
    return TRUE;
}



DllMain.h


Code:
#ifndef _DLL_H_
#define _DLL_H_


#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */




#endif /* _DLL_H_ */











No credit be found



good, this useful.
Quote Originally Posted by ismahaziq View Post
How to use this code?
Use c++:-):-):-):-):-)
vamos falar em portugues? gostei isto é muito bom para quem quer burlar o game guard muito obrigado pelo compartilhamento!
Quote Originally Posted by malfoe View Post
vamos falar em portugues? gostei isto é muito bom para quem quer burlar o game guard muito obrigado pelo compartilhamento!
English.....
1>------ Build started: Project: 9999, Configuration: Debug Win32 ------
1> 123123123123.cpp
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(7): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(8): error C2489: 'Text' : initialized auto or register variable not allowed at function scope in 'naked' function
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(8): error C2440: 'initializing' : cannot convert from 'const char [16]' to 'char'
1> There is no context in which this conversion is possible
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(9): error C2489: 'sizeMsg' : initialized auto or register variable not allowed at function scope in 'naked' function
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(11): warning C4010: single-line comment contains line-continuation character
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(12): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(13): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(14): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(15): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(16): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(17): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(18): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(19): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(20): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(21): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(22): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(23): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(24): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(25): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(26): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(27): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(28): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(29): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(30): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(31): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(32): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(33): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(34): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(35): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(36): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(37): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(38): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(39): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(40): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(41): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(42): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(43): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(44): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(45): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(46): error C2400: inline assembler syntax error in 'opcode'; found '('
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(47): warning C4508: 'HookFunction' : function should return a value; 'void' return type assumed
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(52): error C2117: 'JmpOpcode' : array bounds overflow
1> c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(52) : see declaration of 'JmpOpcode'
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(52): error C2117: 'JmpOpcode' : array bounds overflow
1> c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(52) : see declaration of 'JmpOpcode'
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(53): error C2117: 'SavesOpcodes' : array bounds overflow
1> c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(53) : see declaration of 'SavesOpcodes'
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(53): error C2117: 'SavesOpcodes' : array bounds overflow
1> c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(53) : see declaration of 'SavesOpcodes'
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(54): error C2117: 'OpcodesMyFunc' : array bounds overflow
1> c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(54) : see declaration of 'OpcodesMyFunc'
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(54): error C2117: 'OpcodesMyFunc' : array bounds overflow
1> c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(54) : see declaration of 'OpcodesMyFunc'
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(70): error C2440: '=' : cannot convert from 'FARPROC' to 'DWORD'
1> There is no context in which this conversion is possible
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(71): error C2440: '=' : cannot convert from 'LPDWORD' to 'DWORD'
1> There is no context in which this conversion is possible
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(74): error C2664: 'memcpy' : cannot convert parameter 2 from 'DWORD' to 'const void *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(81): error C2664: 'VirtualProtect' : cannot convert parameter 1 from 'DWORD' to 'LPVOID'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(82): error C2664: 'memcpy' : cannot convert parameter 1 from 'DWORD' to 'void *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(83): error C2664: 'memcpy' : cannot convert parameter 1 from 'DWORD' to 'void *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(84): error C2664: 'VirtualProtect' : cannot convert parameter 1 from 'DWORD' to 'LPVOID'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(86): error C2664: 'VirtualProtect' : cannot convert parameter 1 from 'DWORD' to 'LPVOID'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(87): error C2664: 'memcpy' : cannot convert parameter 1 from 'DWORD' to 'void *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(88): error C2664: 'VirtualProtect' : cannot convert parameter 1 from 'DWORD' to 'LPVOID'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(99): error C2664: 'VirtualProtect' : cannot convert parameter 1 from 'DWORD' to 'LPVOID'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(102): error C2664: 'memcpy' : cannot convert parameter 1 from 'DWORD' to 'void *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(103): error C2664: 'memcpy' : cannot convert parameter 1 from 'DWORD' to 'void *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\rynnsteng\documents\visual studio 2010\projects\9999\9999\123123123123.cpp(104): error C2664: 'VirtualProtect' : cannot convert parameter 1 from 'DWORD' to 'LPVOID'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Source code build failed. Something went wrong for those code!
Quote Originally Posted by see111 View Post
Source code build failed. Something went wrong for those code!
i am busy creating hack in mw4
Let's see how to fix those code.
Quote Originally Posted by see111 View Post
Let's see how to fix those code.
here your answer



do not >>>>>>Use Unicode Character Set>>>>>>>all hack Use Multi-Byte Character Set and click F7 to build
I did it correct as you had mention. But then it's still failed for me xD
May I ask why multiple __asm("nop")'s?
Couldn't you just do:
__asm
{
nop
nop
nop
nop
nop
nop
nop
nop
...
}
I don't even know how to use C++ and watch video already still got many errors
Quote Originally Posted by Chencheong View Post
I don't even know how to use C++ and watch video already still got many errors
Learn it.
It's not very good idea to C&P code and not understand what it actually does.
Posts 1–15 of 44 · Page 1 of 3
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us