首页
社区
课程
招聘
[讨论]全系统模拟调试器设想
发表于: 2018-1-24 15:56 8404

[讨论]全系统模拟调试器设想

2018-1-24 15:56
8404

目前OD GDB 等调试器都是基于系统本身的调试接口调试机制。

缺点主要有: 很难绕过各种千奇百怪的反调试措施,无法支持多种系统目标文件。OD只能在调试WINDOWS GDB 只能调试linux程序。无法跟进入系统内核调试。

假设底层通过virtualbox,qemu,simics这种全系统模拟器,模拟整个系统执行,在这一层之上增加调试接口。
由于全系统都是模拟的理论上我们可以控制整个系统的任意一条指令,修改监测都可以,可以从系统级别监测到程序的内存运行状况,甚至跟进到内核调试。

这样一来:
1 底层模拟器可以模拟支持各种系统的目标linux windows PC 以及 安卓 等移动设备 等平台。
由于这种调试器是上帝视角:

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (24)
雪    币: 4230
活跃值: (1435)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
2
类似  hypervisor  debugging
2018-1-24 16:11
0
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
vmware自带调试接口,IDA就可以从bios时就开始调试。 检测嘛,还是能检测的,比如检测硬件或者驱动
2018-1-24 16:13
0
雪    币: 1392
活跃值: (5202)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
4
BDomne 类似 hypervisor debugging
风河的simics  等等  很多都是用在特定行业  专门针对逆向行业的估计没有。
2018-1-24 16:37
0
雪    币: 1392
活跃值: (5202)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
5
AASSMM vmware自带调试接口,IDA就可以从bios时就开始调试。 检测嘛,还是能检测的,比如检测硬件或者驱动
尽量使用开源的,比如virtualbox  一切都把控在自己手中。就是工程太繁了
2018-1-24 16:38
0
雪    币: 1392
活跃值: (5202)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
6
由于调试接口是上层设计的,闭源提供的一些接口不一定满足调试要求
2018-1-24 16:41
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
7
以前也有过类似的想法,不过鉴于难度大,放弃了。。。
2018-1-24 19:00
0
雪    币: 1385
活跃值: (5609)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
8
这不就是想做蓝叠的工作么。
2018-1-26 13:33
0
雪    币: 319
活跃值: (1096)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
9
没理解错的话,你这说的就是使用VT技术的调试器。
2018-1-26 14:21
0
雪    币: 47147
活跃值: (20470)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
10
很好的话题,置顶几天,欢迎大家讨论。
硬件调试器能满足你的要求,但要达到好的效果,还是要针对不同系统,如Windows,unix相关API设断点等,这个要进行扩展性的开发。另外,还要考虑成本。
2018-1-27 12:09
0
雪    币: 1392
活跃值: (5202)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
11
kanxue 很好的话题,置顶几天,欢迎大家讨论。 硬件调试器能满足你的要求,但要达到好的效果,还是要针对不同系统,如Windows,unix相关API设断点等,这个要进行扩展性的开发。另外,还要考虑成本。
谢坛主,目前发现只有科研院校在做相关的研究,主要就是投入不低挺麻烦的,科研可能更加注重的方向是符号执行。其实虚拟化执行可以做一个很好的调试器。
2018-1-28 13:17
0
雪    币: 222
活跃值: (739)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
全模拟感觉太难了,api就是个问题,能模拟出指令流,能分析数据感觉就很好了,楼主能否留个qq,
2018-1-28 22:28
0
雪    币: 197
活跃值: (52)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
13
https://github.com/tandasat/HyperPlatform
https://github.com/tandasat/DdiMon
这俩貌似可以参考看看
2018-2-6 09:05
0
雪    币: 4
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
panda-re
github仓库:  https://github.com/panda-re/panda/
文档:  https://github.com/panda-re/panda/blob/master/panda/docs/manual.md
2018-3-14 17:46
0
雪    币: 4
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
还有个静态的
https://rev.ng/
2018-3-14 17:49
0
雪    币: 1392
活跃值: (5202)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
16
binsjb panda-re github仓库: https://github.com/panda-re/panda/ 文档: https://github.com/panda-re/panda/blob/m ...
谢谢兄弟,牛逼,需要的就是这个,我准备也用qemu  做静态动态的符号执行和fuzz
2018-3-15 08:06
0
雪    币: 608
活跃值: (648)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
其实你这个想法有些公司已经有类似的产品了,只不过不是调试器,是做恶意软件检测的。
美帝加州有个公司叫Lastline就是做这玩意的,貌似还有趋势也在做类似的基于Full  System  Emulation的恶意软件检测
最后于 2018-3-15 08:11 被Morgion编辑 ,原因:
2018-3-15 08:11
0
雪    币: 1392
活跃值: (5202)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
18
Morgion 其实你这个想法有些公司已经有类似的产品了,只不过不是调试器,是做恶意软件检测的。美帝加州有个公司叫Lastline就是做这玩意的,貌似还有趋势也在做类似的基于Full  System ...
有很多作用,我的主要目的是做基于符号执行的fuzz漏洞挖掘。调试器只是一个副产物。当然还可以做病毒分析这些。
2018-3-15 08:36
0
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
19
你说的这种不就是bochs吗,从CPU加电到背锅
2018-3-15 09:11
0
雪    币: 4
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
IamHuskar 谢谢兄弟,牛逼,需要的就是这个,我准备也用qemu 做静态动态的符号执行和fuzz
客气了。很期待楼主的作品和分享。
2018-3-15 10:47
0
雪    币: 1392
活跃值: (5202)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
21
hzqst 你说的这种不就是bochs吗,从CPU加电到背锅
bochs是一个x86的模拟器  更主要是模拟器到具体应用的例子。单一个模拟器作用不大。
最后于 2018-3-15 12:14 被IamHuskar编辑 ,原因:
2018-3-15 12:10
0
雪    币: 5734
活跃值: (1737)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
22
virtdbg
2018-4-30 19:59
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
23
话说我想起了TEMU
http://bitblaze.cs.berkeley.edu/temu.html
那时候我们作挖掘就是用TEMU

最后于 2018-5-1 12:16 被cvcvxk编辑 ,原因:
2018-5-1 12:15
0
雪    币: 1392
活跃值: (5202)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
24
cvcvxk 话说我想起了TEMUhttp://bitblaze.cs.berkeley.edu/temu.html那时候我们作挖掘就是用TEMU
唉。想把angr移植上去。但是qemu的中间语言  基本上就是汇编代码差不多。要转成vex还是有点蛋疼的啊。。V大赶紧写一个,挖漏洞大大的快,一天一个CVE不是梦。
2018-5-2 18:10
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
就拿一个系统来说,比如windows,这相当于模拟一遍api,这工程量可不小。
你可以用linux或android做一套,毕竟是开源的,你自己添加并修改需要的内核模块方便自己调试,从这个角度也行。
但综合起来做一套,实现的可能很低。
2018-5-3 15:11
0
游客
登录 | 注册 方可回帖
返回
//