> 文章列表 > 某vm加壳分析

某vm加壳分析

某vm加壳分析

背景

早上哥们儿那里发了一个样本过来,让弟弟简单的看看这是个什么东西,好嘛!点开就是vm警告,右键回收站。

 还是得给好哥哥一点面子,在看看,放进虚拟机之后直接运行,现象就是闪一下,也没有vmp的警告,你这闪一下是什么意思?吓唬谁呢?

 开摆

当第一次触发异常的时候,.text段的代码已经初始化了可以用VMPImportFixer把它给dump下来

 dump下来之后在假装看看字符串,发现了如下数据 

通过对该初始化函数下断点,动态调试,往上找调用的call发现了main函数

 观察一下这个参数也不难发现这个就是main函数

 继续看看,发现是自定义的vm代码,经典(x)vm,只有单步跟踪看看都进行了什么操作。

第一个call,检测当前进程列表中是否包含下面这些进程,以及closehandle的反调试手段,我也说为什么闪一下就妹了,原来是有反调试。

 第二个call,反vm通过查询cpuid判断当前是否处在虚拟机环境

第三个call就是它的主要逻辑

 每隔0x3E8写入一次文件,文件的内容先解密,解密方式为异或,之后写入文件的时候在进行加密。(这里其实有bug,并不是每隔0x3e8写一次,应该是0x3e8*2,因为每次%2==0的时候都是加密的文件名(包含特殊字符),所以这一次写入是失败的,只有是明文的文件名写入才是成功的)

 结束

vmp不vm代码还是能玩,但是vm了代码基本就是右键回收站。