首页
社区
课程
招聘
[分享]老文章系列:过Patchguard的梗
发表于: 2014-4-30 04:28 39805

[分享]老文章系列:过Patchguard的梗

2014-4-30 04:28
39805

  这里我研究的问题只有Patchguard怎么让丫去死,至于DSE这种东西,随便找个过时的有任意代码执行问题的驱动(比如DCR,VBOX,金山某士)去Patch一下CI就可以了。今天我也不是来跟人分享VMX或者patch文件那些无功夫的过PG手法。
  我今天要做的是继续以前老外的pg的梗(由于我的笔记本跑win8不能10秒开机,所以只能用win7来撸)。
  老外有几篇关于PG攻击的文章:
  http://www.mcafee.com/in/resources/reports/rp-defeating-patchguard.pdf
  http://www.uninformed.org/?v=3&a=3&t=sumry
  http://www.uninformed.org/?v=8&a=5&t=sumry
  http://www.zer0mem.sk/?p=271
  
  不过统统不能解决真正的问题,最后一个连接除外。不过其中的分析让我们知道两件事儿,第一件事儿是PG的蓝屏是通过DPC或者TIMER调用KeBugCheckEx来的。第二件事儿是PG调用KeBugCheckEx的时候,会恢复KeBugCheckEx上的修改。
  通过读老外的文章我们知道通过DPC来的必须经过KiRetireDpcList这个玩意才能到达蓝屏(而通过TIMER来的经过的函数比较奇怪,这里也不想管他)。
  老外有一个思路就是hook KeBugCheckEx来处理TIMER的PG引发的0x109蓝屏,但是因为KeBugCheckEx有恢复hook的可能(新的PG是复制了BugCheck的代码),所以我选择了一个KeBugCheckEx内部的调用的函数来进行挂钩,然后通过堆栈读出RCX判断一下错误号,这个调用函数也是老外早就提供好的就是RtlCaptureContext。
  
  到这里我都和老外的思路近似,之后后面就不一样了。我只有2个hook点,我不想判断DPC是不是PG的,也不研究线程TIMER的枚举,我直接在KiRetireDpcList这里保存运行环境(CONTEXT),然后继续调用KiRetireDpcList代码,然后保存的恢复运行环境(RIP修好)。
  如果发生了0x109蓝屏,那么经过我挂钩的RtlCaptureContext时,我主动插入一个DPC到DPC链条去,然后恢复保存的CONTEXT到Call KiRetireDpcList处的去重新执行的话(也就是说,把时光倒流了),这时候PG就无法蓝屏了。但是这里有一个小问题,如果来自线程TIMER的PG蓝屏,则不能开蜘蛛的大招 回到过去 去Pass掉TIMER。不过windows的机制让我知道如果在pg的timer里的时候,IRQL应该是PASSIVE级别的,在PASSIVE级别的话,可以将整个执行流程跳入线程开始去直接运行(这点是老外的资料里发现然后结合windbg调试出来的)。
  
  那么我绕过PG的工具设计思路就是:

//有2个hook点!
//RtlCaptureContext-->保存ecx等物-->OrgCap-->ProcPatchGuard-->其他
//											-->ECX==109 ,来自BugCheck-->修复STACK,重新插入空DPC
//																		-->如果IRQL是PASSIVE,则CallPointer去
//																		-->不是PASSIVE,则恢复环境-->到KiRetireDpcList重新执行DPC序列
//KiRetireDpcList -->保存环境-->原始-->还原环境
//

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

收藏
免费 6
支持
分享
最新回复 (65)
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
2
仅以此文献给我死去多年的“噬身之蛇”QQ群以及那个被叫做UROBOROS的项目~
2014-4-30 04:51
0
雪    币: 1626
活跃值: (148)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
Thanks for share
2014-4-30 05:46
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
so great
2014-4-30 07:31
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我第一次离v大这么近,是个板凳耶
2014-4-30 07:35
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
6
movdqa  貌似是SSE指令
还没用过这种高级指令 学习了
2014-4-30 07:49
0
雪    币: 211
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
v大v5,我等小菜5.1有事干了。3ks
2014-4-30 07:54
0
雪    币: 68
活跃值: (104)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
V大顶你
2014-4-30 07:59
0
雪    币: 219
活跃值: (783)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
9
看见一个重来没见过的指令 v5
2014-4-30 08:07
0
雪    币: 69
活跃值: (242)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wmg
10
好东西,学习了~~
2014-4-30 08:29
0
雪    币: 135
活跃值: (63)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11
占座学习
噬身之蛇好像是碧轨psp汉化组的名字,是一个吗。
2014-4-30 08:49
0
雪    币: 100
活跃值: (328)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
4点。。。大牛都不用睡觉的吗?   膜拜
2014-4-30 09:21
0
雪    币: 95
活跃值: (119)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
大部分都看不懂,,,,,,
2014-4-30 09:21
0
雪    币: 615
活跃值: (590)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
14
这种文章,这种作者,无条件顶起,,,,,,,,这么好的文章是不是要交点稿费呀
2014-4-30 09:24
0
雪    币: 208
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
看不懂啊,已经对windows无爱了。
2014-4-30 09:36
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
V神就是牛逼,但要注意身体啊。、
2014-4-30 09:40
0
雪    币: 608
活跃值: (648)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
噬身之蛇....好吧
2014-4-30 09:57
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
18
老V霸气侧漏哇,4点钟还在搞
2014-4-30 10:12
0
雪    币: 269
活跃值: (906)
能力值: ( LV12,RANK:345 )
在线值:
发帖
回帖
粉丝
19
“噬身之蛇”是不是”大蛇丸“的代号?
2014-4-30 10:15
0
雪    币: 135
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
老V,给我感觉就像<来自星星的你>。。。。
2014-4-30 10:19
0
雪    币: 8188
活跃值: (2847)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
21
2003 x64不能使用,其他就不试了
2014-4-30 10:55
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
21楼。。。。。。。。。。。
2014-4-30 11:19
0
雪    币: 2774
活跃值: (3129)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
大部分都看不懂
2014-4-30 13:25
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
24
2003 x64的汇编代码有点区别,另外说句,你用的代码和这里的代码有好多行不一样的~
这个代码2003里不出PG蓝屏只出1E的~
2014-4-30 13:40
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
这就是传说中的天书么
2014-4-30 13:51
0
游客
登录 | 注册 方可回帖
返回
//