Thread: DetourCreate

Results 1 to 8 of 8
  1. #1
    Anger5K's Avatar
    Join Date
    May 2020
    Gender
    male
    Posts
    151
    Reputation
    10
    Thanks
    70
    My Mood
    Lurking

    DetourCreate

    Help Me DC Ban After 30 Mint


    i think is detcted

    Code:
    void *DetourCreate(BYTE *src, CONST BYTE *dst, CONST INT len)
    {
    	BYTE *jmp = (BYTE *)malloc(len + 5);
    	DWORD dwback;
    	VirtualProtect(src, len, PAGE_READWRITE, &dwback);
    	memcpy(jmp, src, len);
    	jmp += len;
    	jmp[0] = 0xE9;
    	*(DWORD *)(jmp + 1) = (DWORD)(src + len - jmp) - 5;
    	src[0] = 0xE9;
    	*(DWORD *)(src + 1) = (DWORD)(dst - src) - 5;
    	for(INT i = 5; i < len; i++) src[i] = 0x90;
    	VirtualProtect(src, len, dwback, &dwback);
    
    	return(jmp - len);
    }
    My Own Hack!!!



  2. #2
    kelvinprosv's Avatar
    Join Date
    Apr 2015
    Gender
    male
    Posts
    16
    Reputation
    10
    Thanks
    9
    Hook is detected

  3. #3
    Anger5K's Avatar
    Join Date
    May 2020
    Gender
    male
    Posts
    151
    Reputation
    10
    Thanks
    70
    My Mood
    Lurking
    can you share undetected
    My Own Hack!!!



  4. #4
    vaisefud3's Avatar
    Join Date
    Jun 2017
    Gender
    male
    Posts
    955
    Reputation
    10
    Thanks
    150
    My Mood
    Bored
    Quote Originally Posted by Anger5K View Post
    can you share undetected
    If I recall correctly crossfire checked for E9/EB jmps. You can use another method to redirect the EIP to your code, just be creative

  5. #5
    Anger5K's Avatar
    Join Date
    May 2020
    Gender
    male
    Posts
    151
    Reputation
    10
    Thanks
    70
    My Mood
    Lurking
    Can you get creative with
    My Own Hack!!!



  6. #6
    kelvinprosv's Avatar
    Join Date
    Apr 2015
    Gender
    male
    Posts
    16
    Reputation
    10
    Thanks
    9
    Quote Originally Posted by vaisefud3 View Post
    If I recall correctly crossfire checked for E9/EB jmps. You can use another method to redirect the EIP to your code, just be creative
    Code:
    DWORD WINAPI Hook(LPVOID lpAlgs)
    {
    	DWORD dwD3D9 = 0;
    	while (!dwD3D9) {
    		Sleep(100);
    		dwD3D9 = (DWORD)GetModuleHandle("d3d9.dll");
    	}
    	DWORD PPPDevice = FindPattern(dwD3D9, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx"); //C7 06 ? ? ? ? 89 86 ? ? ? ? 89 86
    	memcpy(&VTable, (void *)(PPPDevice + 2), 4);
    	DWORD dwVTable[5] = { 0 };
    	CreateDevice(dwVTable);
    	oReset = (tReset)DetourCreate((PBYTE)dwVTable[0], (PBYTE)&hkReset, 5);
    	oPresent = (tPresent)DetourCreate((PBYTE)dwVTable[1], (PBYTE)&hkPresent, 5);
    	oEndScene = (tEndScene)DetourCreate((PBYTE)dwVTable[2], (PBYTE)&hkEndScene, 5);
    	oDrawIndexedPrimitive = (tDrawIndexedPrimitive)DetourCreate((PBYTE)dwVTable[3], (PBYTE)&hkDrawIndexedPrimitive, 5);
    	return FALSE;
    }
    Code:
    #include "stdafx.h"
    
    #pragma region Hook
    
    typedef HRESULT(WINAPI* tReset)(LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters);
    tReset oReset;
    
    typedef HRESULT(WINAPI *tPresent)(LPDIRECT3DDEVICE9 pDevice, const RECT *a, const RECT *b, HWND c, const RGNDATA *d);
    tPresent oPresent;
    
    typedef HRESULT(WINAPI *tEndScene)(LPDIRECT3DDEVICE9 pDevice);
    tEndScene oEndScene;
    
    typedef HRESULT(WINAPI* tDrawIndexedPrimitive)(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE, int, UINT, UINT, UINT, UINT);
    tDrawIndexedPrimitive oDrawIndexedPrimitive;
    
    VOID CreateDevice(DWORD *dwVTable)
    {
    	LPDIRECT3D9 pD3d9;
    	LPDIRECT3DDEVICE9 pD3DDevice;
    	pD3d9 = Direct3DCreate9(D3D_SDK_VERSION);
    	if (pD3d9 == NULL)
    		return;
    	D3DPRESENT_PARAMETERS pPresentParms;
    	ZeroMemory(&pPresentParms, sizeof(pPresentParms));
    	pPresentParms.Windowed = TRUE;
    	pPresentParms.BackBufferFormat = D3DFMT_UNKNOWN;
    	pPresentParms.SwapEffect = D3DSWAPEFFECT_DISCARD;
    	if (FAILED(pD3d9->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, GetDesktopWindow(), D3DCREATE_SOFTWARE_VERTEXPROCESSING, &pPresentParms, &pD3DDevice)))
    		return;
    	DWORD *dwTable = (DWORD *)pD3DDevice;
    	dwTable = (DWORD *)dwTable[0];
    	dwVTable[0] = dwTable[16]; //Reset
    	dwVTable[1] = dwTable[17]; //Present
    	dwVTable[2] = dwTable[42]; //EndScene
    	dwVTable[3] = dwTable[82]; //DrawIndexedPrimitive
    }
    
    VOID *DetourCreate(BYTE *src, const BYTE *dst, const int len)
    {
    	int Pointer[] = { 0xE9, 0x90 };
    
    	BYTE *jmp = (BYTE *)malloc(len + 5);
    	DWORD dwback;
    	VirtualProtect(src, len, PAGE_READWRITE, &dwback);
    	memcpy(jmp, src, len);
    	jmp += len;
    	jmp[0] = Pointer[0];
    	*(DWORD *)(jmp + 1) = (DWORD)(src + len - jmp) - 5;
    	src[0] = Pointer[0];
    	*(DWORD *)(src + 1) = (DWORD)(dst - src) - 5;
    	for (INT i = 5; i < len; i++) src[i] = Pointer[1];
    	VirtualProtect(src, len, dwback, &dwback);
    
    	return(jmp - len);
    }

  7. #7
    Anger5K's Avatar
    Join Date
    May 2020
    Gender
    male
    Posts
    151
    Reputation
    10
    Thanks
    70
    My Mood
    Lurking
    this detected
    Last edited by Anger5K; 10-09-2020 at 12:58 AM.
    My Own Hack!!!



  8. #8
    vaisefud3's Avatar
    Join Date
    Jun 2017
    Gender
    male
    Posts
    955
    Reputation
    10
    Thanks
    150
    My Mood
    Bored
    Just use push/ret bruh

Similar Threads

  1. [Source Code] *DetourCreate Atualizado 30/06/14
    By OverDowns in forum Combat Arms BR Hack Coding/Source Code
    Replies: 34
    Last Post: 07-05-2014, 11:17 AM
  2. [Solved] Ajuda Com DetourCreate
    By Fєηix in forum Combat Arms BR Coding Help
    Replies: 26
    Last Post: 05-31-2013, 01:34 PM
  3. Help-me DetourCreate
    By gusdnide in forum Crossfire Coding Help & Discussion
    Replies: 7
    Last Post: 04-15-2013, 08:55 AM
  4. [Help Request] DetourCreate
    By dreek1 in forum Crossfire Coding Help & Discussion
    Replies: 16
    Last Post: 01-04-2013, 11:20 AM