首页
社区
课程
招聘
[原创]Unlimited Break Works 无限硬件中断(薄码,略吐槽)
发表于: 2010-4-17 20:04 28390

[原创]Unlimited Break Works 无限硬件中断(薄码,略吐槽)

2010-4-17 20:04
28390

随着正义力量的不断提升,过去调试器所使用的插int3,利用Drx调试寄存器的硬件中断已经在某些环境下难以正常使用了。各种针对int3和Drx调试寄存器的anti方法使用的越来越多,我们必须使用一种新的没有数量限制的难以被检测的断点设置方式(吐槽:其实是去年看到了某滴水宣传的硬件调试器能不用Drx调试寄存器而且可以下无限硬件断点,心里痒痒但又买不起,最终只能靠自己YY了。这里要感谢cpu大大给我指明了道路,还要感谢群里对我进行各种科普的同志们。)--借助于硬件虚拟化的无限硬件中断(Unlimited Break Works)。

简介
无限硬件中断(Unlimited Break Works)究竟是啥?
虽然名字很牛X但是也没滴水同学宣传的硬件调试器的价格那样吓人,只是一种利用虚拟化手段达到简单模拟硬件中断过程而已。UBW的概念其实很简单,对于硬件执行断点就是以前ollybone(break on excute)的思路改内存页属性然后处理异常来实现,只是细节上有些不同而已。对于内存读写中断也是通过改页属性实现,其实只是把以前idt hook做的事放到vt里去了而已。

运作流程
你需要这样一些材料:一个虚拟化框架(可从各种虚拟化框架中A代码出来,xen,kvm,v大发的dbvmsrc等等),od的sdk一个,ollybone源码或softworm大大的用dep的bone代码若干(因为懒得写pae的处理我这里就直接用ollybone了),耐心少许。

首先你需要把ollybone的ring3部分代码稍做修改后编译好,放着备用。
然后将ollybone的ring0部分代码选取若干放到虚拟化框架中不停搅拌。。。
编译完后还要对虚拟机做初始化的设置
设置完虚拟化初始化环境后重启选择中间那个进入操作系统

这样就能在ollydbg 里使用我们之前写好的插件了


原理与代码
ollybone的做法是首先将断点所在的内存页表的特权级别改为User(在PAE下可开启dep把页表改成不可执行NX)。等代码执行到该页就会产生缺页异常(#PF pagefault)之后和ollybone的做法就有区别了ollybone的做法是对pagefault用idt hook来处理这个异常遇到自己改的页就直接转给Trap01处理这样就断下来了,但是他这样也就能定位到内存页并不能定位到具体的指令。

UBW的做法如下:

UBW在(#DB debug)的处理如下:

这样虽然能做到无限硬件中断但是对系统的消耗很大,性能较低但是相对于bochs已经很高了。

问答
问:LZ你用的好像是AMD的虚拟化为啥不搞Intel的呢?
答:因为LZ乃一介贫民买不起高端的Intel cpu(而且听说某位同学要用intel那个写论文不好和人撞车)。

问:LZ我好崇拜你啊!你的虚拟化框架怎么搞的能否放bin开源?
答:我的虚拟化框架也是从很多开源的框架里A出来的,垃圾的很搞了很久还是很蓝而且会莫名其妙的蓝或者死机(死机什么的最讨厌了~),全靠LZ的高人品才能偶尔出现奇迹得到试验的结果。bin还是先不放了不能祸害大家。

问:LZ你骗人你这虚拟化弄出来后咋调试的,不是没办法调试VT的吗?
答:初期还没有进入虚拟化前可以通过bochs,windbg等尝试些代码研究进入虚拟化。后期进入虚拟化后LZ靠着坚定的信念,和无限死机的觉悟,不断的YY,不断向大大们请教,等稍微稳定后通过vt中将结果放在eax然后注入中断的恶心方法勉强调试着。(吐槽:其实是因为LZ机器没com口而且pci槽也全部用完所造成的)。

问:LZ真傻X啊这明显有个漏洞啊,人家万一把页表属性改回来了怎么办啊?
答:关于这个问题softworm大大的方法是hook KeInterlockedSwapPte,想在vt上搞的话听cpu大大说拦截invlpg指令可以达到相同效果。因为我拦截了之后反而页属性被改回来了(可能是我的代码有问题)所以就没发出来。

问:LZ你这个支持多核吗?支持Vista,win7吗?支持x64吗?
答:不支持我是在关闭一核的情况下试验的。试验环境为xp x86 sp3。vista和win7都没试过。

总结
其实就是把ollybone放到VT里去而已,大大们闭着眼睛都能搞出来了,我就不多啰嗦了(吐槽:发完了好累,继续潜水学VM去了)。
最后求包养,求笼罩,有砖的拍砖,有槽的吐槽,欢迎滴水同学和各位大大前来围观,来的时候放点代码什么的就更好了。

Impossibile arrivare al vero segreto se non ci si accorge di tutto l'amore


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (23)
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
2
完整代码呢?
我是来看代码或者bin的~

带着我的saber改装调试+VT的系统路过
2010-4-17 20:28
0
雪    币: 475
活跃值: (64)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
哎,只有V大来了。本来还以为滴水同学也会过来看看,大家果然对这个不感兴趣了(继续潜水算了)。
2010-4-18 12:15
0
雪    币: 106
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这年头,不但没人开源,连bin都没了
2010-4-18 18:15
0
雪    币: 51
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
连BIN都没了
2010-4-18 18:28
0
雪    币: 24
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这个必须顶,找那个谁谁谁来看看
2010-4-18 20:29
0
雪    币: 70
活跃值: (74)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
现在都搞VT了,唉,落伍了啊。。话说BOSS啥时候让我也做点跟VT相关的项目啊
2010-4-20 11:05
0
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很有想像力啊
2010-10-26 05:37
0
雪    币: 561
活跃值: (124)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
不错啊收下了!
2010-10-26 08:35
0
雪    币: 279
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
名字起的很好
2010-10-26 11:45
0
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
11
强烈希望 三寸法师,放源 困扰此问题好久了
2010-10-26 14:39
0
雪    币: 357
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
系统启动菜单是亮点。
2010-10-26 15:58
0
雪    币: 263
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
挖出来学习下
2011-9-24 16:50
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
14
顶楼主,厉害啊~~~
2011-9-25 00:18
0
雪    币: 222
活跃值: (488)
能力值: ( LV11,RANK:188 )
在线值:
发帖
回帖
粉丝
15

强!!!
2011-9-25 05:24
0
雪    币: 2373
活跃值: (2285)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
16
不错啊,放个代码就无敌了。
2011-9-25 16:27
0
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
17
看图还不太过瘾~~发个DEMO的BIN也行啊~~~
2011-9-26 12:04
0
雪    币: 7514
活跃值: (4744)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
不是月饼节,所以楼主不发饼
2011-9-26 12:44
0
雪    币: 146
活跃值: (182)
能力值: ( LV13,RANK:220 )
在线值:
发帖
回帖
粉丝
19
额 不放bin的没jj
2011-9-26 12:51
0
雪    币: 475
活跃值: (64)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
20
去年的老帖居然被挖出来了,ubw已经结束了,该看fate zero了。
饼和代码什么的都只是梦的延续...
2011-9-26 16:48
0
雪    币: 199
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
法师哥 求代码呐
2011-12-31 19:29
0
雪    币: 30
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
谁有源码呢?急需要啊。
2012-12-12 16:46
0
雪    币: 822
活跃值: (380)
能力值: ( LV12,RANK:310 )
在线值:
发帖
回帖
粉丝
23
好老的坟啊,Fate Zero都结束了,什么时候出heaven feeling啊
2012-12-12 17:14
0
雪    币: 870
活跃值: (2264)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
写的很好
2018-7-26 16:32
0
游客
登录 | 注册 方可回帖
返回
//