首页
社区
课程
招聘
[原创]HOOK DXGI GetBuffer实现dwm反截图 内容详细的一批
发表于: 2023-4-24 12:04 16803

[原创]HOOK DXGI GetBuffer实现dwm反截图 内容详细的一批

2023-4-24 12:04
16803


在家天天玩游戏 无聊的一~ 在一个风和日丽的下午 我躺在床上玩手机 偶然间看到一个交流群里面 有人在收所谓的dwm反截图 于是就起来研究了一番


        先这样 再内样 最后那样 就搞定啦~

  

还是不开玩笑 直接上   GitHub - lainswork/dwm-screen-shot: 将shellcode注入dwm.exe以进行屏幕截取 在这个开源项目中 你将会看到他下载了当前系统版本dxgi模块的pdb文件 并从中寻找了4个地址   


 地址都有了  第一件事情 当然是丢到ce去看看他撒嘛个情况喽



好像 4个值是一样的 ....  那我们试着下个断点  看看是啥情况   

直接说结果: 前三个地址断不下来  点击测试截图  按钮后  其中第1或2或3 的地址指向的空间会被清除    至于为什么会被清除...大家可以去那个开源项目研究研究      


嘶~  好吧  不过是 在不同版本的系统实测中  第四个地址 永远不会变  BUT...... 第四个 我发现处理第四个没啥用的  因为第四个一直被调用着  随时能断下来



大家对dwm下断 请做好卡死的准备 毕竟是处理所有窗口的程序 一旦停止了 你的画面也就无了~



那么 眼尖 又懒惰 的小伙伴    可能注意到了 前三个地址在截图时的变化   那我们是不是可以在截图的时候不绘制呢




欸 是不是可以利用这个思路进行反截图呢    



欸还真可以(在我的电脑上...WIN11 22H2)


然后我就兴致勃勃的发给朋友试了   欸 您猜怎么着    他的绘制会消失一会儿  但是等恢复回来的时候 就刚好被截图到了....


好吧 还是不能走歪门邪道  我们还是老老实实看看那4个地址对应的啥函数吧 ~


OK 我们直接使用dumpbin工具获取到pdb内容  



dumpbin工具 使用方法如下 :  1.打开vs   2.工具->命令行->开发者命令提示   然后出来了一个窗口 在里面输入

dumpbin /all "路径\dxgi.dll">D:\储存dump的文件.txt  注意dxgi的pdb要跟dll同目录  





ok回归正题  


在PDB文件中 找到了4个地址对应的虚函数名



第一个函数是PresentFullscreenFlip 第二个是 CDXGISwapChain::Present 第三个是PresentDWM@CDXGISwapChain 第四个是PresentMultiplaneOverlay


嘶~ 



在Bing后 在Baidu后   在Google后 再问过ChatGPT之后 我发现 这4个函数对我来说 用处不大~


于是我们退而求其次  去Bing一下 正常截图的方法 



有一种比较简单的想法能比较快速的实现DirectX11 程序运行截图。

在当前场景帧进行Present()操作之前,渲染结果存储在交换链(Swap Chain)的后缓冲区中。我们定义一个Texture2D 对象,调用IDXGISwapChain类中的GetBuffer()方法可以将当前后缓冲区的绘制结果复制到该Texture2D对象中:


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 6
支持
分享
最新回复 (15)
雪    币: 412
活跃值: (668)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
补充一下  GetBuffer本身是个IDXGISwapChain的虚函数  所以第一个参数应该是IDXGISwapChain的指针
2023-4-24 12:51
1
雪    币: 6394
活跃值: (4637)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持
2023-4-24 13:24
0
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
如果是为了过dwm screen这个项目的截图,那么直接hook RtrlUser线程入口点拦截掉这个线程就行了,或者针对源码去做一些拦截,如果是为了搞TslGame,那么X3不只是这一个地方,他有三种Hook点的截图方案, 单纯只绕过这一个点是没啥作用的,为了防止lz被挂哥追杀,建议匿掉
2023-4-24 13:53
2
雪    币: 1671
活跃值: (215852)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
tql
2023-4-24 14:03
0
雪    币: 1363
活跃值: (1989)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
Tql
2023-4-24 14:48
0
雪    币: 178
活跃值: (1288)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
Jsssss 如果是为了过dwm screen这个项目的截图,那么直接hook RtrlUser线程入口点拦截掉这个线程就行了,或者针对源码去做一些拦截,如果是为了搞TslGame,那么X3不只是这一个地方,他有三 ...
谨慎发言。不然又会出现 10万一只手的言论了
2023-4-24 15:39
0
雪    币: 1483
活跃值: (14662)
能力值: ( LV12,RANK:380 )
在线值:
发帖
回帖
粉丝
8
hackflame 谨慎发言。不然又会出现 10万一只手的言论了[em_19]
火哥我要给你生猴子
2023-4-24 16:09
0
雪    币: 798
活跃值: (1138)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
hackflame 谨慎发言。不然又会出现 10万一只手的言论了[em_19]
火哥我要给你生猴子
2023-6-27 10:19
0
雪    币: 213
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
无语了家人
2023-6-27 10:23
0
雪    币: 140
活跃值: (451)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
SSH山水画 火哥我要给你生猴子
我要给你生猴子+1
2023-7-5 21:41
0
雪    币: 3535
活跃值: (31016)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
mark
2023-7-6 11:06
1
雪    币: 1825
活跃值: (5354)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13

都欺负到你家老窝里了, 进你家里卧室偷拍摄像, 底层玩家还连屁都不敢放. 告它啊?!干它啊?!把立法权从流氓奸商手里夺回来啊.还在你电脑上挂钩子, 你怎么忍的???

最后于 2023-7-6 11:13 被PEDIY编辑 ,原因:
2023-7-6 11:11
0
雪    币: 50
活跃值: (557)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这是注入dwm了吗
2024-5-8 07:13
0
雪    币: 535
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
感谢分享
2024-7-14 17:56
0
雪    币: 0
活跃值: (171)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
使用 dwm-screen ,针对外挂的视图,还是截取不到呢
2024-8-7 11:21
0
游客
登录 | 注册 方可回帖
返回
//