项目中常用的D3D黑屏优化讲解和源码分享,DX系列的游戏都可以用
作者:互联网
诸多工作室在项目测试功能稳定后,为了更高效率的 榨干电脑性能 尽可能的多开会选择将画面黑屏,零渲染!!今天我们来拆解分析实现原理和方案
大部分游戏画面渲染基本用的都是DX系列 除了DX9 现在很多游戏也用到了DX11 他们版本有差异 在逆向程序员眼里区别不大。
通过OD就可以查看游戏加载 了哪些模块,很多游戏都有加载d3d9.dll或者d3d11.dll 这也说明了 他们在正向开发过程中用到了 D3D进行了渲染。所以 也就可以在这些模块 里HOOK 劫持修改他的渲染函数 在他的最后一步直接给他渲染成纯黑 从而实现黑屏优化的效果
渲染过程可以大概分为
BeginScene开始渲染
EndScene结束渲染
Present显示后置缓冲的动画
当然 这个过程其实可以给大家每个函数细节分析。这个就放到咱们的课程视频里面了。重点是我们去HOOK Present这个函数
Present函数会最终等待所有绘制命令结束并将结果从back buffer拷贝到front buffer。渲染到游戏窗口
技术难度也不高 无非就是要定位到这个虚函数 然后HOOK一个新的函数替换他 并且在执行完Clear函数在执行原来的Present函数。完整的代码就在公众号里面输入 黑屏优化 获取把
微尘网络安全
专注分享网络安全 x64 c++ 逆向 反汇编 反调试 HOOK 注入 封包 内存等技术
公众号
标签:函数,渲染,HOOK,源码,黑屏,DX,Present,游戏 来源: https://blog.csdn.net/icanda10ge/article/details/122189963