Page 1 of 2 12 LastLast
Results 1 to 15 of 18
  1. #1
    SoreBack's Avatar
    Join Date
    Jul 2008
    Gender
    male
    Posts
    25
    Reputation
    10
    Thanks
    4

    [Source]Chams w/ Vtable

    Code:
    #include <Windows.h>
    #include <d3d9.h>
    #include <detours.h>
    #include "stdafx.h"
    #pragma comment (lib, "d3d9.lib")
    
    IDirect3DDevice9 * pGameDevice;
    LPDIRECT3DTEXTURE9  Red,Yellow,Green,Blue,Purple,Pink,Orange;
    UINT iStride;
    bool Chams = true;
    
     
    //============================================================//
    HRESULT GenerateTexture(IDirect3DDevice9 *pD3Ddev, IDirect3DTexture9 **ppD3Dtex, DWORD colour32)
    {
        if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
            return E_FAIL;
     
        WORD colour16 =    ((WORD)((colour32>>28)&0xF)<<12)
                |(WORD)(((colour32>>20)&0xF)<<8)
                |(WORD)(((colour32>>12)&0xF)<<4)
                |(WORD)(((colour32>>4)&0xF)<<0);
     
        D3DLOCKED_RECT d3dlr;    
        (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
        WORD *pDst16 = (WORD*)d3dlr.pBits;
     
        for(int xy=0; xy < 8*8; xy++)
            *pDst16++ = colour16;
     
        (*ppD3Dtex)->UnlockRect(0);
     
        return S_OK;
    }//==================================Texture=========================//
    ////////////////
    ///BeginScene///
    ////////////////
    typedef HRESULT(WINAPI* BeginScene_)(LPDIRECT3DDEVICE9 pDevice);
    BeginScene_ pBeginScene;
    HRESULT WINAPI nBeginScene(LPDIRECT3DDEVICE9 pDevice)
    {
    	_asm NOP;
    	HRESULT hRet = pBeginScene(pDevice);
    	if (GetAsyncKeyState(VK_F1)&1)
    {
    	Chams = !Chams;
    }
    
    	return hRet;
    }
    
    /**************************************************************************************************/
    
    //////////////
    ///EndScene///
    //////////////
    typedef HRESULT(WINAPI* EndScene_)(LPDIRECT3DDEVICE9 pDevice);
    EndScene_ pEndScene;
    HRESULT WINAPI nEndScene(LPDIRECT3DDEVICE9 pDevice)
    {	
    	if(Chams)
    { 
    GenerateTexture(pDevice, &Red,      D3DCOLOR_ARGB    (255   ,   255  ,     0      ,    0      ));
    GenerateTexture(pDevice, &Yellow,   D3DCOLOR_ARGB    (255   ,   255  ,     255    ,    0      ));
    GenerateTexture(pDevice, &Green,    D3DCOLOR_ARGB    (255   ,   0    ,     255    ,    0      ));
    GenerateTexture(pDevice, &Blue,     D3DCOLOR_ARGB    (255   ,   0    ,     0      ,    255    ));
    GenerateTexture(pDevice, &Purple,   D3DCOLOR_ARGB    (255   ,   102  ,     0      ,    153    ));
    GenerateTexture(pDevice, &Pink,     D3DCOLOR_ARGB    (255   ,   255  ,     20      ,   147    ));
    GenerateTexture(pDevice, &Orange,   D3DCOLOR_ARGB    (255   ,   255  ,     165      ,  0      ));
    Color=false; 
    }
     
    return pEndScene(pDevice);
    }
    
    /**************************************************************************************************/
    
    //////////////////////////
    ///DrawIndexedPrimitive///
    //////////////////////////
    typedef HRESULT(WINAPI* DrawIndexedPrimitive_)(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinIndex,
    											  UINT NumVertices, UINT StartIndex, UINT PrimitiveCount);
    DrawIndexedPrimitive_ pDrawIndexedPrimitive;
    HRESULT WINAPI nDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinIndex,
    									UINT NumVertices, UINT StartIndex, UINT PrimitiveCount)
    {	
    	
    	
    	
    	
    	{	
    
    		pDevice->SetRenderState( D3DRS_FOGENABLE, false );
    
    	}	
    
    
    
    	IDirect3DVertexBuffer9* pStreamData = NULL;
    
    	UINT iOffsetInBytes,iStride; 
    
    	pDevice->GetStreamSource(0,&pStreamData,&iOffsetInBytes,&iStride); 
    
    	if (Chams) 
    	{
    		if (iStride == 44)
    		{
                 DWORD dwOldZEnable = D3DZB_TRUE;
                 pDevice->SetTexture(0, Orange);
                 pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
                 pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
    			 pDevice->DrawIndexedPrimitive(Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
                 pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);
                 pDevice->SetTexture(0, Red);
    }
    	}
    
    	
    	
    	
    	
    	return pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount);
    			
    	
    }
    
    /**************************************************************************************************/
    
    /////////////////////
    ///SetStreamSource///
    /////////////////////
    typedef HRESULT(WINAPI* SetStreamSource_)(LPDIRECT3DDEVICE9 pDevice, UINT StreamNumber, IDirect3DVertexBuffer9 * pStreamData, UINT OffsetInBytes, UINT Stride);
    SetStreamSource_ pSetStreamSource;
    HRESULT WINAPI nSetStreamSource(LPDIRECT3DDEVICE9 pDevice, UINT StreamNumber, IDirect3DVertexBuffer9 * pStreamData, UINT OffsetInBytes, UINT Stride)
    {	
    	_asm NOP;
    	HRESULT hRet = pSetStreamSource(pDevice, StreamNumber, pStreamData, OffsetInBytes, Stride);
    if( StreamNumber == 0 ){iStride = Stride;}
    
    	return hRet;
    }
    
    /**************************************************************************************************/
    
    ///////////
    ///Reset///
    ///////////
    typedef HRESULT(WINAPI* Reset_)(LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters);
    Reset_ pReset;
    HRESULT WINAPI nReset(LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters)
    {
    	_asm NOP;
    	HRESULT hRet = pReset(pDevice, pPresentationParameters);
    
    	return hRet;
    }
    
    /**************************************************************************************************/
    
    
    DWORD dwWait(LPVOID lpArgs)
    {
    	
    	DWORD Base = NULL;
    
    	for (;Base == NULL;Sleep(100))           
    		Base = (DWORD)GetModuleHandle("Engine.exe//Whatever the processname is");  
    	
    	for(;pGameDevice == NULL; Sleep(10000))  
    	{
    		DWORD dwProtect;
    		VirtualProtect((void*)(0x7D0840), 4, PAGE_EXECUTE_READWRITE, &dwProtect);
    		memcpy(&pGameDevice, (void*)(0x7D0840), 4);
    		VirtualProtect((void*)(0x7D0840), 4, dwProtect, NULL);
    	}
    			
    		
    
    
    	DWORD* pdwNewDevice  =(DWORD*)*(DWORD*)pGameDevice;
    	pdwNewDevice = (DWORD*)pdwNewDevice[0];  //turn our pointer into an array for the vtable
    	
    	
    	pReset = (Reset_)DetourFunction((PBYTE)pdwNewDevice[16],(PBYTE)nReset);
    	pBeginScene = (BeginScene_)DetourFunction((PBYTE)pdwNewDevice[41],(PBYTE)nBeginScene);
    	pEndScene = (EndScene_)DetourFunction((PBYTE)pdwNewDevice[42],(PBYTE)nEndScene);
    	pDrawIndexedPrimitive = (DrawIndexedPrimitive_)DetourFunction((PBYTE)pdwNewDevice[82],(PBYTE)nDrawIndexedPrimitive);
    	pSetStreamSource = (SetStreamSource_)DetourFunction((PBYTE)pdwNewDevice[100],(PBYTE)nSetStreamSource);
    	
    	return 0;
    }
    
    bool WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved)
    {
    	if(dwReason == DLL_PROCESS_ATTACH)
    	{
    				
    		CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)dwWait, NULL, NULL, NULL);
    		
    		return true;
    	}
    	
    	return false;
    }
    It has errors, i dont know if it still works.

    This isnt flawless, identify the errors and fix it. I dont want to make it a easy c/p..

    Have fun. Hopefully you'll get the base idea.

    Credits for Strife for the base.

    Credits to fatboy for his D3D8 offsets tutorial.
    I did this on the top of my head.
    Last edited by SoreBack; 01-29-2009 at 12:46 PM.

  2. #2
    Obama's Avatar
    Join Date
    Dec 2008
    Gender
    male
    Location
    The Black house
    Posts
    22,197
    Reputation
    870
    Thanks
    6,071
    My Mood
    Cool
    Quote Originally Posted by SoreBack View Post
    Code:
    #include <Windows.h>
    #include <d3d9.h>
    #include <detours.h>
    #include "stdafx.h"
    #pragma comment (lib, "d3d9.lib")
    
    IDirect3DDevice9 * pGameDevice;
    LPDIRECT3DTEXTURE9  Red,Yellow,Green,Blue,Purple,Pink,Orange;
    UINT iStride;
    bool Chams = true;
    
     
    //============================================================//
    HRESULT GenerateTexture(IDirect3DDevice9 *pD3Ddev, IDirect3DTexture9 **ppD3Dtex, DWORD colour32)
    {
        if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
            return E_FAIL;
     
        WORD colour16 =    ((WORD)((colour32>>28)&0xF)<<12)
                |(WORD)(((colour32>>20)&0xF)<<8)
                |(WORD)(((colour32>>12)&0xF)<<4)
                |(WORD)(((colour32>>4)&0xF)<<0);
     
        D3DLOCKED_RECT d3dlr;    
        (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
        WORD *pDst16 = (WORD*)d3dlr.pBits;
     
        for(int xy=0; xy < 8*8; xy++)
            *pDst16++ = colour16;
     
        (*ppD3Dtex)->UnlockRect(0);
     
        return S_OK;
    }//==================================Texture=========================//
    ////////////////
    ///BeginScene///
    ////////////////
    typedef HRESULT(WINAPI* BeginScene_)(LPDIRECT3DDEVICE9 pDevice);
    BeginScene_ pBeginScene;
    HRESULT WINAPI nBeginScene(LPDIRECT3DDEVICE9 pDevice)
    {
    	_asm NOP;
    	HRESULT hRet = pBeginScene(pDevice);
    	if (GetAsyncKeyState(VK_F1)&1)
    {
    	Chams = !Chams;
    }
    
    	return hRet;
    }
    
    /**************************************************************************************************/
    
    //////////////
    ///EndScene///
    //////////////
    typedef HRESULT(WINAPI* EndScene_)(LPDIRECT3DDEVICE9 pDevice);
    EndScene_ pEndScene;
    HRESULT WINAPI nEndScene(LPDIRECT3DDEVICE9 pDevice)
    {	
    	if(Chams)
    { 
    GenerateTexture(pDevice, &Red,      D3DCOLOR_ARGB    (255   ,   255  ,     0      ,    0      ));
    GenerateTexture(pDevice, &Yellow,   D3DCOLOR_ARGB    (255   ,   255  ,     255    ,    0      ));
    GenerateTexture(pDevice, &Green,    D3DCOLOR_ARGB    (255   ,   0    ,     255    ,    0      ));
    GenerateTexture(pDevice, &Blue,     D3DCOLOR_ARGB    (255   ,   0    ,     0      ,    255    ));
    GenerateTexture(pDevice, &Purple,   D3DCOLOR_ARGB    (255   ,   102  ,     0      ,    153    ));
    GenerateTexture(pDevice, &Pink,     D3DCOLOR_ARGB    (255   ,   255  ,     20      ,   147    ));
    GenerateTexture(pDevice, &Orange,   D3DCOLOR_ARGB    (255   ,   255  ,     165      ,  0      ));
    Color=false; 
    }
     
    return pEndScene(pDevice);
    }
    
    /**************************************************************************************************/
    
    //////////////////////////
    ///DrawIndexedPrimitive///
    //////////////////////////
    typedef HRESULT(WINAPI* DrawIndexedPrimitive_)(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinIndex,
    											  UINT NumVertices, UINT StartIndex, UINT PrimitiveCount);
    DrawIndexedPrimitive_ pDrawIndexedPrimitive;
    HRESULT WINAPI nDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinIndex,
    									UINT NumVertices, UINT StartIndex, UINT PrimitiveCount)
    {	
    	
    	
    	
    	
    	{	
    
    		pDevice->SetRenderState( D3DRS_FOGENABLE, false );
    
    	}	
    
    
    
    	IDirect3DVertexBuffer9* pStreamData = NULL;
    
    	UINT iOffsetInBytes,iStride; 
    
    	pDevice->GetStreamSource(0,&pStreamData,&iOffsetInBytes,&iStride); 
    
    	if (Chams) 
    	{
    		if (iStride == 44)
    		{
                 DWORD dwOldZEnable = D3DZB_TRUE;
                 pDevice->SetTexture(0, Orange);
                 pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
                 pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
    			 pDevice->DrawIndexedPrimitive(Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
                 pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);
                 pDevice->SetTexture(0, Red);
    }
    	}
    
    	
    	
    	
    	
    	return pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount);
    			
    	
    }
    
    /**************************************************************************************************/
    
    /////////////////////
    ///SetStreamSource///
    /////////////////////
    typedef HRESULT(WINAPI* SetStreamSource_)(LPDIRECT3DDEVICE9 pDevice, UINT StreamNumber, IDirect3DVertexBuffer9 * pStreamData, UINT OffsetInBytes, UINT Stride);
    SetStreamSource_ pSetStreamSource;
    HRESULT WINAPI nSetStreamSource(LPDIRECT3DDEVICE9 pDevice, UINT StreamNumber, IDirect3DVertexBuffer9 * pStreamData, UINT OffsetInBytes, UINT Stride)
    {	
    	_asm NOP;
    	HRESULT hRet = pSetStreamSource(pDevice, StreamNumber, pStreamData, OffsetInBytes, Stride);
    if( StreamNumber == 0 ){iStride = Stride;}
    
    	return hRet;
    }
    
    /**************************************************************************************************/
    
    ///////////
    ///Reset///
    ///////////
    typedef HRESULT(WINAPI* Reset_)(LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters);
    Reset_ pReset;
    HRESULT WINAPI nReset(LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters)
    {
    	_asm NOP;
    	HRESULT hRet = pReset(pDevice, pPresentationParameters);
    
    	return hRet;
    }
    
    /**************************************************************************************************/
    
    
    DWORD dwWait(LPVOID lpArgs)
    {
    	
    	DWORD Base = NULL;
    
    	for (;Base == NULL;Sleep(100))           
    		Base = (DWORD)GetModuleHandle("crossfire.exe");  
    	
    	for(;pGameDevice == NULL; Sleep(10000))  
    	{
    		DWORD dwProtect;
    		VirtualProtect((void*)(0x7D0840), 4, PAGE_EXECUTE_READWRITE, &dwProtect);
    		memcpy(&pGameDevice, (void*)(0x7D0840), 4);
    		VirtualProtect((void*)(0x7D0840), 4, dwProtect, NULL);
    	}
    			
    		
    
    
    	DWORD* pdwNewDevice  =(DWORD*)*(DWORD*)pGameDevice;
    	pdwNewDevice = (DWORD*)pdwNewDevice[0];  //turn our pointer into an array for the vtable
    	
    	
    	pReset = (Reset_)DetourFunction((PBYTE)pdwNewDevice[16],(PBYTE)nReset);
    	pBeginScene = (BeginScene_)DetourFunction((PBYTE)pdwNewDevice[41],(PBYTE)nBeginScene);
    	pEndScene = (EndScene_)DetourFunction((PBYTE)pdwNewDevice[42],(PBYTE)nEndScene);
    	pDrawIndexedPrimitive = (DrawIndexedPrimitive_)DetourFunction((PBYTE)pdwNewDevice[82],(PBYTE)nDrawIndexedPrimitive);
    	pSetStreamSource = (SetStreamSource_)DetourFunction((PBYTE)pdwNewDevice[100],(PBYTE)nSetStreamSource);
    	
    	return 0;
    }
    
    bool WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved)
    {
    	if(dwReason == DLL_PROCESS_ATTACH)
    	{
    				
    		CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)dwWait, NULL, NULL, NULL);
    		
    		return true;
    	}
    	
    	return false;
    }
    It has errors, i dont know if it still works.

    This isnt flawless, identify the errors and fix it. I dont want to make it a easy c/p..

    Have fun. Hopefully you'll get the base idea.

    Credits for Strife for the base.

    Credits to fatboy for his D3D8 offsets tutorial.
    I did this on the top of my head.
    Wrong section bro.

  3. #3
    SoreBack's Avatar
    Join Date
    Jul 2008
    Gender
    male
    Posts
    25
    Reputation
    10
    Thanks
    4
    No one finds any use for this?

    /cut

    I know, but this is strictly for Combat ARms lol.

    The strides and pointer and module name could be changed to be applicable to other games.

  4. #4
    megaflcl's Avatar
    Join Date
    Jan 2009
    Gender
    male
    Location
    In Your Head
    Posts
    1,262
    Reputation
    27
    Thanks
    276
    My Mood
    Inspired
    this will probably be of more use in one of the programming sections


  5. #5
    Obama's Avatar
    Join Date
    Dec 2008
    Gender
    male
    Location
    The Black house
    Posts
    22,197
    Reputation
    870
    Thanks
    6,071
    My Mood
    Cool
    Quote Originally Posted by SoreBack View Post
    No one finds any use for this?

    /cut

    I know, but this is strictly for Combat ARms lol.

    The strides and pointer and module name could be changed to be applicable to other games.
    Honestly i dont no what the hell all of this is. Can you explain sorry.

  6. #6
    SoreBack's Avatar
    Join Date
    Jul 2008
    Gender
    male
    Posts
    25
    Reputation
    10
    Thanks
    4
    like anyone goes there >.>

    Every post on this site barely has anything to do with Coding or any importance. Only the releases and glitches. You know you could easily make a undetected chams with what i just posted it just needs a little adjusting.

    Btw, i did this in NotePad.

  7. #7
    megaflcl's Avatar
    Join Date
    Jan 2009
    Gender
    male
    Location
    In Your Head
    Posts
    1,262
    Reputation
    27
    Thanks
    276
    My Mood
    Inspired
    well odds are it will be moved there anyways =/


  8. #8
    SoreBack's Avatar
    Join Date
    Jul 2008
    Gender
    male
    Posts
    25
    Reputation
    10
    Thanks
    4
    Quote Originally Posted by SoreBack View Post
    like anyone goes there >.>

    Every post on this site barely has anything to do with Coding or any importance. Only the releases and glitches. You know you could easily make a undetected chams with what i just posted it just needs a little adjusting.

    Btw, i did this in NotePad.
    Re read it all.....

  9. #9
    Remorse's Avatar
    Join Date
    Dec 2008
    Gender
    male
    Location
    Follow the yellow brick road
    Posts
    2,286
    Reputation
    33
    Thanks
    184
    My Mood
    Psychedelic
    mmm i get some of this i think but looks more like for thegaysquads cham.
    and yeah noone around here can probably make heads or tails of this.
    Time to start cycling through old sigs.
    __________________________________________________

    Well that is that and this is this,
    You tell me what you want and I'll tell you what you get,
    You get away from me.
    You get away from me
    .
    Modest Mouse
    Ocean Breathes Salty
    Float On
    __________________________________________________

  10. #10
    SoreBack's Avatar
    Join Date
    Jul 2008
    Gender
    male
    Posts
    25
    Reputation
    10
    Thanks
    4
    But the people who can will appreciate this.

  11. #11
    Obama's Avatar
    Join Date
    Dec 2008
    Gender
    male
    Location
    The Black house
    Posts
    22,197
    Reputation
    870
    Thanks
    6,071
    My Mood
    Cool
    Quote Originally Posted by SoreBack View Post
    But the people who can will appreciate this.
    We have none that can. If we did we wouldnt be waiting for hacks right now.

  12. #12
    rwkeith's Avatar
    Join Date
    Jul 2008
    Gender
    male
    Posts
    457
    Reputation
    11
    Thanks
    78
    My Mood
    Angelic
    I am working onsomething after this upcoming patch. Its actually a cracked updater for free FPS CA Hacks. No joke and we all know FPS makes some pretty good stuff...
    Goals In Life:
    [X] Become an Advanced Member
    [X]Release a tut on mpgh
    [0]Post 300 posts
    [X]Make a working hack
    [X] Learn c++

  13. #13
    Iwin's Avatar
    Join Date
    Aug 2008
    Posts
    2,401
    Reputation
    26
    Thanks
    338
    Quote Originally Posted by rwkeith View Post
    I am working onsomething after this upcoming patch. Its actually a cracked updater for free FPS CA Hacks. No joke and we all know FPS makes some pretty good stuff...
    why not just release free chams and shit?

    i heard you were an experienced coder

  14. #14
    Synns's Avatar
    Join Date
    May 2007
    Gender
    male
    Posts
    5,176
    Reputation
    170
    Thanks
    2,554
    My Mood
    Bitchy
    Why does it say crossfire.exe ?

  15. #15
    rwkeith's Avatar
    Join Date
    Jul 2008
    Gender
    male
    Posts
    457
    Reputation
    11
    Thanks
    78
    My Mood
    Angelic
    Quote Originally Posted by Iwin View Post
    why not just release free chams and shit?

    i heard you were an experienced coder
    I would if I had some help here >.>. I prefer to do something all the way too. If going to make something its going to have everything. Plus I wouldn't charge a dime. I'm better at cracking anyways.
    Last edited by rwkeith; 01-28-2009 at 10:25 PM.
    Goals In Life:
    [X] Become an Advanced Member
    [X]Release a tut on mpgh
    [0]Post 300 posts
    [X]Make a working hack
    [X] Learn c++

  16. The Following User Says Thank You to rwkeith For This Useful Post:

    [DIN]Obama[DU] (01-28-2009)

Page 1 of 2 12 LastLast

Similar Threads

  1. [Release] Vtable hook source
    By nitega in forum All Points Bulletin Reloaded Hacks
    Replies: 26
    Last Post: 10-06-2011, 10:24 AM
  2. [CODE]VTable hooking
    By Hell_Demon in forum C++/C Programming
    Replies: 4
    Last Post: 10-31-2010, 02:49 PM
  3. crossfire wallhack source for hook
    By GangsterCode in forum CrossFire Hack Coding / Programming / Source Code
    Replies: 9
    Last Post: 10-04-2010, 07:47 AM
  4. Counter Strike Source Killa Hook
    By chrisisfat in forum CounterStrike (CS) 1.6 Hacks / Counter Strike: Source (CSS) Hacks
    Replies: 0
    Last Post: 12-15-2008, 06:51 AM
  5. [Source] WH_KEYBOARD Hook Hotkeys
    By d.vel.oper in forum C++/C Programming
    Replies: 1
    Last Post: 02-20-2008, 09:41 AM

Tags for this Thread