首页
论坛
课程
招聘
雪    币: 2308
活跃值: 活跃值 (17)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝

[原创][WM系统开发]两种虚拟机检测技术(祝大家元旦快乐!)

2008-12-31 12:19 6597

[原创][WM系统开发]两种虚拟机检测技术(祝大家元旦快乐!)

2008-12-31 12:19
6597
在桌面平台攻防中虚拟机是一项重要技术。对于桌面平台的恶意代码如果具备比较强的虚拟机检测能力可以大大提高战场生存能力。当恶意代码发现自己是在虚拟机中执行
就可以改变自己的行为方式,比如不进行解密操作,或者简单运行后退出从而规避虚拟机分析。对于手机平台的病毒随着时间的推移、硬件能力的提高,反病毒阵营必然也会引入
虚拟机技术来检测我们。那么研究识别虚拟机的技术就显得很有价值了。

最近一年的学习研究中我一直在关注这个问题并不断积累,总结了一些虚拟机检测的技术和经验。我总结的基本原则是:
虚拟机永远也不可能做到和真机完全相同;越偏向底层,差距越大。

目前主要的虚拟机平台就是微软提供的模拟器,现在我们的研究重点就是检测病毒是在真机上还是在模拟器上运行。

我们在研究API时发现了两个可以用于检测。

方法1:利用SetEndOfFile()函数的特点来检测。
       SetEndOfFile()函数的功能是把文件指针的当前位置设置为文件的结尾,调用后返回BOOL类型数据表示设置是否成功。我们发现这个函数在一般操作中都没有问题,
       但是在模拟器中当这个文件处于SD卡中时,设置文件末尾会出错。似乎模拟器将模拟的SD卡当作一个网络设备而禁止了这个操作。但是在真机上就没有这个问题。
       DetectVM01正是利用这个原理检测当前系统是否为虚拟机。

方法2:利用SystemParametersInfo()函数获取OEM名称字符串。
       在微软提供的模拟器中OEM字符串为"MicroSoft DeviceEmulator"。但真机不可能为这个字符串,所以获取当前系统的OEM字符串然后检测其中是否含有Emulator字样。
       如果含有则是模拟器,没有则是真机。DetectVM02就是用这个原理来检测的。

两个程序都在真机和模拟器上做了实验显示的结果不同,可以检测出来。

真机使用Touch Daul。
OEM字符串显示的是:NIKI100。
SD卡下路径为:\存储卡\VM

[公告]看雪论坛2020激励机制上线了!多多参与讨论可以获得积分快速升级?

上传的附件:
最新回复 (5)
雪    币: 2308
活跃值: 活跃值 (17)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 活跃值 12 2008-12-31 12:20
2
0
附件中是两个实例程序。在模拟器和真机中运行时弹出对话框,显示自己当前的运行环境。
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
手冷 活跃值 1 2009-1-9 10:43
3
0
两个问题:
第一,SetEndOfFile如何起作用
第二,OEM名称字符串肯定是有某种方法可以改变的,这种途径未必有效...(虽然我还没想到如何改变)
雪    币: 2308
活跃值: 活跃值 (17)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 活跃值 12 2009-1-9 12:43
4
0
第一个问题的回答:
似乎在模拟器中将共享目录生成的SD卡当作是网络设备了,所以设置文件末尾失败。

第二个问题的回答:
一般这种设置在注册表中保存,也不排除在硬件上烧制。
虽然你可能可以改设置,但是在我没有告诉你之前你知道吗?作为Blitz Force的老队员你应该明白这个道理:攻防技术总是交替上升,只有暂时领先,没有绝对优势!

在实战中,只要在使用某项技术的时候我们的对手不知道就是有效的!就可以检测出来!他就必须先分析我是怎么检测到的,然后再设法修改。而且我们的对手是很多家不同的单位,他们会资源共享彼此交流我们的反制技术,还是要独立调试?只要技术强,总可以找到肉鸡!

呵呵,所以我们要不断研究新的技术,才能在竞争中赢得优势!无论我们是攻还是防!
雪    币: 203
活跃值: 活跃值 (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk 活跃值 2009-1-9 12:51
5
0
利用SystemParametersInfo()函数获取OEM名称字符串
----------------------------------------------------------------
修改vm bios中的oem字符串,这种方法就失效了
雪    币: 276
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kwzlj 活跃值 2009-1-12 23:17
6
0
顶一下,有人研究手机程序了。有时间研究下“Softick Card Expor”这个程序,WM手机用的U盘程序。
游客
登录 | 注册 方可回帖
返回