FPS游戏透视源码!
2011年10月03日
  需要的自己拿 ,部分插件需要自己给路径!~你懂的 C语言编译环境哈!#include
  #include
  #pragma comment(lib, "d3d9.lib")
  #include
  #pragma comment(lib, "d3dx9.lib")
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  ...................\....\d3d8.h
  ...................\....\d3d8dev.cpp
  ...................\....\d3d8dev.h
  ...................\....\d3d8int.cpp
  ...................\....\d3d8int.h
  ...................\....\d3d8tex.cpp
  ...................\....\d3d8tex.h
  ...................\....\main.cpp
  ...................\....\main.h
  ...................\....\old_workspace\TatniumD3D.dsp
  ...................\....\.............\TatniumD3D.dsw
  ...................\....\TatniumD3D.sln
  ...................\....\TatniumD3D.suo
  ...................\....\TatniumD3D.vcproj
  ...................\...9\d3d9.cpp
  ...................\....\d3d9.h
  ...................\....\d3d9dev.cpp
  ...................\....\d3d9dev.h
  ...................\....\d3d9int.cpp
  ...................\....\d3d9int.h
  ...................\....\d3d9tex.cpp
  ...................\....\d3d9tex.h
  ...................\....\main.cpp
  ...................\....\main.h
  ...................\....\old_workspace\TatniumD3D.dsp
  ...................\....\.............\TatniumD3D.dsw
  ...................\....\TatniumD3D.sln
  ...................\....\TatniumD3D.suo
  ...................\....\TatniumD3D.vcproj
  ...................\D3D_Starterkit_v3.0b\d3d8\d3d8.cpp
  ...................\....................\....\d3d8.h
  ...................\....................\....\d3d8dev.cpp
  ...................\....................\....\d3d8dev.h
  ...................\....................\....\d3d8int.cpp
  ...................\....................\....\d3d8int.h
  ...................\....................\....\d3d8tex.cpp
  ...................\....................\....\d3d8tex.h
  ...................\....................\....\main.cpp
  ...................\....................\....\main.h
  ...................\....................\....\old_workspace\TatniumD3D.dsp
  ...................\....................\....\.............\TatniumD3D.dsw
  ...................\....................\....\TatniumD3D.sln
  ...................\....................\....\TatniumD3D.suo
  ...................\....................\....\TatniumD3D.vcproj
  ...................\....................\...9\d3d9.cpp
  ...................\....................\....\d3d9.h
  ...................\....................\....\d3d9dev.cpp
  ...................\....................\....\d3d9dev.h
  ...................\....................\....\d3d9int.cpp
  ...................\....................\....\d3d9int.h
  ...................\....................\....\d3d9tex.cpp
  ...................\....................\....\d3d9tex.h
  ...................\....................\....\main.cpp
  ...................\....................\....\main.h
  ...................\....................\....\old_workspace\TatniumD3D.dsp
  ...................\....................\....\.............\TatniumD3D.dsw
  ...................\....................\....\TatniumD3D.sln
  ...................\....................\....\TatniumD3D.suo
  ...................\....................\....\TatniumD3D.vcproj
  ...................\....................\Injector\forcelib\ForceLib.h
  ...................\....................\........\........\ForceLibrary.cpp
  ...................\....................\........\........\TH32.cpp
  ...................\....................\........\........\TH32.h
  ...................\....................\........\main.cpp
  ...................\....................\........\old_workspace\TatniumInjector.dsp
  ...................\....................\........\.............\TatniumInjector.dsw
  ...................\....................\........\resource.aps
  ...................\....................\........\resource.h
  ...................\....................\........\resource.rc
  ...................\....................\........\TatniumInjector.ncb
  ...................\....................\........\TatniumInjector.sln
  ...................\....................\........\TatniumInjector.suo
  ...................\....................\........\TatniumInjector.vcproj
  ...................\....................\........\TatniumLoader.ico
  ...................\....................\ReadMe.rtf
  ...................\....................\Wrapper\D3D8\d3d8.def
  ...................\....................\.......\....\main.cpp
  ...................\....................\.......\...9\d3d9.def
  ...................\....................\.......\....\main.cpp
  ...................\Injector\forcelib\ForceLib.h
  ...................\........\........\ForceLibrary.cpp
  ...................\........\........\TH32.cpp
  ...................\........\........\TH32.h
  ...................\........\main.cpp
  ...................\........\old_workspace\TatniumInjector.dsp
  ...................\........\.............\TatniumInjector.dsw
  ...................\........\resource.aps
  ...................\........\resource.h
  ...................\........\resource.rc
  ...................\........\TatniumInjector.ncb
  ...................\........\TatniumInjector.sln
  ...................\........\TatniumInjector.suo
  ...................\........\TatniumInjector.vcproj
  ...................\........\TatniumLoader.ico
  ...................\ReadMe.rtf
  ...................\Wrapper\D3D8\d3d8.def
  ...................\.......\....\main.cpp
  ...................\.......\...9\d3d9.def
  ...................\.......\....\main.cpp
  #pragma warning(disable:4996)
  //-----------//
  bool fCall = true;
  bool Chams = true;
  IDirect3DPixelShader9 *Front,
  *Back;
  //----------//
  HRESULT CreateMyShader(IDirect3DPixelShader9 **pShader, IDirect3DDevice9 *Device, float red, float green, float blue, float alpha )
  {
  ID3DXBuffer *MyBuffer = NULL;
  char MyShader[ 256 ];
  sprintf( MyShader, "w21k3r.10.01.13\ndef c0, %f, %f, %f, %f\nmov r0,c0", red/255, green/255, blue/255, alpha/255 );
  D3DXAssembleShader( MyShader, sizeof( MyShader ), NULL, NULL, 0, &MyBuffer , NULL );
  if( FAILED( Device->CreatePixelShader((const DWORD*)MyBuffer ->GetBufferPointer(), pShader)) )return E_FAIL;
  return S_OK;
  }
  //=====================================================================================
  typedef HRESULT (WINAPI* CreateDevice_Prototype) (LPDIRECT3D9, UINT, D3DDEVTYPE, HWND, DWORD, D3DPRESENT_PARAMETERS*, LPDIRECT3DDEVICE9*);
  typedef HRESULT (WINAPI* Reset_Prototype) (LPDIRECT3DDEVICE9, D3DPRESENT_PARAMETERS*);
  typedef HRESULT (WINAPI* EndScene_Prototype) (LPDIRECT3DDEVICE9);
  typedef HRESULT (WINAPI* DrawIndexedPrimitive_Prototype)(LPDIRECT3DDEVICE9, D3DPRIMITIVETYPE, INT, UINT, UINT, UINT, UINT);
  CreateDevice_Prototype CreateDevice_Pointer = NULL;
  Reset_Prototype Reset_Pointer = NULL;
  EndScene_Prototype EndScene_Pointer = NULL;
  DrawIndexedPrimitive_Prototype DrawIndexedPrimitive_Pointer = NULL;
  HRESULT WINAPI Direct3DCreate9_VMTable (VOID);
  HRESULT WINAPI CreateDevice_Detour (LPDIRECT3D9, UINT, D3DDEVTYPE, HWND, DWORD, D3DPRESENT_PARAMETERS*, LPDIRECT3DDEVICE9*);
  HRESULT WINAPI Reset_Detour (LPDIRECT3DDEVICE9, D3DPRESENT_PARAMETERS*);
  HRESULT WINAPI EndScene_Detour (LPDIRECT3DDEVICE9);
  HRESULT WINAPI DrawIndexedPrimitive_Detour(LPDIRECT3DDEVICE9, D3DPRIMITIVETYPE, INT, UINT, UINT, UINT, UINT);
  DWORD WINAPI VirtualMethodTableRepatchingLoopToCounterExtensionRepatching(LPVOID);
  PDWORD Direct3D_VMTable = NULL;
  //=====================================================================================
  BOOL WINAPI DllMain(HINSTANCE hinstModule, DWORD dwReason, LPVOID lpvReserved)
  {
  if(dwReason == DLL_PROCESS_ATTACH)
  {
  DisableThreadLibraryCalls(hinstModule);
  if(Direct3DCreate9_VMTable() == D3D_OK)
  return TRUE;
  }
  return FALSE;
  }
  //=====================================================================================
  HRESULT WINAPI Direct3DCreate9_VMTable(VOID)
  {
  LPDIRECT3D9 Direct3D_Object = Direct3DCreate9(D3D_SDK_VERSION);
  if(Direct3D_Object == NULL)
  return D3DERR_INVALIDCALL;
  Direct3D_VMTable = (PDWORD)*(PDWORD)Direct3D_Object;
  Direct3D_Object->Release();
  DWORD dwProtect;
  if(VirtualProtect(&Direct3D_VMTable[16], sizeof(DWORD), PAGE_READWRITE, &dwProtect) != 0)
  {
  *(PDWORD)&CreateDevice_Pointer = Direct3D_VMTable[16];
  *(PDWORD)&Direct3D_VMTable[16] = (DWORD)CreateDevice_Detour;
  if(VirtualProtect(&Direct3D_VMTable[16], sizeof(DWORD), dwProtect, &dwProtect) == 0)
  return D3DERR_INVALIDCALL;
  }
  else
  return D3DERR_INVALIDCALL;
  return D3D_OK;
  }
  //=====================================================================================
  HRESULT WINAPI CreateDevice_Detour(LPDIRECT3D9 Direct3D_Object, UINT Adapter, D3DDEVTYPE DeviceType, HWND FocusWindow,
  DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* PresentationParameters,
  LPDIRECT3DDEVICE9* Returned_Device_Interface)
  {
  HRESULT Returned_Result = CreateDevice_Pointer(Direct3D_Object, Adapter, DeviceType, FocusWindow, BehaviorFlags,
  PresentationParameters, Returned_Device_Interface);
  DWORD dwProtect;
  if(VirtualProtect(&Direct3D_VMTable[16], sizeof(DWORD), PAGE_READWRITE, &dwProtect) != 0)
  {
  *(PDWORD)&Direct3D_VMTable[16] = *(PDWORD)&CreateDevice_Pointer;
  CreateDevice_Pointer = NULL;
  if(VirtualProtect(&Direct3D_VMTable[16], sizeof(DWORD), dwProtect, &dwProtect) == 0)
  return D3DERR_INVALIDCALL;
  }
  else
  return D3DERR_INVALIDCALL;
  if(Returned_Result == D3D_OK)
  {
  Direct3D_VMTable = (PDWORD)*(PDWORD)*Returned_Device_Interface;
  *(PDWORD)&Reset_Pointer = (DWORD)Direct3D_VMTable[16];
  *(PDWORD)&EndScene_Pointer = (DWORD)Direct3D_VMTable[42];
  *(PDWORD)&DrawIndexedPrimitive_Pointer = (DWORD)Direct3D_VMTable[82];
  if(CreateThread(NULL, 0, VirtualMethodTableRepatchingLoopToCounterExtensionRepatching, NULL, 0, NULL) == NULL)
  return D3DERR_INVALIDCALL;
  }
  return Returned_Result;
  }
  //=====================================================================================
  HRESULT WINAPI Reset_Detour(LPDIRECT3DDEVICE9 Device_Interface, D3DPRESENT_PARAMETERS* PresentationParameters)
  {
  return Reset_Pointer(Device_Interface, PresentationParameters);
  }
  //=====================================================================================
  HRESULT WINAPI EndScene_Detour(LPDIRECT3DDEVICE9 Device_Interface)
  {
  return EndScene_Pointer(Device_Interface);
  }
  //=====================================================================================
  HRESULT WINAPI DrawIndexedPrimitive_Detour(LPDIRECT3DDEVICE9 Device_Interface, D3DPRIMITIVETYPE Type, INT BaseIndex,
  UINT MinIndex, UINT NumVertices, UINT StartIndex, UINT PrimitiveCount)
  {
  LPDIRECT3DVERTEXBUFFER9 Stream_Data;
  UINT Offset = 0;
  UINT Stride = 0;
  if(Device_Interface->GetStreamSource(0, &Stream_Data, &Offset, &Stride) == D3D_OK)
  Stream_Data->Release();
  if(fCall)
  {
  CreateMyShader( &Front, Device_Interface, 255, 0, 0, 255 );
  CreateMyShader( &Back, Device_Interface, 255, 255, 0, 255 );
  fCall = false;
  }
  if ( GetAsyncKeyState ( VK_NUMPAD1 ) &1 )
  {
  Chams = !Chams;
  }
  if(Chams && (Stride == 32 && StartIndex == 0))
  {
  DWORD dwOldZEnable = D3DZB_TRUE;
  Device_Interface->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
  Device_Interface->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
  Device_Interface->SetPixelShader( Front );
  DrawIndexedPrimitive_Pointer(Device_Interface, Type, BaseIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount);
  Device_Interface->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);
  Device_Interface->SetPixelShader( Back );
  }
  return DrawIndexedPrimitive_Pointer(Device_Interface, Type, BaseIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount);
  }
  //=====================================================================================
  DWORD WINAPI VirtualMethodTableRepatchingLoopToCounterExtensionRepatching(LPVOID Param)
  {
  UNREFERENCED_PARAMETER(Param);
  while(1)
  {
  Sleep(100);
  *(PDWORD)&Direct3D_VMTable[42] = (DWORD)EndScene_Detour;
  *(PDWORD)&Direct3D_VMTable[82] = (DWORD)DrawIndexedPrimitive_Detour;
  *(PDWORD)&Direct3D_VMTable[16] = (DWORD)Reset_Detour;
  }
  return 1;
  【本人QQ632437657】

FPS游戏透视源码!相关推荐

  1. 【Python游戏】用Python基于centernet在win10平台开发,射击游戏 | 附带源码

    相关文件 想学Python的小伙伴可以关注小编的公众号[Python日志] 有很多的资源可以白嫖的哈,不定时会更新一下Python的小知识的哈!! 需要源码的小伙伴可以在公众号回复射击游戏 Pytho ...

  2. 2019年4月份整理的Unity3D游戏完整源码

    Unity3D ×××游戏完整源码 GI Racing 2 http://www.idoubi.net/unity3d/complete-project/3570.html Unity3D 街机几何跳 ...

  3. python跑酷游戏源码_Phaser.js实现简单的跑酷游戏附源码下载

    采用的物理引擎是Phaser.js 在这里对此引擎不做过多介绍(因为我也是小白,嘿嘿) 效果展示: 源码(详细源码图片资源可点击文章下方或屏幕右上方的github链接进行clone) 1.创建游戏舞台 ...

  4. java手机象棋软件下载,Java手机网络版象棋游戏附源码JAVA游戏源码下载

    运行于手机上的中国象棋游戏,鉴于JAVA J2ME技术,本游戏分服务端和客户端,导入JAR包即可在手机上运行,内有开发文档和运用说明. Java手机网络版象棋游戏附源码 (1 folders, 2 f ...

  5. 星益小游戏平台源码 内置80多个在线小游戏

    简介: 星益小游戏平台源码是一款星益在线小游戏可的网站源码,本程序由小星合集整理制作,共计80个小游戏. 内置了80个在线小游戏,直接就能玩耍,上传到空间用! 本程序大部分都是自适应,但是使用电脑端体 ...

  6. python小游戏-16行代码实现3D撞球小游戏!-源码下载

    python小游戏-16行代码实现3D撞球小游戏!-源码下载 所属网站分类: 资源下载 > python小游戏 作者:搞笑 链接: http://www.pythonheidong.com/bl ...

  7. c语言贪吃蛇游戏编程视频教程,C语言贪吃蛇游戏精典源码 - 视频教程 - VC中文网-VC-MFC编程论坛 - Powered by Discuz!...

    19f700059b660539d5dc (38.08 KB, 下载次数: 0) 2017-11-14 16:28 上传 C语言贪吃蛇游戏精典源码 19f500058fe8fcaf675a (2.98 ...

  8. python 传奇服务端_传奇游戏服务器源码学习

    依据传奇游戏服务器源码总结了一下服务器开发中比较关心的一些问题. (1)线程之间的共享数据如何同步 CIntLock封装了临界区管理,包含了Lock()和Unlock()两个操作函数,所有 需要同步的 ...

  9. 微信网页小游戏网站源码带后台+可后台添加游戏+推荐到微信

    微信网页小游戏网站源码带后台,淘宝上卖的很火的源码,免费公开!

最新文章

  1. pxe linux 配置文件,Linux PXE 部署
  2. 【Kotlin】Kotlin Sealed 密封类 ( 密封类声明 | 密封类子类定义 | 密封类特点 | 代码示例 )
  3. python测试代码性能_使用python timeit 模块检测代码性能
  4. Halcon:二维仿射变换实例探究
  5. syslog可能引起得问题_牙齿经常有问题?可能是这4个坏习惯引起的,要改正
  6. hdu 4970 killing monster 代代相传刷qq 不用线段树啦~
  7. C++字符串的不同存放类型 (string/char[])
  8. mysql 动态创建事件_mysql 通过事件定时为数据库创建动态表名
  9. 8.Linux 高性能服务器编程 --- 高性能服务器程序框架
  10. CVPR2022 | 利用域自适应思想,北大、字节跳动提出新型弱监督物体定位框架
  11. 十大免费SSL证书:网站免费添加HTTPS加密
  12. FireMonkey TListView的用法二:ItemAppearance为客制化外观Custom
  13. ERP项目组成员及各项目组职责
  14. 十年之痛解读日本房地产泡沫
  15. oracle修改日历,oracle 日历
  16. 中职计算机应用专业(大数据方向)建设实践
  17. python表示三个数升序_编写程序,输入三个数,然后以升序显示_学小易找答案
  18. 计算机软件著作权的保护对象是什么
  19. 虚拟服务器路由器当交换机可以吗,怎么把无线路由器设置成无线交换机_路由器当交换机怎么设置方法-192路由网...
  20. fiddler4抓包修改Request,断点设置

热门文章

  1. 什么属于配对数据,什么属于非配对数据
  2. Emlog程序小刀娱乐网同款顶踩插件
  3. day12函数进阶作业
  4. 基于STM32的ModbusRtu通信--终极Demo设计(二)
  5. 《计算方法》复习重点归纳
  6. 针对个体的精准神经影像—当前的方法和未来方向
  7. LeetCode之路
  8. Django 前后端分离实战项目 生鲜超市(七)之Vue展示商品分类数据和搜索
  9. python免费课程400节-海口初中生信息学奥赛培训机构
  10. 基于Autosar 架构设计思想