Skip to content
MPGHThe Dark Arts
/
RegisterLog in
Forum
Community
What's NewLatest posts across the boardTrendingHottest threads right nowSubscribedThreads you follow
Discussion
GeneralIntroductionsEntertainmentDebate FortFlaming & Rage
Board
News & AnnouncementsMPGH TimesSuggestions & HelpGiveaways
More Sections
Art & Graphic DesignProgrammingHackingCryptocurrency
Hacks & Cheats
Games
ValorantCS2 / CS:GOCall of Duty / WarzoneFortniteApex LegendsEscape From Tarkov
+14 moreLeague of LegendsGTA VMinecraftRustROTMGBattlefieldTroveBattleOnCombat ArmsCrossFireBlackshotRuneScapeDayZDead by Daylight
Resources
Game Hacking TutorialsReverse EngineeringGeneral Game HackingAnti-CheatConsole Game Hacking
Tools
Game Hacking ToolsTrainers & CheatsHack/Release NewsNew
Submit a release →Share your cheat, tool, or config with the community.
AINEW
AI Tools
General & DiscussionPrompt EngineeringLLM JailbreaksHotAI Agents & AutomationLocal / Open Models
AI × Gaming
AI Aimbots & VisionML Anti-CheatGame Bots & Automation
Create
AI Coding / Vibe CodingAI Art & MediaAI Voice & TTS
The AI frontier →Where game hacking meets modern machine learning. Jump in.
Marketplace
Buy & Sell
SellingBuyingTradingUser Services
Trust & Safety
Middleman LoungeMarketplace TalkVouch Copy Profiles
Money
Cryptocurrency TalkCurrency ExchangeWork & Job Offers
Start selling →List accounts, services, and goods. Use the middleman to trade safe.
MPGH The Dark Arts

A community for offensive security research, reverse engineering, and AI.

Community

ForumMarketplaceSearch

Account

RegisterLog in

Legal

Privacy PolicyForum RulesHelp & FAQ
© 2026 MPGH · All rights reserved.Built by the community, for the community. For educational purposes onlyContent is shared for security research and education — we don't condone illegal use. You're responsible for complying with applicable laws. Use at your own risk.
Home › Forum › MultiPlayer Game Hacks & Cheats › CrossFire Hacks & Cheats › CrossFire Hack Coding / Programming / Source Code › How To Make A D3D Hook [ Complete Tutorial ]

How To Make A D3D Hook [ Complete Tutorial ]

Posts 1–15 of 57 · Page 1 of 4
Dead(H)ell
Dead(H)ell
How To Make A D3D Hook [ Complete Tutorial ]
First of all i m not like those who afraid on giving a hook..i don't care about this i care bout helping people

First of all include those [they may have smth rong if any corrections i suggest @Swag to tell me]
Code:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <d3d9.h>
#include <d3dx9.h>

okay first lets start naked function
Code:
DWORD* DIP_hook = NULL;
DWORD DIP_return = NULL;

bool  wallhack = true;

void myDIP(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount)
{
    IDirect3DVertexBuffer9* pStreamData = NULL;
    UINT iOffsetInBytes,iStride;
    pDevice->GetStreamSource(0,&pStreamData,&iOffsetInBytes,&iStride);

    if(wallhack)
    if ((iStride==40)||(iStride==44))
    {
        pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE );
        pDevice->SetRenderState(D3DRS_ZFUNC,   D3DCMP_NEVER);
    }
}

_declspec(naked) void dwmyDIP()
{
    __asm
    {
        //Call myDIP
        MOV EAX, DWORD PTR [ESP+40];
        PUSH EAX;
        MOV EAX, DWORD PTR [ESP+40];
        PUSH EAX;
        MOV EAX, DWORD PTR [ESP+40];
        PUSH EAX;
        MOV EAX, DWORD PTR [ESP+40];
        PUSH EAX;
        MOV EAX, DWORD PTR [ESP+40];
        PUSH EAX;
        MOV EAX, DWORD PTR [ESP+40];
        PUSH EAX;
        MOV EAX, DWORD PTR [ESP+40];
        PUSH EAX;
        CALL myDIP;
        ADD ESP, 28;
Then Restore EAX original value:
Code:
MOV EAX,DWORD PTR FS:[0];
Then put back the Original code:
Code:
PUSH EAX;
        SUB ESP,0x20;
Then Return ur JMP Back:
Code:
JMP DIP_return;
Then Close ur naked Function:
Code:
    }
}
Then We Use The bCompare() Method:
Code:
bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
    for(;*szMask;++szMask,++pData,++bMask)
        if(*szMask=='x' && *pData!=*bMask)   return 0;
    return (*szMask) == NULL;
}
Then We Find The Pattern For Our Wall Hack:
Code:
DWORD FindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask)
{
    for(DWORD i=0; i<dwLen; i++)
        if (bCompare((BYTE*)(dwAddress+i),bMask,szMask))  return (DWORD)(dwAddress+i);
    return 0;
}
Then We start our 5 Bytes Hunting:
Code:
void MakeJMP(BYTE *pAddress, DWORD dwJumpTo, DWORD dwLen)
{
    DWORD dwOldProtect, dwBkup, dwRelAddr;
Then we give the paged memory read/write permissions:
Code:
    VirtualProtect(pAddress, dwLen, PAGE_EXECUTE_READWRITE, &dwOldProtect);
Then We calculate the distance between our address and our target location and subtract the 5bytes, which is the size of the JMP:
Code:
    dwRelAddr = (DWORD) (dwJumpTo - (DWORD) pAddress) - 5;
Then We overwrite the byte at pAddress with the jmp opcode (0xE9):
Code:
    *pAddress = 0xE9;

Then We overwrite the next 4 bytes (which is the size of a DWORD) with the dwRelAddr:

Code:
    *((DWORD *)(pAddress + 0x1)) = dwRelAddr;
Then we overwrite the remaining bytes with the NOP opcode (0x90):
Code:
    for(DWORD x = 0x5; x < dwLen; x++) *(pAddress + x) = 0x90;
Then we restore the paged memory permissions saved in dwOldProtect:
Code:
    VirtualProtect(pAddress, dwLen, dwOldProtect, &dwBkup);
Then We close the JMPHook:
Code:
    return;

}
Then Create Our Hack Thread:thx to @giniyat101 for the wall hack and to @Coder[Vb10e] for telling me how to put the wallhack
Code:
void WallHack()
{
    LoadLibraryA("d3d9.dll");
    DWORD D3D9, adr, *VTable;
    do
    {
        D3D9 = (DWORD)LoadLibraryA("d3d9.dll");
        Sleep(100);
    } while (D3D9 == NULL);

    adr = FindPattern(D3D9, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x8", "xx????xx????xx");
    if (adr) {
        memcpy(&VTable,(void *)(adr+2),4);

    MakeJMP((BYTE *)0x4FF51658, (DWORD)dwmyDIP, 0x6);
    DWORD dwJMPback = 0x4FF51658;
    }
}
Then Finally The DLLMAIN:
Code:
//you put one ur self :)


credits to:
@giniyat101
@Brimir
@Coder[Vb10e]

@Scata
@Royku
@Hero
@Jigsaw
worthes a sticky again?
#1 · 14y ago
Austin
[MPGH]Austin
GJ, and I've talked with hero. Not gonna sticky, you already have one. If you want this stickied combine the other one and this thread.
#2 · 14y ago
Dead(H)ell
Dead(H)ell
Quote Originally Posted by Scata View Post
GJ, and I've talked with hero. Not gonna sticky, you already have one. If you want this stickied combine the other one and this thread.
ok,i ll think bout that and ty


Quote Originally Posted by Scata View Post
GJ, and I've talked with hero. Not gonna sticky, you already have one. If you want this stickied combine the other one and this thread.
@Scata remove the first sticky and stick this one its better than the first & not easy to get
#3 · edited 14y ago · 14y ago
DE
DeepShyt
Quote Originally Posted by Dead(H)ell View Post


@Scata remove the first sticky and stick this one its better than the first & not easy to get
Can you help me make one d3d hook please.. my msn is deepshytmpgh@hotmail.com
#4 · 14y ago
RE
Reflex-
Quote Originally Posted by DeepShyt View Post
Can you help me make one d3d hook please.. my msn is deepshytmpgh@hotmail.com
If you follow the Tutorial.
#5 · 14y ago
CO
Coder[Vb10e]
@Dead(H)ell (i hope you did not stoled my hook, cause thats the string i made) good tutorial btw
#6 · 14y ago
CFhackerfree
CFhackerfree
LOL i have a Hook with DIp Pointer and my 2. hook without any pointers ^^
nice job
#7 · edited 14y ago · 14y ago
Skrillex
Skrillex
nice good job
#8 · 14y ago
-iFaDy..*
-iFaDy..*
Good Job
#9 · 14y ago
Swag
Swag
Very good job
#10 · 14y ago
Dead(H)ell
Dead(H)ell
Quote Originally Posted by Coder[Vb10e] View Post
@Dead(H)ell (i hope you did not stoled my hook, cause thats the string i made) good tutorial btw
no i swear i didnt..i just used ur hok to update the addies but the hook is from another forum dats wy i credited u
#11 · 14y ago
CO
Coder[Vb10e]
Quote Originally Posted by Dead(H)ell View Post


no i swear i didnt..i just used ur hok to update the addies but the hook is from another forum dats wy i credited u
ok , nice tut it helps many pp
#12 · 14y ago
MY
MysteryCoder
Quote Originally Posted by Coder[Vb10e] View Post


ok , nice tut it helps many pp
Bro I Need Your Help, I Think Hugo Send You A Message, So Please Can You Help Me?

---------- Post added at 07:31 PM ---------- Previous post was at 07:22 PM ----------

Cool Job Dude
#13 · 14y ago
RA
ramo
Perfect tut - WOW Job
@Dead(H)ell open ur mail
#14 · 14y ago
goold1
goold1
i can use it for d3d menu ?
#15 · 14y ago
Posts 1–15 of 57 · Page 1 of 4

Post a Reply

Similar Threads

  • How To Make A D3D Menu in VB.NET for CF[Doesnt Require A Hook]By Dead(H)ell in CrossFire Hack Coding / Programming / Source Code
    68Last post 14y ago
  • How To Make Warrock D3d Menu Hack with all hack functionsBy srinuv in Programming Tutorial Requests
    5Last post 15y ago
  • -How to make .dll[Vtable Hook]-By gokhanw in All Points Bulletin Reloaded Hacks
    16Last post 14y ago
  • How to make skins in CoD:MW2 tutorial on PCBy ChrisOoO in Call of Duty Modern Warfare 2 Discussions
    8Last post 16y ago
  • How to Make a D3D CrosshairBy sam22 in Alliance of Valiant Arms (AVA) Hacks & Cheats
    7Last post 15y ago

Tags for this Thread

None