【C++】D3D 11 HOOK 懒人版模型透视上色实现 - IMGui 菜单
本帖最后由 Vvvvvoid 于 2022-5-11 00:27 编辑### 关于
此项目也是基于 GayHub 各种借鉴, 当然 也添加了很多自己新的东西
目前支持 x86/64 DX 11 的 HOOK , 其他版本还在调试中..
HOOK 原先是 MinHOOK 做的, 后来改成了Detours
透视+上色 应该是遮挡的部分跟显示出来的部分用不同颜色区分, 这块已经修复,就不换图了
管理大大看到的话帮我缩小下图片吧, 我不会哎..
### 开发环境
- DX SDK
- C++ / VS
- IMGui SDK
- Detours
#### DX 11 HOOK
- Present (画菜单,初始化 ImGUI 设备项,各种变量初始化操作)
- DrawIndexed (操作模型画面渲染 [透视/上色])
#### ImGUI 菜单
如图:
注入 DLL 后, 按 insert 显示菜单
- DrawFov/DrawFiilledFov#画个圆圈,fov_size 为圈的大小
- bg_alpha #设置透明度 范围: 0-1
- FindModel
- FindModelType #查询模型方式
- DrawType #渲染方式
- None #不操作
- DrawZ #禁用Z轴,实现透视效果
- DrawZ&DrawColor # 禁用Z轴 并且上色
- DrawHide # 不渲染,即删除该模型
- FindByTable #懒人方式,通过捕获所有模型渲染记录,之后挨个模型进行渲染筛选
- 需要点 RefreshDrawData 来捕获模型数据, 数据会在下面的列表展示( 注意改选择框点一下有数据就可以关了, 不然会一直捕获,会卡)
- FindBySlider #通过不停的调整Stride/IndexCount/vWidth/pscWidth 来范围过滤模型,进行渲染 (除了Stride 别的都有倍率)
- Detach # unHook , 解绑DLL, 有时候游戏会掉, 不知道为啥
#### 匹配模型,懒人方式 FindByTable
1. 选择FindByTable
2. 选择DrawType 渲染方式
3. 点击 RefreshDrawData, 有数据后立马在点一下关掉,不然一直实时会很卡
4. 快捷键 alt + 0 / ctrl +0 来选择上一个/下一个捕获的模型,届时 模型会按照 2 选择的方式进行渲染
5. 匹配到想要的目标模型,按 end 来记录日志,或者点 Copy按钮复制到剪切板
##### 不同渲染方式效果如图
当前选择的模型:
默认不操作:
透视:
透视上色:
上色:
隐藏:
End 日志记录
#### 匹配模型,模糊匹配方式 FindBySlider
...没时间解释了, 先学会懒人方式,然后在看代码理解这里吧
### 后记
本人是 Java开发, C++ 这块了解甚少,D3D更少, 代码有问题的地方请及时提交ISSUE或者PR 给我, 谢谢~
### Download
DLL:
D3D11_bin_sample:
Src : https://github.com/marlkiller/d3dhook_imgui.git
9152pojie 发表于 2023-1-4 14:28
detours我记得64位的是商用版,32位可以免费用,不晓得现在是不是这样
好像是 github 上开源的 Vvvvvoid 发表于 2023-1-6 09:36
好像是 github 上开源的
嗯,去github上看了一哈,的确开源了。以前x64是商用版 支持下 多谢分享 大佬,用你这个detours需要收钱嘛 好东西,支持啊,多多分享!!! 谢谢分享, 学习下 sam喵喵 发表于 2022-5-10 20:05
大佬,用你这个detours需要收钱嘛
detours 是微软开源的hook框架, 挺好用的 今天的论坛给力好几个不错的软件很期待 好牛逼的样子,支持一下 有用 谢谢分享 感谢分享
页:
[1]
2