-
-
[原创]在win7 x64下做个复杂的内核绘制(有码续集)
-
发表于:
2018-11-17 18:36
11300
-
[原创]在win7 x64下做个复杂的内核绘制(有码续集)
论坛改版了,我也low一low上一个帖子。
上一贴地址:https://bbs.pediy.com/thread-247671.htm
上一贴的代码和示例demo在附件中。
上一贴中我们最后说到,有些dx9的程序,并不会走到
NtUserHwndQueryRedirectionInfo
这里我们来分析下具体原因是什么, 首先我们找到一款名为: CrossFire的游戏,作为示例。
一通调试分析,找到如下代码
图片可能有点模糊,命中断点位置的代码是
cmp [esi+760],ebx 其中
esi+760 = 0xC2D4118
然而地址 0xC2D4118的值为0, 所以代码会 je D3D9.DLL+7C47
抛开这里往下看,如果没有
je D3D9.DLL+7C47
代码会走进这里
一路跟进去
再跟
最终来到了熟悉的泉水湾(呸), 是
NtUserHwndQueryRedirectionInfo
然而直接走到
D3D9.DLL+7C47 肯定不会经过
NtUserHwndQueryRedirectionInfo
最简单的解决方式肯定是直接把 je
D3D9.DLL+7C47 nop,测试结果如下
很明显,改了之后加载驱动可以直接绘制上这个 基佬色 的方块
然而还原之后
绘制效果消失了
而且在
USER32.HungWindowFromGhostWindow+20处下断点是不会命中的(这不是废话吗)
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2018-11-18 04:49
被万剑归宗编辑
,原因: 图挂了一张