shahir1 (12-24-2013)
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
shahir1 (12-24-2013)
vamos falar em portugues? gostei isto é muito bom para quem quer burlar o game guard muito obrigado pelo compartilhamento!
Source code build failed. Something went wrong for those code!
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 ==========
Let's see how to fix those code.
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