首页
社区
课程
招聘
[原创]MEMZ彩虹病毒分析
发表于: 2021-7-17 17:02 15703

[原创]MEMZ彩虹病毒分析

2021-7-17 17:02
15703

    首先使用IDA将病毒文件样本打开(该病毒样本是32bit程序),打开之后,我们转换为伪代码形式。我们先大题说明一下该程序的执行逻辑。

程序首先获取主屏幕的长宽度,并且获取指令参数。

判断是否存在指令参数,并且根据不同情景执行不同的代码。

    我们首先看如下图片中的代码,其中的操作即获取主屏幕长度,宽度,获取指令参数。

    接着,首先看无参数的情况如何处理。即“pNumArgs > 1”为假的情况。

    下面,我们再来看有参数的情况,即“pNumArgs > 1”为真的情况。紧接着就是判断参数是否为“/watchdog”如果是,则创建一个线程,并且设定消息循环代码。详细如下图:

    下面就是将恶意代码写入MBR扇区部分。具体操作如下:

使用CreateFileA函数打开磁盘,其中有一个判断,即打开失败则退出。

准备修改MBR的数据,即首先是304字节的引导程序。

引导程序准备完成之后偏移510字节,加上AA55,即512字节的间隙,后面就是彩虹猫动画的代码。(注释:“AA55”表示MBR结尾标志)

数据准备完成之后,调用WiteFile写入磁盘。

    恶意代码写入MBR扇区之后,下面就是弹框出现记事本,并且显示一些内容。


    记事本弹框之后,会自定义一个结构体,其中一个函数指针,所指向的函数,作用是得到一个随机数,然后随机启动一个程序或者网址。详细代码如下图:


    

    好的,知道现在,我们对彩虹猫这款病毒有了一个比较初步的了解,接下来。我们将眼光放到“29”行,即当参数为“/watchdog”的时候,新建了一个线程并且执行函数sub_40114A。

    双击sub_40114A函数,进入当中。由代码分析,我们知道函数sub_40114A的功能是监控进程数目,如果进程数目一旦减少则运行sub_401021()函数。

    双击sub_401021()函数,进入当中。观察发现这个是导致蓝屏的函数。

    下面,我们将眼光放在第“95”行,我们发现这是一个地址,双击进去之后,我们发现这是一个包含了十个函数地址的数组。

    这个里面的函数就是下面(第“99”行创建线程所使用的函数)

    接下来,我们紧接着看看,彩虹猫随机调用的函数功能。

    sub_401A55产出随机值


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2021-7-17 21:24 被天象独行编辑 ,原因:
上传的附件:
收藏
免费 6
支持
分享
最新回复 (1)
游客
登录 | 注册 方可回帖
返回
//