Page 1 of 2 12 LastLast
Results 1 to 15 of 17
  1. #1
    Jov's Avatar
    Join Date
    Jan 2014
    Gender
    male
    Location
    WINNING
    Posts
    4,526
    Reputation
    4549
    Thanks
    17,404

    D3D11 Wallhack - Works for Dirty Bomb - Universal --> Scrap project do as you wish



    Basic ass C++ D3D hook for esp & chams
    This section is pretty much dead so im giving you guys the source, uses MinHook.
    Change some shit to keep it UD if you want, Dirty Bomb uses Xingcode i think which is absolute garbo

     
    Code:
    //get dir
    using namespace std;
    #include <fstream>
    char dlldir[320];
    char *GetDirectoryFile(char *filename)
    {
    	static char path[320];
    	strcpy_s(path, dlldir);
    	strcat_s(path, filename);
    	return path;
    }
    
    //log
    void Log(const char *fmt, ...)
    {
    	if (!fmt)	return;
    
    	char		text[4096];
    	va_list		ap;
    	va_start(ap, fmt);
    	vsprintf_s(text, fmt, ap);
    	va_end(ap);
    
    	ofstream logfile(GetDirectoryFile("log.txt"), ios::app);
    	if (logfile.is_open() && text)	logfile << text << endl;
    	logfile.close();
    }
    
    //==========================================================================================================================
    
    //generate shader func
    HRESULT GenerateShader(ID3D11Device* pD3DDevice, ID3D11PixelShader** pShader, float r, float g, float b)
    {
    	char szCast[] = "struct VS_OUT"
    		"{"
    		" float4 Position : SV_Position;"
    		" float4 Color : COLOR0;"
    		"};"
    
    		"float4 main( VS_OUT input ) : SV_Target"
    		"{"
    		" float4 fake;"
    		" fake.a = 1.0f;"
    		" fake.r = %f;"
    		" fake.g = %f;"
    		" fake.b = %f;"
    		" return fake;"
    		"}";
    	ID3D10Blob* pBlob;
    	char szPixelShader[1000];
    
    	sprintf_s(szPixelShader, szCast, r, g, b);
    
    	ID3DBlob* d3dErrorMsgBlob;
    
    	HRESULT hr = D3DCompile(szPixelShader, sizeof(szPixelShader), "shader", NULL, NULL, "main", "ps_4_0", NULL, NULL, &pBlob, &d3dErrorMsgBlob);
    
    	if (FAILED(hr))
    		return hr;
    
    	hr = pD3DDevice->CreatePixelShader((DWORD*)pBlob->GetBufferPointer(), pBlob->GetBufferSize(), NULL, pShader);
    
    	if (FAILED(hr))
    		return hr;
    
    	return S_OK;
    }
    
    //==========================================================================================================================
    
    //wh
    char *state;
    ID3D11RasterizerState * rwState;
    ID3D11RasterizerState * rsState;
    
    enum eDepthState
    {
    	ENABLED,
    	DISABLED,
    	READ_NO_WRITE,
    	NO_READ_NO_WRITE,
    	_DEPTH_COUNT
    };
    
    ID3D11DepthStencilState* myDepthStencilStates[static_cast<int>(eDepthState::_DEPTH_COUNT)];
    
    void SetDepthStencilState(eDepthState aState)
    {
    	pContext->OMSetDepthStencilState(myDepthStencilStates[aState], 1);
    }
    
    //==========================================================================================================================


     
    Code:
    #include <Windows.h>
    #include <vector>
    #include <d3d11.h>
    #include <D3D11Shader.h>
    #include <D3Dcompiler.h>//generateshader
    #pragma comment(lib, "D3dcompiler.lib")
    #pragma comment(lib, "d3d11.lib")
    
    #include "MinHook/include/MinHook.h" //detour x86&x64
    #include "FW1FontWrapper/FW1FontWrapper.h" //font
    
    
    typedef HRESULT(__stdcall *D3D11PresentHook) (IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags);
    typedef void(__stdcall *D3D11DrawHook) (ID3D11DeviceContext* pContext, UINT VertexCount, UINT StartVertexLocation);
    typedef void(__stdcall *D3D11DrawIndexedHook) (ID3D11DeviceContext* pContext, UINT IndexCount, UINT StartIndexLocation, INT BaseVertexLocation);
    typedef void(__stdcall *D3D11DrawInstancedHook) (ID3D11DeviceContext* pContext, UINT VertexCountPerInstance, UINT InstanceCount, UINT StartVertexLocation, UINT StartInstanceLocation);
    typedef void(__stdcall *D3D11DrawIndexedInstancedHook) (ID3D11DeviceContext* pContext, UINT IndexCountPerInstance, UINT InstanceCount, UINT StartIndexLocation, INT BaseVertexLocation, UINT StartInstanceLocation);
    typedef void(__stdcall *D3D11DrawInstancedIndirectHook) (ID3D11DeviceContext* pContext, ID3D11Buffer *pBufferForArgs, UINT AlignedByteOffsetForArgs);
    typedef void(__stdcall *D3D11DrawIndexedInstancedIndirectHook) (ID3D11DeviceContext* pContext, ID3D11Buffer *pBufferForArgs, UINT AlignedByteOffsetForArgs);
    typedef void(__stdcall *D3D11PSSetShaderResourcesHook) (ID3D11DeviceContext* pContext, UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView *const *ppShaderResourceViews);
    typedef void(__stdcall *D3D11CreateQueryHook) (ID3D11Device* pDevice, const D3D11_QUERY_DESC *pQueryDesc, ID3D11Query **ppQuery);
    
    
    D3D11PresentHook phookD3D11Present = NULL;
    D3D11DrawHook phookD3D11Draw = NULL;
    D3D11DrawIndexedHook phookD3D11DrawIndexed = NULL;
    D3D11DrawInstancedHook phookD3D11DrawInstanced = NULL;
    D3D11DrawIndexedInstancedHook phookD3D11DrawIndexedInstanced = NULL;
    D3D11DrawInstancedIndirectHook phookD3D11DrawInstancedIndirect = NULL;
    D3D11DrawIndexedInstancedIndirectHook phookD3D11DrawIndexedInstancedIndirect = NULL;
    D3D11PSSetShaderResourcesHook phookD3D11PSSetShaderResources = NULL;
    D3D11CreateQueryHook phookD3D11CreateQuery = NULL;
    
    ID3D11Device *pDevice = NULL;
    ID3D11DeviceContext *pContext = NULL;
    
    DWORD_PTR* pSwapChainVtable = NULL;
    DWORD_PTR* pContextVTable = NULL;
    DWORD_PTR* pDeviceVTable = NULL;
    
    IFW1Factory *pFW1Factory = NULL;
    IFW1FontWrapper *pFontWrapper = NULL;
    
    #include "main.h"
    
    //==========================================================================================================================
    
    //init only once
    bool firstTime = true;
    
    //vertex
    ID3D11Buffer *veBuffer;
    UINT Stride = 0;
    UINT veBufferOffset = 0;
    D3D11_BUFFER_DESC vedesc;
    
    //index
    ID3D11Buffer *inBuffer;
    DXGI_FORMAT inFormat;
    UINT        inOffset;
    D3D11_BUFFER_DESC indesc;
    
    //rendertarget
    ID3D11Texture2D* RenderTargetTexture;
    ID3D11RenderTargetView* RenderTargetView = NULL;
    
    //shader
    ID3D11PixelShader* psRed = NULL;
    ID3D11PixelShader* psGreen = NULL;
    
    //pssetshaderresources
    UINT pssrStartSlot;
    D3D11_SHADER_RESOURCE_VIEW_DESC  Descr;
    ID3D11ShaderResourceView* ShaderResourceView;
    
    //used for logging/cycling through values
    bool logger = false;
    int countnum = 0;
    char szString[64];
    
    //==========================================================================================================================
    
    HRESULT __stdcall hookD3D11Present(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
    {
    	if (firstTime)
    	{
    		//get device and context
    		if (SUCCEEDED(pSwapChain->GetDevice(__uuidof(ID3D11Device), (void **)&pDevice)))
    		{
    			pSwapChain->GetDevice(__uuidof(pDevice), (void**)&pDevice);
    			pDevice->GetImmediateContext(&pContext);
    		}
    
    		//create depthstencilstate
    		D3D11_DEPTH_STENCIL_DESC  stencilDesc;
    		stencilDesc.DepthFunc = D3D11_COMPARISON_LESS;
    		stencilDesc.StencilEnable = true;
    		stencilDesc.StencilReadMask = 0xFF;
    		stencilDesc.StencilWriteMask = 0xFF;
    		stencilDesc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;
    		stencilDesc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_INCR;
    		stencilDesc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
    		stencilDesc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
    		stencilDesc.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;
    		stencilDesc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_DECR;
    		stencilDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
    		stencilDesc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
    
    		stencilDesc.DepthEnable = true;
    		stencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
    		pDevice->CreateDepthStencilState(&stencilDesc, &myDepthStencilStates[static_cast<int>(eDepthState::ENABLED)]);
    
    		stencilDesc.DepthEnable = false;
    		stencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
    		pDevice->CreateDepthStencilState(&stencilDesc, &myDepthStencilStates[static_cast<int>(eDepthState::DISABLED)]);
    
    		stencilDesc.DepthEnable = false;
    		stencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ZERO;
    		stencilDesc.StencilEnable = false;
    		stencilDesc.StencilReadMask = UINT8(0xFF);
    		stencilDesc.StencilWriteMask = 0x0;
    		pDevice->CreateDepthStencilState(&stencilDesc, &myDepthStencilStates[static_cast<int>(eDepthState::NO_READ_NO_WRITE)]);
    
    		stencilDesc.DepthEnable = true;
    		stencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; //
    		stencilDesc.DepthFunc = D3D11_COMPARISON_GREATER_EQUAL;
    		stencilDesc.StencilEnable = false;
    		stencilDesc.StencilReadMask = UINT8(0xFF);
    		stencilDesc.StencilWriteMask = 0x0;
    
    		stencilDesc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_ZERO;
    		stencilDesc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_ZERO;
    		stencilDesc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
    		stencilDesc.FrontFace.StencilFunc = D3D11_COMPARISON_EQUAL;
    
    		stencilDesc.BackFace.StencilFailOp = D3D11_STENCIL_OP_ZERO;
    		stencilDesc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_ZERO;
    		stencilDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_ZERO;
    		stencilDesc.BackFace.StencilFunc = D3D11_COMPARISON_NEVER;
    		pDevice->CreateDepthStencilState(&stencilDesc, &myDepthStencilStates[static_cast<int>(eDepthState::READ_NO_WRITE)]);
    
    		//wireframe
    		D3D11_RASTERIZER_DESC rwDesc;
    		pContext->RSGetState(&rwState); // retrieve the current state
    		rwState->GetDesc(&rwDesc);    // get the desc of the state
    		rwDesc.FillMode = D3D11_FILL_WIREFRAME;
    		rwDesc.CullMode = D3D11_CULL_NONE;
    		// create a whole new rasterizer state
    		pDevice->CreateRasterizerState(&rwDesc, &rwState);
    
    		//solid
    		D3D11_RASTERIZER_DESC rsDesc;
    		pContext->RSGetState(&rsState); // retrieve the current state
    		rsState->GetDesc(&rsDesc);    // get the desc of the state
    		rsDesc.FillMode = D3D11_FILL_SOLID;
    		rsDesc.CullMode = D3D11_CULL_BACK;
    		// create a whole new rasterizer state
    		pDevice->CreateRasterizerState(&rsDesc, &rsState);
    
    		//create font
    		HRESULT hResult = FW1CreateFactory(FW1_VERSION, &pFW1Factory);
    		hResult = pFW1Factory->CreateFontWrapper(pDevice, L"Tahoma", &pFontWrapper);
    		pFW1Factory->Release();
    
    		// use the back buffer address to create the render target
    		//if (SUCCEEDED(pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), reinterpret_cast<LPVOID*>(&RenderTargetTexture))))
    		if (SUCCEEDED(pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&RenderTargetTexture)))
    		{
    			pDevice->CreateRenderTargetView(RenderTargetTexture, NULL, &RenderTargetView);
    			RenderTargetTexture->Release();
    		}
    
    		firstTime = false;
    	}
    
    	//shaders
    	if (!psRed)
    	GenerateShader(pDevice, &psRed, 1.0f, 0.0f, 0.0f);
    
    	if (!psGreen)
    	GenerateShader(pDevice, &psGreen, 0.0f, 1.0f, 0.0f);
    
    
    	//call before you draw
    	pContext->OMSetRenderTargets(1, &RenderTargetView, NULL);
    	//draw
    	if (pFontWrapper)
    	pFontWrapper->DrawString(pContext, L"D3D11 Hook by Jubs", 14, 16.0f, 16.0f, 0xffff1612, FW1_RESTORESTATE);
    
    
    	//logger
    	if ((GetAsyncKeyState(VK_MENU)) && (GetAsyncKeyState(VK_CONTROL)) && (GetAsyncKeyState(0x4C) & 1)) //ALT + CTRL + L toggles logger
    		logger = !logger;
    	if (logger && pFontWrapper) //&& countnum >= 0)
    	{
    		//call before you draw
    		pContext->OMSetRenderTargets(1, &RenderTargetView, NULL);
    
    		wchar_t reportValue[256];
    		swprintf_s(reportValue, L"countnum = %d", countnum);
    		pFontWrapper->DrawString(pContext, reportValue, 20.0f, 220.0f, 100.0f, 0xffffffff, FW1_RESTORESTATE);
    		pFontWrapper->DrawString(pContext, L"hold P to +", 20.0f, 220.0f, 120.0f, 0xfff11111, FW1_RESTORESTATE);
    		pFontWrapper->DrawString(pContext, L"hold O to -", 20.0f, 220.0f, 140.0f, 0xfaf22222, FW1_RESTORESTATE);
    		pFontWrapper->DrawString(pContext, L"press I to log", 20.0f, 220.0f, 160.0f, 0xfff99999, FW1_RESTORESTATE);
    		pFontWrapper->DrawString(pContext, L"F9 to log drawfunc", 20.0f, 220.0f, 180.0f, 0xff00ff00, FW1_RESTORESTATE);
    	}
    
    	return phookD3D11Present(pSwapChain, SyncInterval, Flags);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11DrawIndexed(ID3D11DeviceContext* pContext, UINT IndexCount, UINT StartIndexLocation, INT BaseVertexLocation)
    {
    	//if (GetAsyncKeyState(VK_F9) & 1)
    		//Log("DrawIndexed called");
    	
    	//get stride & vdesc.ByteWidth
    	pContext->IAGetVertexBuffers(0, 1, &veBuffer, &Stride, &veBufferOffset);
    	if (veBuffer)
    		veBuffer->GetDesc(&vedesc);
    	if (veBuffer != NULL){ veBuffer->Release(); veBuffer = NULL; }
    
    	//get indesc.ByteWidth
    	pContext->IAGetIndexBuffer(&inBuffer, &inFormat, &inOffset);
    	if (inBuffer)
    		inBuffer->GetDesc(&indesc);
    	if (inBuffer != NULL) { inBuffer->Release(); inBuffer = NULL; }
    	
    	//wallhack example
    	if (Stride == 32 && indesc.ByteWidth == 123456)
    	{
    		SetDepthStencilState(DISABLED);
    		pContext->PSSetShader(psRed, NULL, NULL);
    		phookD3D11DrawIndexed(pContext, IndexCount, StartIndexLocation, BaseVertexLocation);
    		pContext->PSSetShader(psGreen, NULL, NULL);
    		//if (pssrStartSlot == 1) //if black screen, find correct pssrStartSlot
    		SetDepthStencilState(READ_NO_WRITE);
    	}
    	
    	//small bruteforce logger
    	//ALT + CTRL + L toggles logger
    	if (logger)
    	{
    		if ((Stride == 32 || Stride == 36) && (GetAsyncKeyState(VK_F10) & 1))
    			Log("Stride == %d && IndexCount == %d && indesc.ByteWidth == %d && vedesc.ByteWidth == %d && Descr.Format == %d", Stride, IndexCount, indesc.ByteWidth, vedesc.ByteWidth, Descr.Format);
    
    		//hold down P key until a texture is wallhacked, press I to log values of those textures
    		if (GetAsyncKeyState('O') & 1) //-
    			countnum--;
    		if (GetAsyncKeyState('P') & 1) //+
    			countnum++;
    		if ((GetAsyncKeyState(VK_MENU)) && (GetAsyncKeyState('9') & 1)) //reset, set to -1
    			countnum = -1;
    		if (countnum == indesc.ByteWidth / 1000)
    			if (GetAsyncKeyState('I') & 1)
    				Log("Stride == %d && IndexCount == %d && indesc.ByteWidth == %d && vedesc.ByteWidth == %d && Descr.Format == %d", Stride, IndexCount, indesc.ByteWidth, vedesc.ByteWidth, Descr.Format);
    			
    		if (countnum == indesc.ByteWidth / 1000)
    		{
    			SetDepthStencilState(DISABLED);
    			//pContext->RSSetState(rwState);    //wireframe
    			pContext->PSSetShader(psRed, NULL, NULL);
    			phookD3D11DrawIndexed(pContext, IndexCount, StartIndexLocation, BaseVertexLocation);
    			SetDepthStencilState(READ_NO_WRITE);
    			//pContext->RSSetState(rsState);    //solid
    			pContext->PSSetShader(psGreen, NULL, NULL);
    		}
    	}
    	
        return phookD3D11DrawIndexed(pContext, IndexCount, StartIndexLocation, BaseVertexLocation);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11PSSetShaderResources(ID3D11DeviceContext* pContext, UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView *const *ppShaderResourceViews)
    {
    	pssrStartSlot = StartSlot;
    
    	for (UINT j = 0; j < NumViews; j++)
    	{
    		//Resources loop
    		ID3D11ShaderResourceView* pShaderResView = ppShaderResourceViews[j];
    		if (pShaderResView)
    		{
    			pShaderResView->GetDesc(&Descr);
    			//Descr.Buffer.NumElements;
    			//Descr.Format;
    
    			if (
    				(Descr.ViewDimension == D3D11_SRV_DIMENSION_BUFFER)
    				||
    				(Descr.ViewDimension == D3D11_SRV_DIMENSION_BUFFEREX)
    				)
    			{
    				continue;//Skip buffer resources
    			}
    
    		}// if( pShaderResView )
    	}// for
    
    	/*
    	//alternative wallhack example for f'up games
    	if (Descr.Format == 56)
    	{
    		pContext->PSSetShader(psRed, NULL, NULL);
    		SetDepthStencilState(DISABLED);
    	}
    	else
    		if(pssrStartSlot == 1) //if black screen, find correct pssrStartSlot
    		SetDepthStencilState(READ_NO_WRITE);
    	*/
    	return phookD3D11PSSetShaderResources(pContext, StartSlot, NumViews, ppShaderResourceViews);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11CreateQuery(ID3D11Device* pDevice, const D3D11_QUERY_DESC *pQueryDesc, ID3D11Query **ppQuery)
    {
    	//Disable Occlusion which prevents rendering player models through certain objects (used by wallhack to see models through walls at all distances, REDUCES FPS)
    	if (pQueryDesc->Query == D3D11_QUERY_OCCLUSION)
    	{
    		D3D11_QUERY_DESC oqueryDesc = CD3D11_QUERY_DESC();
    		(&oqueryDesc)->MiscFlags = pQueryDesc->MiscFlags;
    		(&oqueryDesc)->Query = D3D11_QUERY_TIMESTAMP;
    
    		return phookD3D11CreateQuery(pDevice, &oqueryDesc, ppQuery);
    	}
    
    	return phookD3D11CreateQuery(pDevice, pQueryDesc, ppQuery);
    }
    
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11Draw(ID3D11DeviceContext* pContext, UINT VertexCount, UINT StartVertexLocation)
    {
    	if (GetAsyncKeyState(VK_F9) & 1)
    		Log("Draw called");
    
    	return phookD3D11Draw(pContext, VertexCount, StartVertexLocation);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11DrawInstanced(ID3D11DeviceContext* pContext, UINT VertexCountPerInstance, UINT InstanceCount, UINT StartVertexLocation, UINT StartInstanceLocation)
    {
    	if (GetAsyncKeyState(VK_F9) & 1)
    		Log("DrawInstanced called");
    
    	return phookD3D11DrawInstanced(pContext, VertexCountPerInstance, InstanceCount, StartVertexLocation, StartInstanceLocation);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11DrawIndexedInstanced(ID3D11DeviceContext* pContext, UINT IndexCountPerInstance, UINT InstanceCount, UINT StartIndexLocation, INT BaseVertexLocation, UINT StartInstanceLocation)
    {
    	if (GetAsyncKeyState(VK_F9) & 1)
    		Log("DrawIndexedInstanced called");
    
    	return phookD3D11DrawIndexedInstanced(pContext, IndexCountPerInstance, InstanceCount, StartIndexLocation, BaseVertexLocation, StartInstanceLocation);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11DrawInstancedIndirect(ID3D11DeviceContext* pContext, ID3D11Buffer *pBufferForArgs, UINT AlignedByteOffsetForArgs)
    {
    	if (GetAsyncKeyState(VK_F9) & 1)
    		Log("DrawInstancedIndirect called");
    
    	return phookD3D11DrawInstancedIndirect(pContext, pBufferForArgs, AlignedByteOffsetForArgs);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11DrawIndexedInstancedIndirect(ID3D11DeviceContext* pContext, ID3D11Buffer *pBufferForArgs, UINT AlignedByteOffsetForArgs)
    {
    	if (GetAsyncKeyState(VK_F9) & 1)
    		Log("DrawIndexedInstancedIndirect called");
    	
    	return phookD3D11DrawIndexedInstancedIndirect(pContext, pBufferForArgs, AlignedByteOffsetForArgs);
    }
    
    //==========================================================================================================================
    
    const int MultisampleCount = 1; // Set to 1 to disable multisampling
    LRESULT CALLBACK DXGIMsgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ return DefWindowProc(hwnd, uMsg, wParam, lParam); }
    DWORD __stdcall InitializeHook(LPVOID)
    {
    	//Sleep(5000);
    
    	HMODULE hDXGIDLL = 0;
    	do
    	{
    		hDXGIDLL = GetModuleHandle("dxgi.dll");
    		Sleep(8000);
    	} while (!hDXGIDLL);
    	Sleep(100);
    
    	//HMODULE hD3D11DLL = 0;
    	//do
    	//{
    		//hD3D11DLL = GetModuleHandle("d3d11.dll");
    		//Sleep(100);
    	//} while (!hD3D11DLL);
    	//Sleep(1000);
    
        IDXGISwapChain* pSwapChain;
    
    	WNDCLASSEXA wc = { sizeof(WNDCLASSEX), CS_CLASSDC, DXGIMsgProc, 0L, 0L, GetModuleHandleA(NULL), NULL, NULL, NULL, NULL, "DX", NULL };
    	RegisterClassExA(&wc);
    	HWND hWnd = CreateWindowA("DX", NULL, WS_OVERLAPPEDWINDOW, 100, 100, 300, 300, NULL, NULL, wc.hInstance, NULL);
    
    	D3D_FEATURE_LEVEL requestedLevels[] = { D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_10_1 };
    	D3D_FEATURE_LEVEL obtainedLevel;
    	ID3D11Device* d3dDevice = nullptr;
    	ID3D11DeviceContext* d3dContext = nullptr;
    
    	DXGI_SWAP_CHAIN_DESC scd;
    	ZeroMemory(&scd, sizeof(scd));
    	scd.BufferCount = 1;
    	scd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
    	scd.BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED;
    	scd.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED;
    	scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
    
    	scd.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH;
    	scd.OutputWindow = hWnd;
    	scd.SampleDesc.Count = MultisampleCount;
    	scd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
    	scd.Windowed = ((GetWindowLongPtr(hWnd, GWL_STYLE) & WS_POPUP) != 0) ? false : true;
    
    	// LibOVR 0.4.3 requires that the width and height for the backbuffer is set even if
    	// you use windowed mode, despite being optional according to the D3D11 documentation.
    	scd.BufferDesc.Width = 1;
    	scd.BufferDesc.Height = 1;
    	scd.BufferDesc.RefreshRate.Numerator = 0;
    	scd.BufferDesc.RefreshRate.Denominator = 1;
    
    	UINT createFlags = 0;
    #ifdef _DEBUG
    	// This flag gives you some quite wonderful debug text. Not wonderful for performance, though!
    	createFlags |= D3D11_CREATE_DEVICE_DEBUG;
    #endif
    
    	IDXGISwapChain* d3dSwapChain = 0;
    
    	if (FAILED(D3D11CreateDeviceAndSwapChain(
    		nullptr,
    		D3D_DRIVER_TYPE_HARDWARE,
    		nullptr,
    		createFlags,
    		requestedLevels,
    		sizeof(requestedLevels) / sizeof(D3D_FEATURE_LEVEL),
    		D3D11_SDK_VERSION,
    		&scd,
    		&pSwapChain,
    		&pDevice,
    		&obtainedLevel,
    		&pContext)))
    	{
    		MessageBox(hWnd, "Failed to create directX device and swapchain!", "Error", MB_ICONERROR);
    		return NULL;
    	}
    
    
        pSwapChainVtable = (DWORD_PTR*)pSwapChain;
        pSwapChainVtable = (DWORD_PTR*)pSwapChainVtable[0];
    
        pContextVTable = (DWORD_PTR*)pContext;
        pContextVTable = (DWORD_PTR*)pContextVTable[0];
    
    	pDeviceVTable = (DWORD_PTR*)pDevice;
    	pDeviceVTable = (DWORD_PTR*)pDeviceVTable[0];
    
    	if (MH_Initialize() != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pSwapChainVtable[8], hookD3D11Present, reinterpret_cast<void**>(&phookD3D11Present)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pSwapChainVtable[8]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[12], hookD3D11DrawIndexed, reinterpret_cast<void**>(&phookD3D11DrawIndexed)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[12]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pDeviceVTable[24], hookD3D11CreateQuery, reinterpret_cast<void**>(&phookD3D11CreateQuery)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pDeviceVTable[24]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[39], hookD3D11DrawIndexedInstancedIndirect, reinterpret_cast<void**>(&phookD3D11DrawIndexedInstancedIndirect)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[39]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[20], hookD3D11DrawIndexedInstanced, reinterpret_cast<void**>(&phookD3D11DrawIndexedInstanced)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[20]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[21], hookD3D11DrawInstanced, reinterpret_cast<void**>(&phookD3D11DrawInstanced)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[21]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[40], hookD3D11DrawInstancedIndirect, reinterpret_cast<void**>(&phookD3D11DrawInstancedIndirect)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[40]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[13], hookD3D11Draw, reinterpret_cast<void**>(&phookD3D11Draw)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[13]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[8], hookD3D11PSSetShaderResources, reinterpret_cast<void**>(&phookD3D11PSSetShaderResources)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[8]) != MH_OK) { return 1; }
    
        DWORD dwOld;
        VirtualProtect(phookD3D11Present, 2, PAGE_EXECUTE_READWRITE, &dwOld);
    
    	while (true) {
    		Sleep(10);
    	}
    
    	pDevice->Release();
    	pContext->Release();
    	pSwapChain->Release();
    
        return NULL;
    }
    
    //==========================================================================================================================
    
    BOOL __stdcall DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpReserved)
    { 
    	switch (dwReason)
    	{
    	case DLL_PROCESS_ATTACH: // A process is loading the DLL.
    		DisableThreadLibraryCalls(hModule);
    		GetModuleFileName(hModule, dlldir, 512);
    		for (size_t i = strlen(dlldir); i > 0; i--) { if (dlldir[i] == '\\') { dlldir[i + 1] = 0; break; } }
    		CreateThread(NULL, 0, InitializeHook, NULL, 0, NULL);
    		break;
    
    	case DLL_PROCESS_DETACH: // A process unloads the DLL.
    		if (MH_Uninitialize() != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pSwapChainVtable[8]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[12]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pDeviceVTable[24]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[39]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[20]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[21]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[40]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[13]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[8]) != MH_OK) { return 1; }
    		break;
    	}
    	return TRUE;
    }
    
    /*
    dx11 vtable CONTEXT index
    Index: 0 | QueryInterface
    Index: 1 | Addref
    Index: 2 | Release
    Index: 3 | GetDevice
    Index: 4 | GetPrivateData
    Index: 5 | SetPrivateData
    Index: 6 | SetPrivateDataInterface
    Index: 7 | VSSetConstantBuffers
    Index: 8 | PSSetShaderResources
    Index: 9 | PSSetShader
    Index: 10 | SetSamplers
    Index: 11 | SetShader
    Index: 12 | DrawIndexed
    Index: 13 | Draw
    Index: 14 | Map
    Index: 15 | Unmap
    Index: 16 | PSSetConstantBuffer
    Index: 17 | IASetInputLayout
    Index: 18 | IASetVertexBuffers
    Index: 19 | IASetIndexBuffer
    Index: 20 | DrawIndexedInstanced
    Index: 21 | DrawInstanced
    Index: 22 | GSSetConstantBuffers
    Index: 23 | GSSetShader
    Index: 24 | IASetPrimitiveTopology
    Index: 25 | VSSetShaderResources
    Index: 26 | VSSetSamplers
    Index: 27 | Begin
    Index: 28 | End
    Index: 29 | GetData
    Index: 30 | GSSetPredication
    Index: 31 | GSSetShaderResources
    Index: 32 | GSSetSamplers
    Index: 33 | OMSetRenderTargets
    Index: 34 | OMSetRenderTargetsAndUnorderedAccessViews
    Index: 35 | OMSetBlendState
    Index: 36 | OMSetDepthStencilState
    Index: 37 | SOSetTargets
    Index: 38 | DrawAuto
    Index: 39 | DrawIndexedInstancedIndirect
    Index: 40 | DrawInstancedIndirect
    Index: 41 | Dispatch
    Index: 42 | DispatchIndirect
    Index: 43 | RSSetState
    Index: 44 | RSSetViewports
    Index: 45 | RSSetScissorRects
    Index: 46 | CopySubresourceRegion
    Index: 47 | CopyResource
    Index: 48 | UpdateSubresource
    Index: 49 | CopyStructureCount
    Index: 50 | ClearRenderTargetView
    Index: 51 | ClearUnorderedAccessViewUint
    Index: 52 | ClearUnorderedAccessViewFloat
    Index: 53 | ClearDepthStencilView
    Index: 54 | GenerateMips
    Index: 55 | SetResourceMinLOD
    Index: 56 | GetResourceMinLOD
    Index: 57 | ResolveSubresource
    Index: 58 | ExecuteCommandList
    Index: 59 | HSSetShaderResources
    Index: 60 | HSSetShader
    Index: 61 | HSSetSamplers
    Index: 62 | HSSetConstantBuffers
    Index: 63 | DSSetShaderResources
    Index: 64 | DSSetShader
    Index: 65 | DSSetSamplers
    Index: 66 | DSSetConstantBuffers
    Index: 67 | DSSetShaderResources
    Index: 68 | CSSetUnorderedAccessViews
    Index: 69 | CSSetShader
    Index: 70 | CSSetSamplers
    Index: 71 | CSSetConstantBuffers
    Index: 72 | VSGetConstantBuffers
    Index: 73 | PSGetShaderResources
    Index: 74 | PSGetShader
    Index: 75 | PSGetSamplers
    Index: 76 | VSGetShader
    Index: 77 | PSGetConstantBuffers
    Index: 78 | IAGetInputLayout
    Index: 79 | IAGetVertexBuffers
    Index: 80 | IAGetIndexBuffer
    Index: 81 | GSGetConstantBuffers
    Index: 82 | GSGetShader
    Index: 83 | IAGetPrimitiveTopology
    Index: 84 | VSGetShaderResources
    Index: 85 | VSGetSamplers
    Index: 86 | GetPredication
    Index: 87 | GSGetShaderResources
    Index: 88 | GSGetSamplers
    Index: 89 | OMGetRenderTargets
    Index: 90 | OMGetRenderTargetsAndUnorderedAccessViews
    Index: 91 | OMGetBlendState
    Index: 92 | OMGetDepthStencilState
    Index: 93 | SOGetTargets
    Index: 94 | RSGetState
    Index: 95 | RSGetViewports
    Index: 96 | RSGetScissorRects
    Index: 97 | HSGetShaderResources
    Index: 98 | HSGetShader
    Index: 99 | HSGetSamplers
    Index: 100 | HSGetConstantBuffers
    Index: 101 | DSGetShaderResources
    Index: 102 | DSGetShader
    Index: 103 | DSGetSamplers
    Index: 104 | DSGetConstantBuffers
    Index: 105 | CSGetShaderResources
    Index: 106 | CSGetUnorderedAccessViews
    Index: 107 | CSGetShader
    Index: 108 | CSGetSamplers
    Index: 109 | CSGetConstantBuffers
    Index: 110 | ClearState
    Index: 111 | Flush
    Index: 112 | GetType
    Index: 113 | GetContextFlags
    Index: 114 | FinishCommandList
    
    
    // ID3D11 DEVICE virtuals
    *QueryInterface 						0
    *AddRef 								1
    *Release 								2
    *CreateBuffer 							3
    *CreateTexture1D 						4
    *CreateTexture2D 						5
    *CreateTexture3D 						6
    *CreateShaderResourceView				7
    *CreateUnorderedAccessView 				8
    *CreateRenderTargetView 				9
    *CreateDepthStencilView 				10
    *CreateInputLayout 						11
    *CreateVertexShader 					12
    *CreateGeometryShader 					13
    *CreateGeometryShaderWithStreamOutput	14
    *CreatePixelShader 						15
    *CreateHullShader 						16
    *CreateDomainShader						17
    *CreateComputeShader					18
    *CreateClassLinkage 					19
    *CreateBlendState 						20
    *CreateDepthStencilState 				21
    *CreateRasterizerState 					22
    *CreateSamplerState						23
    *CreateQuery 							24
    *CreatePredicate 						25
    *CreateCounter 							26
    *CreateDeferredContext 					27
    *OpenSharedResource 					28
    *CheckFormatSupport 					29
    *CheckMultisampleQualityLevels 			30
    *CheckCounterInfo 						31
    *CheckCounter 							32
    *CheckFeatureSupport 					33
    *GetPrivateData 						34
    *SetPrivateData 						35
    *SetPrivateDataInterface 				36
    *GetFeatureLevel 						37
    *GetCreationFlags 						38
    *GetDeviceRemovedReason 				39
    *GetImmediateContext 					40
    *SetExceptionMode 						41
    *GetExceptionMode 						42
    
    
    // IDXGI SWAPCHAIN virtuals
    [0]    7405CADA    (CMTUseCountedObject<CDXGISwapChain>::QueryInterface)
    [1]    7405C9A7    (CMTUseCountedObject<CDXGISwapChain>::AddRef)
    [2]    7405C9D8    (CMTUseCountedObject<CDXGISwapChain>::Release)
    [3]    7405D6BF    (CDXGISwapChain::SetPrivateData)
    [4]    7405F6FC    (CDXGISwapChain::SetPrivateDataInterface)
    [5]    7405D6AF    (CDXGISwapChain::GetPrivateData)
    [6]    7406106A    (CDXGISwapChain::GetParent)
    [7]    7405EFDE    (CDXGISwapChain::GetDevice)
    [8]    74061BD1    (CDXGISwapChain::Present)
    [9]    740617A7    (CDXGISwapChain::GetBuffer)
    [10]    74065CD6    (CDXGISwapChain::SetFullscreenState)
    [11]    740662DC    (CDXGISwapChain::GetFullscreenState)
    [12]    74061146    (CDXGISwapChain::GetDesc)
    [13]    740655ED    (CDXGISwapChain::ResizeBuffers)
    [14]    74065B8D    (CDXGISwapChain::ResizeTarget)
    [15]    7406197B    (CDXGISwapChain::GetContainingOutput)
    [16]    74066524    (CDXGISwapChain::GetFrameStatistics)
    [17]    74066A58    (CDXGISwapChain::GetLastPresentCount)
    [18]    740612C6    (CDXGISwapChain::GetDesc1)
    [19]    740613E0    (CDXGISwapChain::GetFullscreenDesc)
    [20]    740614F9    (CDXGISwapChain::GetHwnd)
    [21]    7406156D    (CDXGISwapChain::GetCoreWindow)
    [22]    74061D0D    (CDXGISwapChain[::IDXGISwapChain1]::Present1)
    [23]    74062069    (CDXGISwapChain::IsTemporaryMonoSupported)
    [24]    740615BB    (CDXGISwapChain::GetRestrictToOutput)
    [25]    740615FB    (CDXGISwapChain::SetBackgroundColor)
    [26]    740616F1    (CDXGISwapChain::GetBackgroundColor)
    [27]    7406173F    (CDXGISwapChain::SetRotation)
    [28]    74061770    (CDXGISwapChain::GetRotation)
    [29]    7405CC1A    (CMTUseCountedObject<CDXGISwapChain>::`vector deleting destructor')
    [30]    7405181E    (CMTUseCountedObject<CDXGISwapChain>::LUCCompleteLayerConstruction)
    [31]    7405CBA5    (DXGID3D10ETWRundown)
    
    
    // DXGI VTable:
    [0]	6ED3F979	(CMTUseCountedObject<CDXGISwapChain>::QueryInterface)
    [1]	6ED3F84D	(CMTUseCountedObject<CDXGISwapChain>::AddRef)
    [2]	6ED3F77D	(CMTUseCountedObject<CDXGISwapChain>::Release)
    [3]	6ED6A6D7	(CDXGISwapChain::SetPrivateData)
    [4]	6ED6A904	(CDXGISwapChain::SetPrivateDataInterface)
    [5]	6ED72BC9	(CDXGISwapChain::GetPrivateData)
    [6]	6ED6DCDD	(CDXGISwapChain::GetParent)
    [7]	6ED69BF4	(CDXGISwapChain::GetDevice)
    [8]	6ED3FAAD	(CDXGISwapChain::Present)
    [9]	6ED40209	(CDXGISwapChain::GetBuffer)
    [10]	6ED47C1C	(CDXGISwapChain::SetFullscreenState)
    [11]	6ED48CD9	(CDXGISwapChain::GetFullscreenState)
    [12]	6ED40CB1	(CDXGISwapChain::GetDesc)
    [13]	6ED48A3B	(CDXGISwapChain::ResizeBuffers)
    [14]	6ED6F153	(CDXGISwapChain::ResizeTarget)
    [15]	6ED47BA5	(CDXGISwapChain::GetContainingOutput)
    [16]	6ED6D9B5	(CDXGISwapChain::GetFrameStatistics)
    [17]	6ED327B5	(CDXGISwapChain::GetLastPresentCount)
    [18]	6ED43400	(CDXGISwapChain::GetDesc1)
    [19]	6ED6D9D0	(CDXGISwapChain::GetFullscreenDesc)
    [20]	6ED6DA90	(CDXGISwapChain::GetHwnd)
    [21]	6ED6D79F	(CDXGISwapChain::GetCoreWindow)
    [22]	6ED6E352	(?Present1@?QIDXGISwapChain2@@CDXGISwapChain@@UAGJIIPBUDXGI_PRESENT_PARAMETERS@@@Z)
    [23]	6ED6E240	(CDXGISwapChain::IsTemporaryMonoSupported)
    [24]	6ED44146	(CDXGISwapChain::GetRestrictToOutput)
    [25]	6ED6F766	(CDXGISwapChain::SetBackgroundColor)
    [26]	6ED6D6B9	(CDXGISwapChain::GetBackgroundColor)
    [27]	6ED4417B	(CDXGISwapChain::SetRotation)
    [28]	6ED6DDE3	(CDXGISwapChain::GetRotation)
    [29]	6ED6FF85	(CDXGISwapChain::SetSourceSize)
    [30]	6ED6DF4F	(CDXGISwapChain::GetSourceSize)
    [31]	6ED6FCBD	(CDXGISwapChain::SetMaximumFrameLatency)
    [32]	6ED6DBE5	(CDXGISwapChain::GetMaximumFrameLatency)
    [33]	6ED6D8CD	(CDXGISwapChain::GetFrameLatencyWaitableObject)
    [34]	6ED6FB45	(CDXGISwapChain::SetMatrixTransform)
    [35]	6ED6DAD0	(CDXGISwapChain::GetMatrixTransform)
    [36]	6ED6C155	(CDXGISwapChain::CheckMultiplaneOverlaySupportInternal)
    [37]	6ED6E82D	(CDXGISwapChain::PresentMultiplaneOverlayInternal)
    [38]	6ED4397A	(CMTUseCountedObject<CDXGISwapChain>::`vector deleting destructor')
    [39]	6ED4EAE0	(CSwapBuffer::AddRef)
    [40]	6ED46C81	(CMTUseCountedObject<CDXGISwapChain>::LUCBeginLayerDestruction)
    */


    Full Source Download on bottom.
    Scans:
    Jotti
    VirusTotal

    <b>Downloadable Files</b> Downloadable Files




    THE EYES OF THE DAVESTAPO ARE UPON YOU. ANY WRONG YOU DO WE ARE GONNA SEE, WHEN YOU'RE ON MPGH, LOOK BEHIND YOU, 'CAUSE THATS WHERE WE GONNA BE




  2. The Following 201 Users Say Thank You to Jov For This Useful Post:

    -X2 (04-01-2020),11223344556677889900''^^ (12-13-2017),21122212d (07-25-2018),7856aa (03-01-2018),abel2001 (01-20-2018),adam123christo (05-05-2022),Agadabo (04-04-2020),alexander.bruun (05-08-2018),alonemeinhome (04-25-2019),anontito (12-12-2020),applemacosx (12-20-2017),arfloocz (11-14-2017),assawwww (05-27-2022),Avneturek (05-19-2018),awdfa\WEFGAWSREG (01-25-2018),ayylmao@kys (12-14-2017),baygeta03 (11-09-2020),BearThatRun (11-30-2018),beelove2321 (02-24-2021),beiwu (08-07-2021),berkberk67 (03-06-2018),BestPasted (01-19-2024),betchy (05-13-2021),bigK76 (01-23-2021),BigKta (01-20-2021),Bitsss (11-09-2017),blackshit123123 (04-26-2021),Black_roses (11-03-2018),Bombades (01-17-2018),botlike4sho (10-28-2018),BrainDeadGG2 (06-24-2018),BrandinoXD (12-16-2017),btngan66 (12-26-2019),bunnyka12 (05-29-2018),CaptainPuck (07-01-2018),carlosm1024 (02-25-2019),Catalin2 (11-17-2017),CCookieCCooker (11-09-2017),Chen172030238 (10-20-2019),chenlun (12-11-2017),chwan521 (03-10-2018),cjyes (02-03-2018),clyptotrix (03-01-2018),DeathMachine123 (11-07-2017),DeathsCompliant (03-09-2018),Diego382 (11-15-2017),dirtybombspeeder (07-01-2022),donsaske (12-02-2019),dragerom (01-12-2018),Drunkensoja (03-14-2018),ec100200 (01-19-2018),erikudza1 (03-17-2019),eskerevojta (04-01-2021),FATEP (09-10-2019),ferlandyy (12-09-2017),Finocchio1 (12-29-2020),Folikon201 (12-05-2018),fromtheshadow (01-06-2018),frostenx1 (04-16-2020),gabridobre (11-05-2017),gla (11-18-2017),Gustav125 (07-07-2020),hackertyu (05-29-2018),HampyLampy (10-05-2020),haobbecutest (03-09-2018),hardpvp123123 (12-01-2017),HighTech0421 (12-23-2017),houxinff (01-30-2018),humann2 (08-31-2023),Hurens610 (10-07-2018),Hylax6 (11-18-2017),icevixegocohor (11-12-2017),idkkkda (07-27-2020),ikbengay69 (12-29-2017),Inexplicablemortal (07-09-2018),insidemcgamen (03-17-2018),Itzmace (11-15-2017),Jeetering (10-07-2020),jembins (07-04-2020),jesse4life (06-25-2018),jessymalik (07-26-2018),jkrcoder112 (03-20-2018),johnrobrob (02-12-2018),jonttu014 (01-21-2018),junelson (05-23-2018),Kartzy (03-24-2019),keith2453 (10-10-2018),keyzen83460 (01-15-2018),killcat (02-18-2018),KingKongDe (02-08-2018),koes32 (07-26-2020),Kojiftw (07-11-2021),konkry12 (08-26-2018),Kreevos (10-13-2019),L.Y.L (10-08-2018),lace520 (12-21-2017),larsen.m. (07-24-2018),latix (01-26-2018),leedemons (04-18-2020),lequanhuy (06-21-2018),LetsPlayMonster (11-19-2017),lionsgod123 (11-08-2017),Liumiya (09-20-2022),lmfao2323232 (12-03-2017),Marcelolucky (06-07-2021),Master _Lol (04-13-2022),Mateusz12344213351 (05-17-2021),max4566 (11-08-2017),maxafak (11-11-2017),Mazzumorto (06-22-2018),Midnight320 (04-21-2022),mirekb44 (05-15-2018),MountSinai (01-04-2018),MRPanMeloun (10-23-2020),MR_UZA (12-26-2017),mungycss (03-14-2020),munid12 (02-15-2020),m_smuf1ng (01-29-2020),Nachzehrer (07-30-2018),namek2012 (08-31-2018),naoldu (01-03-2019),NatetheGrate (01-14-2018),naufalfaiz98 (06-02-2018),NeXi1337 (11-28-2017),ninjafox44 (01-08-2018),nnorbiyt (02-13-2024),nonglin (02-28-2018),NxtesYT (06-05-2018),o-oh (06-20-2019),omaressamre (11-09-2017),oppaiDragon6134 (04-10-2021),parents2 (03-22-2020),patrickgio (11-05-2017),PECHUR (12-14-2017),PhantomBoyYT (01-03-2019),pingchuan (06-24-2018),PizzaGratis001 (06-28-2018),Playerleo (04-02-2018),pp559 (07-03-2018),probsarealname (02-15-2018),propangas (07-08-2020),prucci2 (01-13-2022),purwonegaran77 (12-26-2019),qq1194869050 (02-17-2018),qq83221639 (02-05-2018),qUiNnt (01-28-2018),r3000 (11-16-2017),Ra1v0 (03-29-2022),riomig1 (09-17-2020),RiskShadow (11-08-2017),ruki424 (02-23-2020),rurumon (01-10-2019),s0cks (09-25-2020),s2iDinos (09-02-2023),SagittariusGamerHD (03-17-2024),scaniaxd (11-25-2017),scoffcreator (01-03-2018),Scorpio30 (12-17-2017),Scrubby101 (12-15-2017),secretguy1 (08-25-2019),SeMDeC (11-12-2017),SethNight12 (03-09-2021),shado4king (01-24-2018),shirodelta (12-03-2017),Shriim (11-06-2017),silapakoot (04-24-2021),SirAutoClicker (09-01-2018),sixtySize (06-27-2021),skafian (01-05-2018),skrattadrururur (08-08-2018),spoozz (10-31-2017),ssd768 (12-23-2022),sware (11-30-2017),TASTOXIC106 (10-03-2022),tets22 (04-11-2018),TheCsabiHD (12-11-2017),ThePiratePyro (04-27-2018),tonsweet (04-15-2020),totipro2 (11-23-2017),TubeHD (05-03-2019),uduncu (12-03-2017),Umut1303 (11-24-2017),Unknown12335 (07-15-2018),URBANAWP (01-13-2020),usercodexd (03-15-2018),usernamesareprettycool (09-13-2018),Viktor23 (04-12-2018),vxklom2815 (04-12-2023),wawa1111 (01-30-2018),wegfweewf4 (03-25-2018),White Night (04-10-2018),whitegg (03-09-2020),Witness222 (02-06-2022),xavlumme (07-08-2020),xerus25 (12-14-2017),xFireWolffy (09-29-2018),XiosiAOY (06-09-2022),xXRate (01-27-2018),yowussupdude.exe (05-27-2020),zDraKe01 (02-25-2018),Zergan (01-27-2022)

  3. #2
    Ahl's Avatar
    Join Date
    Dec 2012
    Gender
    male
    Location
    /modcp
    Posts
    16,599
    Reputation
    3219
    Thanks
    5,383
    My Mood
    Angelic
    Looks good, approved
    News Force Head Editor from 09/14/2018 - 03/02/2020
    Publicist from 11/23/2017 - 06/07/2019
    Global Moderator since 09/24/2017
    Minion+ from 04/16/2017 - 09/24/2017
    Market Place Minion from 04/16/2017 - 09/24/2017
    Minecraft Minion from 02/23/2017 - 09/24/2017
    Realm of the Mad God Minion from 11/06/2016 - 09/24/2017

    Middleman from 09/14/2016 - 09/24/2017
    News Force Editor from 08/23/2016 - 09/14/2018
    News Force (Section of the Week) from 03/21/2016 - 07/17/2017
    News Force (User News) from 10/18/2015 - 09/14/2018

    Donator since 03/16/2015
    Realm of the Mad God Editor from 05/20/2014 - 07/08/2014
    Member since 12/23/2012


    Rep Power: 82

  4. #3
    GamersOnly's Avatar
    Join Date
    Sep 2017
    Gender
    male
    Location
    Next to you.
    Posts
    56
    Reputation
    27
    Thanks
    33
    My Mood
    Buzzed
    Jubs, I have given you a message in skype, do you still have access to your skype? if not can you please give me your new skype add? i need to ask something please.
    My skype: talha.uddin696

  5. #4
    TX1200's Avatar
    Join Date
    May 2014
    Gender
    male
    Posts
    9
    Reputation
    10
    Thanks
    1
    :| i really wish i knew how to code. I dont even know how to compile this thing. Can anyone please help me out?

  6. The Following User Says Thank You to TX1200 For This Useful Post:

    ayylmao@kys (12-14-2017)

  7. #5
    Grzybek9's Avatar
    Join Date
    Oct 2017
    Gender
    male
    Posts
    2
    Reputation
    10
    Thanks
    0
    How i can install this :c ?

  8. #6
    RiskShadow's Avatar
    Join Date
    May 2017
    Gender
    male
    Posts
    1
    Reputation
    10
    Thanks
    0
    My Mood
    Aggressive
    How to install??

  9. #7
    omaressamre's Avatar
    Join Date
    Nov 2017
    Gender
    male
    Posts
    1
    Reputation
    10
    Thanks
    0
    How Can I Run It For The Game ? Help Me

  10. #8
    zatona11's Avatar
    Join Date
    Nov 2017
    Gender
    male
    Posts
    1
    Reputation
    10
    Thanks
    0
    lol no help no replay no anything >> great

  11. #9
    Slooozy's Avatar
    Join Date
    Aug 2016
    Gender
    male
    Posts
    4
    Reputation
    10
    Thanks
    0

    where is the dll ?

    i am not that good at c++ codes i just started last week but when i dubug it says missing d3d11hookd.dll can you please help

  12. #10
    Scorpio30's Avatar
    Join Date
    Jan 2017
    Gender
    male
    Posts
    1
    Reputation
    10
    Thanks
    0
    How can i open and install it?

  13. #11
    cjyes's Avatar
    Join Date
    Feb 2018
    Gender
    male
    Posts
    2
    Reputation
    10
    Thanks
    0
    so good!thanks for your shared!

  14. #12
    Dilandau3000's Avatar
    Join Date
    Aug 2017
    Gender
    male
    Posts
    336
    Reputation
    10
    Thanks
    54
    does this game use VAC or easyanticheat or Some other anti cheat system?

  15. #13
    IdiotsAreGood2004's Avatar
    Join Date
    Apr 2018
    Gender
    female
    Posts
    1
    Reputation
    10
    Thanks
    0
    How works C++? Please someone help me. My ******* is: DaveDeKiller123#1706

  16. #14
    keyzen83460's Avatar
    Join Date
    Jan 2018
    Gender
    male
    Posts
    1
    Reputation
    10
    Thanks
    0

    Cool

    : | I would really like to know how to code. I don't even know how to compile this thing. Can someone please help me?
    its this compiles with Visual Studio 2015.

    How can I install this: c?
    its don't install its this compile!

    How can I install this: c?
    once compile with a DLL injector

    i am not so good at c ++ codes that i just started last week but when i bug it says d3d11hookd.dll missing, can you help
    you have not installed the Visual Studio 2015 library (MFC)


    does this game use VAC or easyanticheat or some other anti-cheat system?
    He uses easyanticheat.


    I will see so that the source of the code is up to date to use this cheat on the current version of the games I do not know if I would make sure to make a sale with a subscription because everything works deserves a salary ... Regards.

  17. #15
    pokeralho's Avatar
    Join Date
    Nov 2015
    Gender
    male
    Posts
    4
    Reputation
    10
    Thanks
    0

    codes instead of real cheats

    Quote Originally Posted by sbuj View Post


    Basic ass C++ D3D hook for esp & chams
    This section is pretty much dead so im giving you guys the source, uses MinHook.
    Change some shit to keep it UD if you want, Dirty Bomb uses Xingcode i think which is absolute garbo

     
    Code:
    //get dir
    using namespace std;
    #include <fstream>
    char dlldir[320];
    char *GetDirectoryFile(char *filename)
    {
    	static char path[320];
    	strcpy_s(path, dlldir);
    	strcat_s(path, filename);
    	return path;
    }
    
    //log
    void Log(const char *fmt, ...)
    {
    	if (!fmt)	return;
    
    	char		text[4096];
    	va_list		ap;
    	va_start(ap, fmt);
    	vsprintf_s(text, fmt, ap);
    	va_end(ap);
    
    	ofstream logfile(GetDirectoryFile("log.txt"), ios::app);
    	if (logfile.is_open() && text)	logfile << text << endl;
    	logfile.close();
    }
    
    //==========================================================================================================================
    
    //generate shader func
    HRESULT GenerateShader(ID3D11Device* pD3DDevice, ID3D11PixelShader** pShader, float r, float g, float b)
    {
    	char szCast[] = "struct VS_OUT"
    		"{"
    		" float4 Position : SV_Position;"
    		" float4 Color : COLOR0;"
    		"};"
    
    		"float4 main( VS_OUT input ) : SV_Target"
    		"{"
    		" float4 fake;"
    		" fake.a = 1.0f;"
    		" fake.r = %f;"
    		" fake.g = %f;"
    		" fake.b = %f;"
    		" return fake;"
    		"}";
    	ID3D10Blob* pBlob;
    	char szPixelShader[1000];
    
    	sprintf_s(szPixelShader, szCast, r, g, b);
    
    	ID3DBlob* d3dErrorMsgBlob;
    
    	HRESULT hr = D3DCompile(szPixelShader, sizeof(szPixelShader), "shader", NULL, NULL, "main", "ps_4_0", NULL, NULL, &pBlob, &d3dErrorMsgBlob);
    
    	if (FAILED(hr))
    		return hr;
    
    	hr = pD3DDevice->CreatePixelShader((DWORD*)pBlob->GetBufferPointer(), pBlob->GetBufferSize(), NULL, pShader);
    
    	if (FAILED(hr))
    		return hr;
    
    	return S_OK;
    }
    
    //==========================================================================================================================
    
    //wh
    char *state;
    ID3D11RasterizerState * rwState;
    ID3D11RasterizerState * rsState;
    
    enum eDepthState
    {
    	ENABLED,
    	DISABLED,
    	READ_NO_WRITE,
    	NO_READ_NO_WRITE,
    	_DEPTH_COUNT
    };
    
    ID3D11DepthStencilState* myDepthStencilStates[static_cast<int>(eDepthState::_DEPTH_COUNT)];
    
    void SetDepthStencilState(eDepthState aState)
    {
    	pContext->OMSetDepthStencilState(myDepthStencilStates[aState], 1);
    }
    
    //==========================================================================================================================


     
    Code:
    #include <Windows.h>
    #include <vector>
    #include <d3d11.h>
    #include <D3D11Shader.h>
    #include <D3Dcompiler.h>//generateshader
    #pragma comment(lib, "D3dcompiler.lib")
    #pragma comment(lib, "d3d11.lib")
    
    #include "MinHook/include/MinHook.h" //detour x86&x64
    #include "FW1FontWrapper/FW1FontWrapper.h" //font
    
    
    typedef HRESULT(__stdcall *D3D11PresentHook) (IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags);
    typedef void(__stdcall *D3D11DrawHook) (ID3D11DeviceContext* pContext, UINT VertexCount, UINT StartVertexLocation);
    typedef void(__stdcall *D3D11DrawIndexedHook) (ID3D11DeviceContext* pContext, UINT IndexCount, UINT StartIndexLocation, INT BaseVertexLocation);
    typedef void(__stdcall *D3D11DrawInstancedHook) (ID3D11DeviceContext* pContext, UINT VertexCountPerInstance, UINT InstanceCount, UINT StartVertexLocation, UINT StartInstanceLocation);
    typedef void(__stdcall *D3D11DrawIndexedInstancedHook) (ID3D11DeviceContext* pContext, UINT IndexCountPerInstance, UINT InstanceCount, UINT StartIndexLocation, INT BaseVertexLocation, UINT StartInstanceLocation);
    typedef void(__stdcall *D3D11DrawInstancedIndirectHook) (ID3D11DeviceContext* pContext, ID3D11Buffer *pBufferForArgs, UINT AlignedByteOffsetForArgs);
    typedef void(__stdcall *D3D11DrawIndexedInstancedIndirectHook) (ID3D11DeviceContext* pContext, ID3D11Buffer *pBufferForArgs, UINT AlignedByteOffsetForArgs);
    typedef void(__stdcall *D3D11PSSetShaderResourcesHook) (ID3D11DeviceContext* pContext, UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView *const *ppShaderResourceViews);
    typedef void(__stdcall *D3D11CreateQueryHook) (ID3D11Device* pDevice, const D3D11_QUERY_DESC *pQueryDesc, ID3D11Query **ppQuery);
    
    
    D3D11PresentHook phookD3D11Present = NULL;
    D3D11DrawHook phookD3D11Draw = NULL;
    D3D11DrawIndexedHook phookD3D11DrawIndexed = NULL;
    D3D11DrawInstancedHook phookD3D11DrawInstanced = NULL;
    D3D11DrawIndexedInstancedHook phookD3D11DrawIndexedInstanced = NULL;
    D3D11DrawInstancedIndirectHook phookD3D11DrawInstancedIndirect = NULL;
    D3D11DrawIndexedInstancedIndirectHook phookD3D11DrawIndexedInstancedIndirect = NULL;
    D3D11PSSetShaderResourcesHook phookD3D11PSSetShaderResources = NULL;
    D3D11CreateQueryHook phookD3D11CreateQuery = NULL;
    
    ID3D11Device *pDevice = NULL;
    ID3D11DeviceContext *pContext = NULL;
    
    DWORD_PTR* pSwapChainVtable = NULL;
    DWORD_PTR* pContextVTable = NULL;
    DWORD_PTR* pDeviceVTable = NULL;
    
    IFW1Factory *pFW1Factory = NULL;
    IFW1FontWrapper *pFontWrapper = NULL;
    
    #include "main.h"
    
    //==========================================================================================================================
    
    //init only once
    bool firstTime = true;
    
    //vertex
    ID3D11Buffer *veBuffer;
    UINT Stride = 0;
    UINT veBufferOffset = 0;
    D3D11_BUFFER_DESC vedesc;
    
    //index
    ID3D11Buffer *inBuffer;
    DXGI_FORMAT inFormat;
    UINT        inOffset;
    D3D11_BUFFER_DESC indesc;
    
    //rendertarget
    ID3D11Texture2D* RenderTargetTexture;
    ID3D11RenderTargetView* RenderTargetView = NULL;
    
    //shader
    ID3D11PixelShader* psRed = NULL;
    ID3D11PixelShader* psGreen = NULL;
    
    //pssetshaderresources
    UINT pssrStartSlot;
    D3D11_SHADER_RESOURCE_VIEW_DESC  Descr;
    ID3D11ShaderResourceView* ShaderResourceView;
    
    //used for logging/cycling through values
    bool logger = false;
    int countnum = 0;
    char szString[64];
    
    //==========================================================================================================================
    
    HRESULT __stdcall hookD3D11Present(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
    {
    	if (firstTime)
    	{
    		//get device and context
    		if (SUCCEEDED(pSwapChain->GetDevice(__uuidof(ID3D11Device), (void **)&pDevice)))
    		{
    			pSwapChain->GetDevice(__uuidof(pDevice), (void**)&pDevice);
    			pDevice->GetImmediateContext(&pContext);
    		}
    
    		//create depthstencilstate
    		D3D11_DEPTH_STENCIL_DESC  stencilDesc;
    		stencilDesc.DepthFunc = D3D11_COMPARISON_LESS;
    		stencilDesc.StencilEnable = true;
    		stencilDesc.StencilReadMask = 0xFF;
    		stencilDesc.StencilWriteMask = 0xFF;
    		stencilDesc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;
    		stencilDesc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_INCR;
    		stencilDesc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
    		stencilDesc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
    		stencilDesc.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;
    		stencilDesc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_DECR;
    		stencilDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
    		stencilDesc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
    
    		stencilDesc.DepthEnable = true;
    		stencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
    		pDevice->CreateDepthStencilState(&stencilDesc, &myDepthStencilStates[static_cast<int>(eDepthState::ENABLED)]);
    
    		stencilDesc.DepthEnable = false;
    		stencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
    		pDevice->CreateDepthStencilState(&stencilDesc, &myDepthStencilStates[static_cast<int>(eDepthState::DISABLED)]);
    
    		stencilDesc.DepthEnable = false;
    		stencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ZERO;
    		stencilDesc.StencilEnable = false;
    		stencilDesc.StencilReadMask = UINT8(0xFF);
    		stencilDesc.StencilWriteMask = 0x0;
    		pDevice->CreateDepthStencilState(&stencilDesc, &myDepthStencilStates[static_cast<int>(eDepthState::NO_READ_NO_WRITE)]);
    
    		stencilDesc.DepthEnable = true;
    		stencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; //
    		stencilDesc.DepthFunc = D3D11_COMPARISON_GREATER_EQUAL;
    		stencilDesc.StencilEnable = false;
    		stencilDesc.StencilReadMask = UINT8(0xFF);
    		stencilDesc.StencilWriteMask = 0x0;
    
    		stencilDesc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_ZERO;
    		stencilDesc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_ZERO;
    		stencilDesc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
    		stencilDesc.FrontFace.StencilFunc = D3D11_COMPARISON_EQUAL;
    
    		stencilDesc.BackFace.StencilFailOp = D3D11_STENCIL_OP_ZERO;
    		stencilDesc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_ZERO;
    		stencilDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_ZERO;
    		stencilDesc.BackFace.StencilFunc = D3D11_COMPARISON_NEVER;
    		pDevice->CreateDepthStencilState(&stencilDesc, &myDepthStencilStates[static_cast<int>(eDepthState::READ_NO_WRITE)]);
    
    		//wireframe
    		D3D11_RASTERIZER_DESC rwDesc;
    		pContext->RSGetState(&rwState); // retrieve the current state
    		rwState->GetDesc(&rwDesc);    // get the desc of the state
    		rwDesc.FillMode = D3D11_FILL_WIREFRAME;
    		rwDesc.CullMode = D3D11_CULL_NONE;
    		// create a whole new rasterizer state
    		pDevice->CreateRasterizerState(&rwDesc, &rwState);
    
    		//solid
    		D3D11_RASTERIZER_DESC rsDesc;
    		pContext->RSGetState(&rsState); // retrieve the current state
    		rsState->GetDesc(&rsDesc);    // get the desc of the state
    		rsDesc.FillMode = D3D11_FILL_SOLID;
    		rsDesc.CullMode = D3D11_CULL_BACK;
    		// create a whole new rasterizer state
    		pDevice->CreateRasterizerState(&rsDesc, &rsState);
    
    		//create font
    		HRESULT hResult = FW1CreateFactory(FW1_VERSION, &pFW1Factory);
    		hResult = pFW1Factory->CreateFontWrapper(pDevice, L"Tahoma", &pFontWrapper);
    		pFW1Factory->Release();
    
    		// use the back buffer address to create the render target
    		//if (SUCCEEDED(pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), reinterpret_cast<LPVOID*>(&RenderTargetTexture))))
    		if (SUCCEEDED(pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&RenderTargetTexture)))
    		{
    			pDevice->CreateRenderTargetView(RenderTargetTexture, NULL, &RenderTargetView);
    			RenderTargetTexture->Release();
    		}
    
    		firstTime = false;
    	}
    
    	//shaders
    	if (!psRed)
    	GenerateShader(pDevice, &psRed, 1.0f, 0.0f, 0.0f);
    
    	if (!psGreen)
    	GenerateShader(pDevice, &psGreen, 0.0f, 1.0f, 0.0f);
    
    
    	//call before you draw
    	pContext->OMSetRenderTargets(1, &RenderTargetView, NULL);
    	//draw
    	if (pFontWrapper)
    	pFontWrapper->DrawString(pContext, L"D3D11 Hook by Jubs", 14, 16.0f, 16.0f, 0xffff1612, FW1_RESTORESTATE);
    
    
    	//logger
    	if ((GetAsyncKeyState(VK_MENU)) && (GetAsyncKeyState(VK_CONTROL)) && (GetAsyncKeyState(0x4C) & 1)) //ALT + CTRL + L toggles logger
    		logger = !logger;
    	if (logger && pFontWrapper) //&& countnum >= 0)
    	{
    		//call before you draw
    		pContext->OMSetRenderTargets(1, &RenderTargetView, NULL);
    
    		wchar_t reportValue[256];
    		swprintf_s(reportValue, L"countnum = %d", countnum);
    		pFontWrapper->DrawString(pContext, reportValue, 20.0f, 220.0f, 100.0f, 0xffffffff, FW1_RESTORESTATE);
    		pFontWrapper->DrawString(pContext, L"hold P to +", 20.0f, 220.0f, 120.0f, 0xfff11111, FW1_RESTORESTATE);
    		pFontWrapper->DrawString(pContext, L"hold O to -", 20.0f, 220.0f, 140.0f, 0xfaf22222, FW1_RESTORESTATE);
    		pFontWrapper->DrawString(pContext, L"press I to log", 20.0f, 220.0f, 160.0f, 0xfff99999, FW1_RESTORESTATE);
    		pFontWrapper->DrawString(pContext, L"F9 to log drawfunc", 20.0f, 220.0f, 180.0f, 0xff00ff00, FW1_RESTORESTATE);
    	}
    
    	return phookD3D11Present(pSwapChain, SyncInterval, Flags);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11DrawIndexed(ID3D11DeviceContext* pContext, UINT IndexCount, UINT StartIndexLocation, INT BaseVertexLocation)
    {
    	//if (GetAsyncKeyState(VK_F9) & 1)
    		//Log("DrawIndexed called");
    	
    	//get stride & vdesc.ByteWidth
    	pContext->IAGetVertexBuffers(0, 1, &veBuffer, &Stride, &veBufferOffset);
    	if (veBuffer)
    		veBuffer->GetDesc(&vedesc);
    	if (veBuffer != NULL){ veBuffer->Release(); veBuffer = NULL; }
    
    	//get indesc.ByteWidth
    	pContext->IAGetIndexBuffer(&inBuffer, &inFormat, &inOffset);
    	if (inBuffer)
    		inBuffer->GetDesc(&indesc);
    	if (inBuffer != NULL) { inBuffer->Release(); inBuffer = NULL; }
    	
    	//wallhack example
    	if (Stride == 32 && indesc.ByteWidth == 123456)
    	{
    		SetDepthStencilState(DISABLED);
    		pContext->PSSetShader(psRed, NULL, NULL);
    		phookD3D11DrawIndexed(pContext, IndexCount, StartIndexLocation, BaseVertexLocation);
    		pContext->PSSetShader(psGreen, NULL, NULL);
    		//if (pssrStartSlot == 1) //if black screen, find correct pssrStartSlot
    		SetDepthStencilState(READ_NO_WRITE);
    	}
    	
    	//small bruteforce logger
    	//ALT + CTRL + L toggles logger
    	if (logger)
    	{
    		if ((Stride == 32 || Stride == 36) && (GetAsyncKeyState(VK_F10) & 1))
    			Log("Stride == %d && IndexCount == %d && indesc.ByteWidth == %d && vedesc.ByteWidth == %d && Descr.Format == %d", Stride, IndexCount, indesc.ByteWidth, vedesc.ByteWidth, Descr.Format);
    
    		//hold down P key until a texture is wallhacked, press I to log values of those textures
    		if (GetAsyncKeyState('O') & 1) //-
    			countnum--;
    		if (GetAsyncKeyState('P') & 1) //+
    			countnum++;
    		if ((GetAsyncKeyState(VK_MENU)) && (GetAsyncKeyState('9') & 1)) //reset, set to -1
    			countnum = -1;
    		if (countnum == indesc.ByteWidth / 1000)
    			if (GetAsyncKeyState('I') & 1)
    				Log("Stride == %d && IndexCount == %d && indesc.ByteWidth == %d && vedesc.ByteWidth == %d && Descr.Format == %d", Stride, IndexCount, indesc.ByteWidth, vedesc.ByteWidth, Descr.Format);
    			
    		if (countnum == indesc.ByteWidth / 1000)
    		{
    			SetDepthStencilState(DISABLED);
    			//pContext->RSSetState(rwState);    //wireframe
    			pContext->PSSetShader(psRed, NULL, NULL);
    			phookD3D11DrawIndexed(pContext, IndexCount, StartIndexLocation, BaseVertexLocation);
    			SetDepthStencilState(READ_NO_WRITE);
    			//pContext->RSSetState(rsState);    //solid
    			pContext->PSSetShader(psGreen, NULL, NULL);
    		}
    	}
    	
        return phookD3D11DrawIndexed(pContext, IndexCount, StartIndexLocation, BaseVertexLocation);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11PSSetShaderResources(ID3D11DeviceContext* pContext, UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView *const *ppShaderResourceViews)
    {
    	pssrStartSlot = StartSlot;
    
    	for (UINT j = 0; j < NumViews; j++)
    	{
    		//Resources loop
    		ID3D11ShaderResourceView* pShaderResView = ppShaderResourceViews[j];
    		if (pShaderResView)
    		{
    			pShaderResView->GetDesc(&Descr);
    			//Descr.Buffer.NumElements;
    			//Descr.Format;
    
    			if (
    				(Descr.ViewDimension == D3D11_SRV_DIMENSION_BUFFER)
    				||
    				(Descr.ViewDimension == D3D11_SRV_DIMENSION_BUFFEREX)
    				)
    			{
    				continue;//Skip buffer resources
    			}
    
    		}// if( pShaderResView )
    	}// for
    
    	/*
    	//alternative wallhack example for f'up games
    	if (Descr.Format == 56)
    	{
    		pContext->PSSetShader(psRed, NULL, NULL);
    		SetDepthStencilState(DISABLED);
    	}
    	else
    		if(pssrStartSlot == 1) //if black screen, find correct pssrStartSlot
    		SetDepthStencilState(READ_NO_WRITE);
    	*/
    	return phookD3D11PSSetShaderResources(pContext, StartSlot, NumViews, ppShaderResourceViews);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11CreateQuery(ID3D11Device* pDevice, const D3D11_QUERY_DESC *pQueryDesc, ID3D11Query **ppQuery)
    {
    	//Disable Occlusion which prevents rendering player models through certain objects (used by wallhack to see models through walls at all distances, REDUCES FPS)
    	if (pQueryDesc->Query == D3D11_QUERY_OCCLUSION)
    	{
    		D3D11_QUERY_DESC oqueryDesc = CD3D11_QUERY_DESC();
    		(&oqueryDesc)->MiscFlags = pQueryDesc->MiscFlags;
    		(&oqueryDesc)->Query = D3D11_QUERY_TIMESTAMP;
    
    		return phookD3D11CreateQuery(pDevice, &oqueryDesc, ppQuery);
    	}
    
    	return phookD3D11CreateQuery(pDevice, pQueryDesc, ppQuery);
    }
    
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11Draw(ID3D11DeviceContext* pContext, UINT VertexCount, UINT StartVertexLocation)
    {
    	if (GetAsyncKeyState(VK_F9) & 1)
    		Log("Draw called");
    
    	return phookD3D11Draw(pContext, VertexCount, StartVertexLocation);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11DrawInstanced(ID3D11DeviceContext* pContext, UINT VertexCountPerInstance, UINT InstanceCount, UINT StartVertexLocation, UINT StartInstanceLocation)
    {
    	if (GetAsyncKeyState(VK_F9) & 1)
    		Log("DrawInstanced called");
    
    	return phookD3D11DrawInstanced(pContext, VertexCountPerInstance, InstanceCount, StartVertexLocation, StartInstanceLocation);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11DrawIndexedInstanced(ID3D11DeviceContext* pContext, UINT IndexCountPerInstance, UINT InstanceCount, UINT StartIndexLocation, INT BaseVertexLocation, UINT StartInstanceLocation)
    {
    	if (GetAsyncKeyState(VK_F9) & 1)
    		Log("DrawIndexedInstanced called");
    
    	return phookD3D11DrawIndexedInstanced(pContext, IndexCountPerInstance, InstanceCount, StartIndexLocation, BaseVertexLocation, StartInstanceLocation);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11DrawInstancedIndirect(ID3D11DeviceContext* pContext, ID3D11Buffer *pBufferForArgs, UINT AlignedByteOffsetForArgs)
    {
    	if (GetAsyncKeyState(VK_F9) & 1)
    		Log("DrawInstancedIndirect called");
    
    	return phookD3D11DrawInstancedIndirect(pContext, pBufferForArgs, AlignedByteOffsetForArgs);
    }
    
    //==========================================================================================================================
    
    void __stdcall hookD3D11DrawIndexedInstancedIndirect(ID3D11DeviceContext* pContext, ID3D11Buffer *pBufferForArgs, UINT AlignedByteOffsetForArgs)
    {
    	if (GetAsyncKeyState(VK_F9) & 1)
    		Log("DrawIndexedInstancedIndirect called");
    	
    	return phookD3D11DrawIndexedInstancedIndirect(pContext, pBufferForArgs, AlignedByteOffsetForArgs);
    }
    
    //==========================================================================================================================
    
    const int MultisampleCount = 1; // Set to 1 to disable multisampling
    LRESULT CALLBACK DXGIMsgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ return DefWindowProc(hwnd, uMsg, wParam, lParam); }
    DWORD __stdcall InitializeHook(LPVOID)
    {
    	//Sleep(5000);
    
    	HMODULE hDXGIDLL = 0;
    	do
    	{
    		hDXGIDLL = GetModuleHandle("dxgi.dll");
    		Sleep(8000);
    	} while (!hDXGIDLL);
    	Sleep(100);
    
    	//HMODULE hD3D11DLL = 0;
    	//do
    	//{
    		//hD3D11DLL = GetModuleHandle("d3d11.dll");
    		//Sleep(100);
    	//} while (!hD3D11DLL);
    	//Sleep(1000);
    
        IDXGISwapChain* pSwapChain;
    
    	WNDCLASSEXA wc = { sizeof(WNDCLASSEX), CS_CLASSDC, DXGIMsgProc, 0L, 0L, GetModuleHandleA(NULL), NULL, NULL, NULL, NULL, "DX", NULL };
    	RegisterClassExA(&wc);
    	HWND hWnd = CreateWindowA("DX", NULL, WS_OVERLAPPEDWINDOW, 100, 100, 300, 300, NULL, NULL, wc.hInstance, NULL);
    
    	D3D_FEATURE_LEVEL requestedLevels[] = { D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_10_1 };
    	D3D_FEATURE_LEVEL obtainedLevel;
    	ID3D11Device* d3dDevice = nullptr;
    	ID3D11DeviceContext* d3dContext = nullptr;
    
    	DXGI_SWAP_CHAIN_DESC scd;
    	ZeroMemory(&scd, sizeof(scd));
    	scd.BufferCount = 1;
    	scd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
    	scd.BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED;
    	scd.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED;
    	scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
    
    	scd.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH;
    	scd.OutputWindow = hWnd;
    	scd.SampleDesc.Count = MultisampleCount;
    	scd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
    	scd.Windowed = ((GetWindowLongPtr(hWnd, GWL_STYLE) & WS_POPUP) != 0) ? false : true;
    
    	// LibOVR 0.4.3 requires that the width and height for the backbuffer is set even if
    	// you use windowed mode, despite being optional according to the D3D11 documentation.
    	scd.BufferDesc.Width = 1;
    	scd.BufferDesc.Height = 1;
    	scd.BufferDesc.RefreshRate.Numerator = 0;
    	scd.BufferDesc.RefreshRate.Denominator = 1;
    
    	UINT createFlags = 0;
    #ifdef _DEBUG
    	// This flag gives you some quite wonderful debug text. Not wonderful for performance, though!
    	createFlags |= D3D11_CREATE_DEVICE_DEBUG;
    #endif
    
    	IDXGISwapChain* d3dSwapChain = 0;
    
    	if (FAILED(D3D11CreateDeviceAndSwapChain(
    		nullptr,
    		D3D_DRIVER_TYPE_HARDWARE,
    		nullptr,
    		createFlags,
    		requestedLevels,
    		sizeof(requestedLevels) / sizeof(D3D_FEATURE_LEVEL),
    		D3D11_SDK_VERSION,
    		&scd,
    		&pSwapChain,
    		&pDevice,
    		&obtainedLevel,
    		&pContext)))
    	{
    		MessageBox(hWnd, "Failed to create directX device and swapchain!", "Error", MB_ICONERROR);
    		return NULL;
    	}
    
    
        pSwapChainVtable = (DWORD_PTR*)pSwapChain;
        pSwapChainVtable = (DWORD_PTR*)pSwapChainVtable[0];
    
        pContextVTable = (DWORD_PTR*)pContext;
        pContextVTable = (DWORD_PTR*)pContextVTable[0];
    
    	pDeviceVTable = (DWORD_PTR*)pDevice;
    	pDeviceVTable = (DWORD_PTR*)pDeviceVTable[0];
    
    	if (MH_Initialize() != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pSwapChainVtable[8], hookD3D11Present, reinterpret_cast<void**>(&phookD3D11Present)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pSwapChainVtable[8]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[12], hookD3D11DrawIndexed, reinterpret_cast<void**>(&phookD3D11DrawIndexed)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[12]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pDeviceVTable[24], hookD3D11CreateQuery, reinterpret_cast<void**>(&phookD3D11CreateQuery)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pDeviceVTable[24]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[39], hookD3D11DrawIndexedInstancedIndirect, reinterpret_cast<void**>(&phookD3D11DrawIndexedInstancedIndirect)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[39]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[20], hookD3D11DrawIndexedInstanced, reinterpret_cast<void**>(&phookD3D11DrawIndexedInstanced)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[20]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[21], hookD3D11DrawInstanced, reinterpret_cast<void**>(&phookD3D11DrawInstanced)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[21]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[40], hookD3D11DrawInstancedIndirect, reinterpret_cast<void**>(&phookD3D11DrawInstancedIndirect)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[40]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[13], hookD3D11Draw, reinterpret_cast<void**>(&phookD3D11Draw)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[13]) != MH_OK) { return 1; }
    	if (MH_CreateHook((DWORD_PTR*)pContextVTable[8], hookD3D11PSSetShaderResources, reinterpret_cast<void**>(&phookD3D11PSSetShaderResources)) != MH_OK) { return 1; }
    	if (MH_EnableHook((DWORD_PTR*)pContextVTable[8]) != MH_OK) { return 1; }
    
        DWORD dwOld;
        VirtualProtect(phookD3D11Present, 2, PAGE_EXECUTE_READWRITE, &dwOld);
    
    	while (true) {
    		Sleep(10);
    	}
    
    	pDevice->Release();
    	pContext->Release();
    	pSwapChain->Release();
    
        return NULL;
    }
    
    //==========================================================================================================================
    
    BOOL __stdcall DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpReserved)
    { 
    	switch (dwReason)
    	{
    	case DLL_PROCESS_ATTACH: // A process is loading the DLL.
    		DisableThreadLibraryCalls(hModule);
    		GetModuleFileName(hModule, dlldir, 512);
    		for (size_t i = strlen(dlldir); i > 0; i--) { if (dlldir[i] == '\\') { dlldir[i + 1] = 0; break; } }
    		CreateThread(NULL, 0, InitializeHook, NULL, 0, NULL);
    		break;
    
    	case DLL_PROCESS_DETACH: // A process unloads the DLL.
    		if (MH_Uninitialize() != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pSwapChainVtable[8]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[12]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pDeviceVTable[24]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[39]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[20]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[21]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[40]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[13]) != MH_OK) { return 1; }
    		if (MH_DisableHook((DWORD_PTR*)pContextVTable[8]) != MH_OK) { return 1; }
    		break;
    	}
    	return TRUE;
    }
    
    /*
    dx11 vtable CONTEXT index
    Index: 0 | QueryInterface
    Index: 1 | Addref
    Index: 2 | Release
    Index: 3 | GetDevice
    Index: 4 | GetPrivateData
    Index: 5 | SetPrivateData
    Index: 6 | SetPrivateDataInterface
    Index: 7 | VSSetConstantBuffers
    Index: 8 | PSSetShaderResources
    Index: 9 | PSSetShader
    Index: 10 | SetSamplers
    Index: 11 | SetShader
    Index: 12 | DrawIndexed
    Index: 13 | Draw
    Index: 14 | Map
    Index: 15 | Unmap
    Index: 16 | PSSetConstantBuffer
    Index: 17 | IASetInputLayout
    Index: 18 | IASetVertexBuffers
    Index: 19 | IASetIndexBuffer
    Index: 20 | DrawIndexedInstanced
    Index: 21 | DrawInstanced
    Index: 22 | GSSetConstantBuffers
    Index: 23 | GSSetShader
    Index: 24 | IASetPrimitiveTopology
    Index: 25 | VSSetShaderResources
    Index: 26 | VSSetSamplers
    Index: 27 | Begin
    Index: 28 | End
    Index: 29 | GetData
    Index: 30 | GSSetPredication
    Index: 31 | GSSetShaderResources
    Index: 32 | GSSetSamplers
    Index: 33 | OMSetRenderTargets
    Index: 34 | OMSetRenderTargetsAndUnorderedAccessViews
    Index: 35 | OMSetBlendState
    Index: 36 | OMSetDepthStencilState
    Index: 37 | SOSetTargets
    Index: 38 | DrawAuto
    Index: 39 | DrawIndexedInstancedIndirect
    Index: 40 | DrawInstancedIndirect
    Index: 41 | Dispatch
    Index: 42 | DispatchIndirect
    Index: 43 | RSSetState
    Index: 44 | RSSetViewports
    Index: 45 | RSSetScissorRects
    Index: 46 | CopySubresourceRegion
    Index: 47 | CopyResource
    Index: 48 | UpdateSubresource
    Index: 49 | CopyStructureCount
    Index: 50 | ClearRenderTargetView
    Index: 51 | ClearUnorderedAccessViewUint
    Index: 52 | ClearUnorderedAccessViewFloat
    Index: 53 | ClearDepthStencilView
    Index: 54 | GenerateMips
    Index: 55 | SetResourceMinLOD
    Index: 56 | GetResourceMinLOD
    Index: 57 | ResolveSubresource
    Index: 58 | ExecuteCommandList
    Index: 59 | HSSetShaderResources
    Index: 60 | HSSetShader
    Index: 61 | HSSetSamplers
    Index: 62 | HSSetConstantBuffers
    Index: 63 | DSSetShaderResources
    Index: 64 | DSSetShader
    Index: 65 | DSSetSamplers
    Index: 66 | DSSetConstantBuffers
    Index: 67 | DSSetShaderResources
    Index: 68 | CSSetUnorderedAccessViews
    Index: 69 | CSSetShader
    Index: 70 | CSSetSamplers
    Index: 71 | CSSetConstantBuffers
    Index: 72 | VSGetConstantBuffers
    Index: 73 | PSGetShaderResources
    Index: 74 | PSGetShader
    Index: 75 | PSGetSamplers
    Index: 76 | VSGetShader
    Index: 77 | PSGetConstantBuffers
    Index: 78 | IAGetInputLayout
    Index: 79 | IAGetVertexBuffers
    Index: 80 | IAGetIndexBuffer
    Index: 81 | GSGetConstantBuffers
    Index: 82 | GSGetShader
    Index: 83 | IAGetPrimitiveTopology
    Index: 84 | VSGetShaderResources
    Index: 85 | VSGetSamplers
    Index: 86 | GetPredication
    Index: 87 | GSGetShaderResources
    Index: 88 | GSGetSamplers
    Index: 89 | OMGetRenderTargets
    Index: 90 | OMGetRenderTargetsAndUnorderedAccessViews
    Index: 91 | OMGetBlendState
    Index: 92 | OMGetDepthStencilState
    Index: 93 | SOGetTargets
    Index: 94 | RSGetState
    Index: 95 | RSGetViewports
    Index: 96 | RSGetScissorRects
    Index: 97 | HSGetShaderResources
    Index: 98 | HSGetShader
    Index: 99 | HSGetSamplers
    Index: 100 | HSGetConstantBuffers
    Index: 101 | DSGetShaderResources
    Index: 102 | DSGetShader
    Index: 103 | DSGetSamplers
    Index: 104 | DSGetConstantBuffers
    Index: 105 | CSGetShaderResources
    Index: 106 | CSGetUnorderedAccessViews
    Index: 107 | CSGetShader
    Index: 108 | CSGetSamplers
    Index: 109 | CSGetConstantBuffers
    Index: 110 | ClearState
    Index: 111 | Flush
    Index: 112 | GetType
    Index: 113 | GetContextFlags
    Index: 114 | FinishCommandList
    
    
    // ID3D11 DEVICE virtuals
    *QueryInterface 						0
    *AddRef 								1
    *Release 								2
    *CreateBuffer 							3
    *CreateTexture1D 						4
    *CreateTexture2D 						5
    *CreateTexture3D 						6
    *CreateShaderResourceView				7
    *CreateUnorderedAccessView 				8
    *CreateRenderTargetView 				9
    *CreateDepthStencilView 				10
    *CreateInputLayout 						11
    *CreateVertexShader 					12
    *CreateGeometryShader 					13
    *CreateGeometryShaderWithStreamOutput	14
    *CreatePixelShader 						15
    *CreateHullShader 						16
    *CreateDomainShader						17
    *CreateComputeShader					18
    *CreateClassLinkage 					19
    *CreateBlendState 						20
    *CreateDepthStencilState 				21
    *CreateRasterizerState 					22
    *CreateSamplerState						23
    *CreateQuery 							24
    *CreatePredicate 						25
    *CreateCounter 							26
    *CreateDeferredContext 					27
    *OpenSharedResource 					28
    *CheckFormatSupport 					29
    *CheckMultisampleQualityLevels 			30
    *CheckCounterInfo 						31
    *CheckCounter 							32
    *CheckFeatureSupport 					33
    *GetPrivateData 						34
    *SetPrivateData 						35
    *SetPrivateDataInterface 				36
    *GetFeatureLevel 						37
    *GetCreationFlags 						38
    *GetDeviceRemovedReason 				39
    *GetImmediateContext 					40
    *SetExceptionMode 						41
    *GetExceptionMode 						42
    
    
    // IDXGI SWAPCHAIN virtuals
    [0]    7405CADA    (CMTUseCountedObject<CDXGISwapChain>::QueryInterface)
    [1]    7405C9A7    (CMTUseCountedObject<CDXGISwapChain>::AddRef)
    [2]    7405C9D8    (CMTUseCountedObject<CDXGISwapChain>::Release)
    [3]    7405D6BF    (CDXGISwapChain::SetPrivateData)
    [4]    7405F6FC    (CDXGISwapChain::SetPrivateDataInterface)
    [5]    7405D6AF    (CDXGISwapChain::GetPrivateData)
    [6]    7406106A    (CDXGISwapChain::GetParent)
    [7]    7405EFDE    (CDXGISwapChain::GetDevice)
    [8]    74061BD1    (CDXGISwapChain::Present)
    [9]    740617A7    (CDXGISwapChain::GetBuffer)
    [10]    74065CD6    (CDXGISwapChain::SetFullscreenState)
    [11]    740662DC    (CDXGISwapChain::GetFullscreenState)
    [12]    74061146    (CDXGISwapChain::GetDesc)
    [13]    740655ED    (CDXGISwapChain::ResizeBuffers)
    [14]    74065B8D    (CDXGISwapChain::ResizeTarget)
    [15]    7406197B    (CDXGISwapChain::GetContainingOutput)
    [16]    74066524    (CDXGISwapChain::GetFrameStatistics)
    [17]    74066A58    (CDXGISwapChain::GetLastPresentCount)
    [18]    740612C6    (CDXGISwapChain::GetDesc1)
    [19]    740613E0    (CDXGISwapChain::GetFullscreenDesc)
    [20]    740614F9    (CDXGISwapChain::GetHwnd)
    [21]    7406156D    (CDXGISwapChain::GetCoreWindow)
    [22]    74061D0D    (CDXGISwapChain[::IDXGISwapChain1]::Present1)
    [23]    74062069    (CDXGISwapChain::IsTemporaryMonoSupported)
    [24]    740615BB    (CDXGISwapChain::GetRestrictToOutput)
    [25]    740615FB    (CDXGISwapChain::SetBackgroundColor)
    [26]    740616F1    (CDXGISwapChain::GetBackgroundColor)
    [27]    7406173F    (CDXGISwapChain::SetRotation)
    [28]    74061770    (CDXGISwapChain::GetRotation)
    [29]    7405CC1A    (CMTUseCountedObject<CDXGISwapChain>::`vector deleting destructor')
    [30]    7405181E    (CMTUseCountedObject<CDXGISwapChain>::LUCCompleteLayerConstruction)
    [31]    7405CBA5    (DXGID3D10ETWRundown)
    
    
    // DXGI VTable:
    [0]	6ED3F979	(CMTUseCountedObject<CDXGISwapChain>::QueryInterface)
    [1]	6ED3F84D	(CMTUseCountedObject<CDXGISwapChain>::AddRef)
    [2]	6ED3F77D	(CMTUseCountedObject<CDXGISwapChain>::Release)
    [3]	6ED6A6D7	(CDXGISwapChain::SetPrivateData)
    [4]	6ED6A904	(CDXGISwapChain::SetPrivateDataInterface)
    [5]	6ED72BC9	(CDXGISwapChain::GetPrivateData)
    [6]	6ED6DCDD	(CDXGISwapChain::GetParent)
    [7]	6ED69BF4	(CDXGISwapChain::GetDevice)
    [8]	6ED3FAAD	(CDXGISwapChain::Present)
    [9]	6ED40209	(CDXGISwapChain::GetBuffer)
    [10]	6ED47C1C	(CDXGISwapChain::SetFullscreenState)
    [11]	6ED48CD9	(CDXGISwapChain::GetFullscreenState)
    [12]	6ED40CB1	(CDXGISwapChain::GetDesc)
    [13]	6ED48A3B	(CDXGISwapChain::ResizeBuffers)
    [14]	6ED6F153	(CDXGISwapChain::ResizeTarget)
    [15]	6ED47BA5	(CDXGISwapChain::GetContainingOutput)
    [16]	6ED6D9B5	(CDXGISwapChain::GetFrameStatistics)
    [17]	6ED327B5	(CDXGISwapChain::GetLastPresentCount)
    [18]	6ED43400	(CDXGISwapChain::GetDesc1)
    [19]	6ED6D9D0	(CDXGISwapChain::GetFullscreenDesc)
    [20]	6ED6DA90	(CDXGISwapChain::GetHwnd)
    [21]	6ED6D79F	(CDXGISwapChain::GetCoreWindow)
    [22]	6ED6E352	(?Present1@?QIDXGISwapChain2@@CDXGISwapChain@@UAGJIIPBUDXGI_PRESENT_PARAMETERS@@@Z)
    [23]	6ED6E240	(CDXGISwapChain::IsTemporaryMonoSupported)
    [24]	6ED44146	(CDXGISwapChain::GetRestrictToOutput)
    [25]	6ED6F766	(CDXGISwapChain::SetBackgroundColor)
    [26]	6ED6D6B9	(CDXGISwapChain::GetBackgroundColor)
    [27]	6ED4417B	(CDXGISwapChain::SetRotation)
    [28]	6ED6DDE3	(CDXGISwapChain::GetRotation)
    [29]	6ED6FF85	(CDXGISwapChain::SetSourceSize)
    [30]	6ED6DF4F	(CDXGISwapChain::GetSourceSize)
    [31]	6ED6FCBD	(CDXGISwapChain::SetMaximumFrameLatency)
    [32]	6ED6DBE5	(CDXGISwapChain::GetMaximumFrameLatency)
    [33]	6ED6D8CD	(CDXGISwapChain::GetFrameLatencyWaitableObject)
    [34]	6ED6FB45	(CDXGISwapChain::SetMatrixTransform)
    [35]	6ED6DAD0	(CDXGISwapChain::GetMatrixTransform)
    [36]	6ED6C155	(CDXGISwapChain::CheckMultiplaneOverlaySupportInternal)
    [37]	6ED6E82D	(CDXGISwapChain::PresentMultiplaneOverlayInternal)
    [38]	6ED4397A	(CMTUseCountedObject<CDXGISwapChain>::`vector deleting destructor')
    [39]	6ED4EAE0	(CSwapBuffer::AddRef)
    [40]	6ED46C81	(CMTUseCountedObject<CDXGISwapChain>::LUCBeginLayerDestruction)
    */


    Full Source Download on bottom.
    Scans:
    Jotti
    VirusTotal


    Why nowadays people release code just for some who knows how to work it instead of true old finnish cheats like before. Is this making sense? Its like this turned private foruns instead of public has it allways was. just saying...

Page 1 of 2 12 LastLast

Similar Threads

  1. Any aim to hacks for dirty bomb
    By blacjack2213 in forum Dirty Bomb Hacks & Cheats
    Replies: 1
    Last Post: 07-03-2015, 11:15 AM
  2. I FINALLY GOT THE CLOSED BETA KEY FOR DIRTY BOMB!!!
    By wEFTwefwfefesfefe in forum General
    Replies: 3
    Last Post: 02-21-2015, 02:34 AM
  3. {Giveaway} For Dirty Bomb Beta Key
    By Nero in forum Giveaways
    Replies: 12
    Last Post: 05-29-2014, 09:01 AM
  4. [Patched] uav wallhack work for demolition(after update)
    By DEATHL in forum Alliance of Valiant Arms (AVA) Hacks & Cheats
    Replies: 73
    Last Post: 10-03-2012, 12:42 PM
  5. [Info] The wallhack works for me
    By Gael Monfils in forum CrossFire Hacks & Cheats
    Replies: 19
    Last Post: 01-31-2010, 07:24 AM