项目中常用的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 注入 封包 内存等技术

公众号

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值