最近在调试一个病毒样本,外壳加了VMP3.5,虚拟化工具和反调试使得在原虚拟机系统上不是那么的方便。由于我使用的是OD,分析绕过的只有VMP的反调试,所以我选择寻求去虚拟化系统来减少工作量(嘿嘿)。如果你的Ollydbg或者操作环境已经能够绕过虚拟化检测,那么恭喜你,你很强。
虚拟化检测通过
【资料图】
隔壁网安的告诉我,用ollydbg的都是低端人士,高手人人都用IDA。虽然心有不甘,但是我觉得对于这种强加密虚拟化的病毒样本,用Ollydbg来分析跟踪相比于IDA来说会更加方便一些,即使两者不是一个量级。
0x00 虚拟化检测工具
虚拟化检测工具字如其名是为了检测该程序是否存在于虚拟化环境中,先对虚拟机进行检测,防止在动态分析样本时出现虚拟化异常。
这里我在吾爱破解论坛上找到份18年的比赛作品,从8个方面检测虚拟机环境:
查询通信端口
通过地址检测
检测
通过主板序列号、型号、系统盘所在磁盘名称等其他硬件信息
搜索特定进程检测
通过注册表检测
通过服务检测
文件路径检测
通过时间差检测
检测工具
0x01 去虚拟化思路
其中较为难解决的是CPUID和进程、服务的隐藏,其他可以通过修改设备信息做到。
CPUID
CPUID检测是大多数检测程序都会用到的,这里我们可想.vmx配置文件中添加
在绕VMP3.5的虚拟机检测时也需要在上断点置为,这里CPUID就算完成了,接下来我们需要对关键进程和服务进行隐藏。
进程和服务隐藏
简单的解决办法就是不安装VMtool,自行安装虚拟机系统所需要的驱动,实在需要VMTOOL的话,可以使用对其进程进行隐藏,这种已经烂大街了,需要的可以直接在百度上看看。如果要深入研究,和,可以看下当年Github大佬的驱动级隐藏服务进程。
点我前去
实在找不到的话,可以通过加载启动他人的驱动文件底层过滤掉检测函数,达到绕过进程服务检测,不过这样的话需要对系统进行(对于64位系统而言),绕过的工具和文章百度值得拥有。
0x02 配置系统并进行检测
配置好系统和文件后,一定要对虚拟机系统进行虚拟化检测,避免在调试跟踪时出现难以预料的问题:
GIF
很好,虚拟化检测全部绕过,目前该操作环境与真实环境基本无区别,后续可以较为安心地调试程序或者其他样本。
0x03 比赛作品的部分代码
关键词: