Results 1 to 7 of 7
  1. #1
    OpKilts's Avatar
    Join Date
    Dec 2012
    Gender
    male
    Location
    The Interwebs
    Posts
    94
    Reputation
    57
    Thanks
    380
    My Mood
    Aggressive

    Wink Useful Combat Arms D3D



    EndScene Hooking
    Code:
    typedef HRESULT( __stdcall* EndScene_t )( LPDIRECT3DDEVICE9 );
    EndScene_t				m_EndScene;
    
    HRESULT __stdcall hkEndScene( LPDIRECT3DDEVICE9 pDevice )
    {
    
    return m_EndScene( pDevice );
    }
    
    void *DetourFunction( 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;
    
    	VirtualProtect( src, len, dwback, &dwback );
    
    	return ( jmp - len );
    }
    
    m_EndScene = ( EndScene_t )DetourFunction( ( PBYTE )m_vTable[ VTABLE_EndScene ], ( PBYTE )Hooks::hkEndScene, 5 );

    D3DDraw Functions
    Code:
    struct D3DTLVERTEX
    	{	
    		float fX;	
    		float fY;	
    		float fZ;	
    		float fRHW;	
    		D3DCOLOR Color;	
    		float fU;	
    		float fV;
    	};
    
    	enum gr_orientation 
    	{
    		horizontal,
    			vertical
    	};
    
    	struct DXUT_SCREEN_VERTEX 
    	{ 
    		float x, y, z, h; 
    		D3DCOLOR color; 
    		float tu, tv; 
    		DWORD FVF;
    	};
    
    void PrintText(ID3DXFont* g_pFont, int x, int y, DWORD dwColor, DWORD Flags, char *Text )
    	{
    		RECT rct;    
    		rct.left     = x - 1;    
    		rct.right    = x + 1;    
    		rct.top      = y - 1 ;    
    		rct.bottom   = y + 1;  
    
    		if(!Text) { return; } 
    		va_list va_alist; 
    		char logbuf[256] = {0}; 
    		va_start (va_alist, Text); 
    		_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), Text, va_alist); 
    		va_end (va_alist); 
    		RECT FontRect = { x, y, x, y }; 
    		g_pFont->DrawTextA(NULL, logbuf, -1, &rct, DT_NOCLIP | Flags, dwColor);  
    	}
    
    	void FillRGB(int x, int y, int w, int h, DWORD Color)
    	{
    		if(!D3DHook::GetDevice())
    			return;
    
    		D3DRECT dRect = {x, y, x + w, y + h};
    		pDevice->Clear(-1, &dRect, D3DCLEAR_TARGET, Color, 0, 0);
    	}
    
    	void GradientRect( float x, float y, float width, float height, DWORD startCol, DWORD endCol, gr_orientation orientation )
    	{
    		if( !pDevice  )
    			return;
    
    		static struct D3DVERTEX {float x, y, z, rhw; DWORD color;} vertices[4] = {{0,0,0,1.0f,0},{0,0,0,1.0f,0},{0,0,0,1.0f,0},{0,0,0,1.0f,0}};
    		vertices[0].x = x;
    		vertices[0].y = y;
    		vertices[0].color = startCol;
    
    		vertices[1].x = x+width;
    		vertices[1].y = y;
    		vertices[1].color = orientation == horizontal ? endCol : startCol;
    
    		vertices[2].x = x;
    		vertices[2].y = y+height;
    		vertices[2].color = orientation == horizontal ? startCol : endCol;
    
    		vertices[3].x = x+width;
    		vertices[3].y = y+height;
    		vertices[3].color = endCol;
    
    
    		pDevice ->SetRenderState( D3DRS_ALPHABLENDENABLE, true );
    		pDevice ->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
    
    		pDevice ->SetFVF( D3DFVF_XYZRHW|D3DFVF_DIFFUSE );
    		pDevice ->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,2,vertices,sizeof(vertices[0]));
    	}
    
    	void DrawNonFilledRectangle( float x, float y, float w, float h, DWORD dwColor )
    	{
    		if( !pDevice )
    			return;
    
    		DXUT_SCREEN_VERTEX vertices[6] =
    		{
    			x + w, y,	  0.0f, 1.0f, dwColor, 0.0f, 0.0f,
    			x + w, y + h, 0.0f, 1.0f, dwColor, 0.0f, 0.0f,
    			x, y + h, 0.0f, 1.0f, dwColor, 0.0f, 0.0f,
    
    			x, y + h, 0.0f, 1.0f, dwColor, 0.0f, 0.0f,
    			x, y,	  0.0f, 1.0f, dwColor, 0.0f, 0.0f,
    			x + w, y, 0.0f, 1.0f, dwColor, 0.0f, 0.0f,
    		};
    		pDevice ->DrawPrimitiveUP( D3DPT_LINESTRIP, 5, vertices, sizeof(DXUT_SCREEN_VERTEX) );
    	}
    
    	void cD3D::DrawBorder( float x, float y, float w, float h, DWORD color1, DWORD color2 )
    	{
    		if( !pDevice )
    			return;
    
    		DXUT_SCREEN_VERTEX vertices[6] =
    		{
    			x + w, y, 0.0f, 1.0f, color2, 0,0,
    			x + w, y + h, 0.0f, 1.0f, color2, 0,0,
    			x, y + h, 0.0f, 1.0f, color2, 0,0,
    
    			x, y + h, 0.0f, 1.0f, color1, 0,0,
    			x, y, 0.0f, 1.0f, color1, 0,0,
    			x + w, y, 0.0f, 1.0f, color1, 0,0,
    		};
    		pDevice->DrawPrimitiveUP( D3DPT_LINESTRIP, 5, vertices, sizeof(DXUT_SCREEN_VERTEX) );
    	}
    Small Code Log
    Code:
    [19:39:47] Found d3d9.dll at 0x73030000
    [19:39:47] Found Offset at 0x73043939
    [19:39:47] Found VTable[ 000 ]: 0x73036E99 - (QueryInterface)
    [19:39:47] Found VTable[ 001 ]: 0x730367F2 - (AddRef)
    [19:39:47] Found VTable[ 002 ]: 0x730367C9 - (Release)
    [19:39:47] Found VTable[ 003 ]: 0x7304CD54 - (TestCooperativeLevel)
    [19:39:47] Found VTable[ 004 ]: 0x730EBCFD - (GetAvaibleTextureMem)
    [19:39:47] Found VTable[ 005 ]: 0x7312971F - (EvictManagedResources)
    [19:39:47] Found VTable[ 006 ]: 0x7303BB76 - (GetDirect3D)
    [19:39:47] Found VTable[ 007 ]: 0x73036F78 - (GetDeviceCaps)
    [19:39:47] Found VTable[ 008 ]: 0x73067DFB - (GetDisplayMode)
    [19:39:47] Found VTable[ 009 ]: 0x7306B972 - (GetCreationParameters)
    [19:39:47] Found VTable[ 010 ]: 0x730EB1C4 - (SetCursorProperties)
    [19:39:47] Found VTable[ 011 ]: 0x730EB69D - (SetCursorPosition)
    [19:39:47] Found VTable[ 012 ]: 0x73067D10 - (ShowCursor)
    [19:39:47] Found VTable[ 013 ]: 0x7306CD50 - (CreateAdditionalSwapChain)
    [19:39:47] Found VTable[ 014 ]: 0x7304B46C - (GetSwapChain)
    [19:39:47] Found VTable[ 015 ]: 0x7308711E - (GetNumberOfSwapChains)
    [19:39:47] Found VTable[ 016 ]: 0x73088DDA - (Reset)
    [19:39:47] Found VTable[ 017 ]: 0x730710C3 - (Present)
    [19:39:47] Found VTable[ 018 ]: 0x73092A9F - (GetBackBuffer)
    [19:39:47] Found VTable[ 019 ]: 0x73068945 - (GetRasterStatus)
    [19:39:47] Found VTable[ 020 ]: 0x730EB789 - (SetDialogBoxMode)
    [19:39:47] Found VTable[ 021 ]: 0x730EBA0F - (SetGammaRamp)
    [19:39:47] Found VTable[ 022 ]: 0x730EBB4D - (GetGammaRamp)
    [19:39:47] Found VTable[ 023 ]: 0x7305476B - (CreateTexture)
    [19:39:47] Found VTable[ 024 ]: 0x730EC0B8 - (CreateVolumeTexture)
    [19:39:47] Found VTable[ 025 ]: 0x7307E93F - (CreateCubeTexture)
    [19:39:47] Found VTable[ 026 ]: 0x7304D40D - (CreateVertexBuffer)
    [19:39:47] Found VTable[ 027 ]: 0x7305ED61 - (CreateIndexBuffer)
    [19:39:47] Found VTable[ 028 ]: 0x730923B8 - (CreateRenderTarget)
    [19:39:47] Found VTable[ 029 ]: 0x730EC3D8 - (CreateDepthStencilSurface)
    [19:39:47] Found VTable[ 030 ]: 0x730ED72C - (UpdateSurface)
    [19:39:47] Found VTable[ 031 ]: 0x73066611 - (UpdateTexture)
    [19:39:47] Found VTable[ 032 ]: 0x73084331 - (GetRenderTargetData)
    [19:39:47] Found VTable[ 033 ]: 0x730EC687 - (GetFronBufferData)
    [19:39:47] Found VTable[ 034 ]: 0x73070430 - (StrechRect)
    [19:39:47] Found VTable[ 035 ]: 0x7306A5D3 - (ColorFill)
    [19:39:47] Found VTable[ 036 ]: 0x73084F4F - (CreateOffscreenPlainSurface)
    [19:39:47] Found VTable[ 037 ]: 0x73070EE9 - (SetRenderTarget)
    [19:39:47] Found VTable[ 038 ]: 0x730711D2 - (GetRenderTarget)
    [19:39:47] Found VTable[ 039 ]: 0x73076E97 - (SetDepthStencilSurface)
    [19:39:47] Found VTable[ 040 ]: 0x73076D10 - (GetDepthStencilSurface)
    [19:39:47] Found VTable[ 041 ]: 0x7304D8BC - (BeginScene)
    [19:39:47] Found VTable[ 042 ]: 0x7304CE09 - (EndScene)
    [19:39:47] Found VTable[ 043 ]: 0x7303F244 - (Clear)
    [19:39:47] Found VTable[ 044 ]: 0x7303E9D6 - (SetTransforM)
    [19:39:47] Found VTable[ 045 ]: 0x731307A2 - (GetTransform)
    [19:39:47] Found VTable[ 046 ]: 0x7312986F - (MultiplyTransform)
    [19:39:47] Found VTable[ 047 ]: 0x73129987 - (SetViewport)
    [19:39:47] Found VTable[ 048 ]: 0x730757A0 - (GetViewport)
    [19:39:47] Found VTable[ 049 ]: 0x73129C94 - (SetMaterial)
    [19:39:47] Found VTable[ 050 ]: 0x7313111B - (GetMaterial)
    [19:39:47] Found VTable[ 051 ]: 0x73065700 - (SetLight)
    [19:39:47] Found VTable[ 052 ]: 0x731311CA - (GetLight)
    [19:39:47] Found VTable[ 053 ]: 0x73065803 - (LightEnable)
    [19:39:47] Found VTable[ 054 ]: 0x73131313 - (GetLightEnable)
    [19:39:47] Found VTable[ 055 ]: 0x7312B054 - (SetClipPlane)
    [19:39:47] Found VTable[ 056 ]: 0x73130E27 - (GetClipPlane)
    [19:39:47] Found VTable[ 057 ]: 0x73072ED1 - (SetRenderState)
    [19:39:47] Found VTable[ 058 ]: 0x73130365 - (GetRenderState)
    [19:39:47] Found VTable[ 059 ]: 0x7307F1FC - (CreateStateBlock)
    [19:39:47] Found VTable[ 060 ]: 0x73071467 - (BeginStateBlock)
    [19:39:47] Found VTable[ 061 ]: 0x730730E3 - (EndStateBlock)
    [19:39:47] Found VTable[ 062 ]: 0x73130936 - (SetClipStatus)
    [19:39:47] Found VTable[ 063 ]: 0x731309E0 - (GetClipStatus)
    [19:39:47] Found VTable[ 064 ]: 0x7312A368 - (GetTexture)
    [19:39:47] Found VTable[ 065 ]: 0x7306B175 - (SetTexture)
    [19:39:47] Found VTable[ 066 ]: 0x7313054C - (GetTextureStageState)
    [19:39:47] Found VTable[ 067 ]: 0x7306B2E3 - (SetTextureStageState)
    [19:39:47] Found VTable[ 068 ]: 0x731306CA - (GetSamplerState)
    [19:39:47] Found VTable[ 069 ]: 0x7306B21E - (SetSamplerState)
    [19:39:47] Found VTable[ 070 ]: 0x7307CBB3 - (ValidateDevice)
    [19:39:47] Found VTable[ 071 ]: 0x7312AC57 - (SetPaletteEntries)
    [19:39:47] Found VTable[ 072 ]: 0x7312AF91 - (GetPaletteEntries)
    [19:39:47] Found VTable[ 073 ]: 0x7312AA5A - (SetCurrentTexturePalette)
    [19:39:47] Found VTable[ 074 ]: 0x7312ABB6 - (GetCurrentTexturePalette)
    [19:39:47] Found VTable[ 075 ]: 0x73129AB1 - (SetScissorRect)
    [19:39:47] Found VTable[ 076 ]: 0x73129BD8 - (GetScissorRect)
    [19:39:47] Found VTable[ 077 ]: 0x73130EEE - (SetSoftwareVertexProcessing)
    [19:39:47] Found VTable[ 078 ]: 0x73130348 - (GetSoftwareVertexProcessing)
    [19:39:47] Found VTable[ 079 ]: 0x73075B0E - (SetNPatchMode)
    [19:39:47] Found VTable[ 080 ]: 0x73075789 - (GetNPatchMode)
    [19:39:47] Found VTable[ 081 ]: 0x73053660 - (DrawPrimitive)
    [19:39:47] Found VTable[ 082 ]: 0x73057651 - (DrawIndexPrimitive)
    [19:39:47] Found VTable[ 083 ]: 0x73075473 - (DrawPrimitiveUP)
    [19:39:47] Found VTable[ 084 ]: 0x7312C4C6 - (DrawIndexPrimitiveUP)
    [19:39:47] Found VTable[ 085 ]: 0x73131FAC - (ProcessVertices)
    [19:39:47] Found VTable[ 086 ]: 0x7305F522 - (CreateVertexDeclaration)
    [19:39:47] Found VTable[ 087 ]: 0x7305F446 - (SetVertexDeclaration)
    [19:39:47] Found VTable[ 088 ]: 0x73127765 - (GetVertexDeclaration)
    [19:39:47] Found VTable[ 089 ]: 0x7312B56A - (SetFVF)
    [19:39:47] Found VTable[ 090 ]: 0x7312B6A0 - (GetFVF)
    [19:39:47] Found VTable[ 091 ]: 0x7309129F - (CreateVertexShader)
    [19:39:47] Found VTable[ 092 ]: 0x73072BAE - (SetVertexShader)
    [19:39:47] Found VTable[ 093 ]: 0x7313435C - (GetVertexShader)
    [19:39:47] Found VTable[ 094 ]: 0x7307EE48 - (SetVertexShaderConstantF)
    [19:39:47] Found VTable[ 095 ]: 0x73128DD6 - (GetVertexShaderConstantF)
    [19:39:47] Found VTable[ 096 ]: 0x73127834 - (SetVertexShaderConstantI)
    [19:39:47] Found VTable[ 097 ]: 0x73128FC3 - (GetVertexShaderConstantI)
    [19:39:47] Found VTable[ 098 ]: 0x731279A6 - (SetVertexShaderConstantB)
    [19:39:47] Found VTable[ 099 ]: 0x731291B3 - (GetVertexShaderConstantB)
    [19:39:47] Found VTable[ 100 ]: 0x73075CD1 - (SetStreamSource)
    [19:39:47] Found VTable[ 101 ]: 0x7312B1AA - (GetStreamSource)
    [19:39:47] Found VTable[ 102 ]: 0x7312B2A1 - (SetStreamSourceFreq)
    [19:39:47] Found VTable[ 103 ]: 0x7312B3E1 - (GetStreamSourceFreq)
    [19:39:47] Found VTable[ 104 ]: 0x73075DC2 - (SetIndices)
    [19:39:47] Found VTable[ 105 ]: 0x7312B49C - (GetIndices)
    [19:39:47] Found VTable[ 106 ]: 0x7308B177 - (CreatePixelShader)
    [19:39:47] Found VTable[ 107 ]: 0x73072C7A - (SetPixelShader)
    [19:39:47] Found VTable[ 108 ]: 0x73134751 - (GetPixelShader)
    [19:39:47] Found VTable[ 109 ]: 0x7307EFC3 - (SetPixelShaderConstantF)
    [19:39:47] Found VTable[ 110 ]: 0x7313481A - (GetPixelShaderConstantF)
    [19:39:47] Found VTable[ 111 ]: 0x73127C44 - (SetPixelShaderConstantI)
    [19:39:47] Found VTable[ 112 ]: 0x7313495C - (GetPixelShaderConstantI)
    [19:39:47] Found VTable[ 113 ]: 0x73127DB6 - (SetPixelShaderConstantB)
    [19:39:47] Found VTable[ 114 ]: 0x73134AAC - (GetPixelShaderConstantB)
    [19:39:47] Found VTable[ 115 ]: 0x7312BF76 - (DrawRectPatch)
    [19:39:47] Found VTable[ 116 ]: 0x7312C21F - (DrawTriPatch)
    [19:39:47] Found VTable[ 117 ]: 0x73127F28 - (DeletePatch)
    [19:39:47] Found VTable[ 118 ]: 0x7304E426 - (CreateQuery)
    Some codes may require a bypass!

    Enjoy
    ULTIMATE GAY'S LIST
    • Matypatty
    • DisOwned


    Error: Max Thanks Reached


    TASK'S
    1. (Complete)Make Simple Menu For Combat Arms NA
    2. (Complete) Reach 50 Post's
    3. (In Progress)Troll Nerdy Kids
    4. (Complete)Get a job at KFC

  2. The Following 3 Users Say Thank You to OpKilts For This Useful Post:

    !Kernel32.dll (09-07-2014),daviddidi (09-03-2014),WhiteNigqa (09-01-2014)

  3. #2
    daviddidi's Avatar
    Join Date
    Apr 2011
    Gender
    male
    Posts
    1,164
    Reputation
    13
    Thanks
    1,963
    My Mood
    Doh
    Thank you for sharing

    great job

    I want to Develop this World,
    But you Never Tell Me The Source Code ...

    Joined Forum: April 2011

  4. #3
    DAGER-05's Avatar
    Join Date
    Jul 2013
    Gender
    male
    Posts
    80
    Reputation
    10
    Thanks
    0
    some one can tell me? why my hack not shows menu? for CAEU, same HS ver, same blackchiper ver in CARU but it works for CARU not CAEU.

  5. #4
    matypatty's Avatar
    Join Date
    Aug 2009
    Gender
    male
    Posts
    862
    Reputation
    156
    Thanks
    2,688
    My Mood
    Amused
    credits to learn_more for the gradient box

  6. The Following 2 Users Say Thank You to matypatty For This Useful Post:

    arun823 (09-07-2014),Timboy67678 (09-07-2014)

  7. #5
    !Kernel32.dll's Avatar
    Join Date
    Sep 2014
    Gender
    male
    Posts
    0
    Reputation
    10
    Thanks
    7
    This! THIIS is really helpful, I've always wanted to know what the other vTable offset's were, much appreciated.

  8. #6
    supercarz1991's Avatar
    Join Date
    Jul 2010
    Gender
    male
    Location
    North of Hell, South of Heaven
    Posts
    6,067
    Reputation
    323
    Thanks
    3,320
    My Mood
    Doh
    i have this list in a #defines list somewhere on an old menu with a 100% vTable hook. its detected now i'm sure, but it wasn't when i used it a year ago except for like 3 or 4 parts of it

    commando: You're probably the best non-coder coder I know LOL


  9. #7
    sendakjng's Avatar
    Join Date
    Sep 2016
    Gender
    male
    Posts
    162
    Reputation
    10
    Thanks
    9
    thanks for sharing this awesome piece of code

Similar Threads

  1. Replies: 4
    Last Post: 01-11-2012, 04:03 AM
  2. Combat Arms D3D/C++
    By svizy in forum C++/C Programming
    Replies: 5
    Last Post: 12-26-2009, 04:18 AM
  3. [Choobs][TUT]How to use Combat Arms hacks[TUT][Choobs]
    By satindemon4u in forum Combat Arms Discussions
    Replies: 17
    Last Post: 09-07-2009, 01:41 PM
  4. [REQUEST] Combat Arms D3D Functions
    By iKalliko in forum Combat Arms Hacks & Cheats
    Replies: 0
    Last Post: 03-19-2009, 03:37 PM
  5. how to use combat arms hack?
    By angelslayer7 in forum General Game Hacking
    Replies: 3
    Last Post: 11-06-2008, 09:12 PM