C++编写的,未加壳

在虚拟机跑了一下,观察了一下执行效果,用微步在线分析了一下。
创建了8个进程,目前我们还不太清楚这些进程做了什么事情

现在我们直接IDA分析,进入main函数

大致含义是根据参数来判断执行流程,如果参数小于等于1跳转到loc_40144f处,弹出两个窗口,如果我们都点击确认的话就会分配4000h的堆内存,并获取当前进程的路径;如果点否的话退出进程。

紧接着生成5个普通的进程和一个最高响应优先级的进程(进程的参数不同,详情见微步图),最后退出本进程


接下来我们分析参数大于1的情况
前面基本一样,都是获取进程的相关信息。接下来遍历进程,并将其与我们以前的信息做对比(在这看汇编有一点懵,最后用IDA的F5生成的伪C大概看懂了。)主要判断是否kill了进程,一旦kill了一个进程就调用sub_401021子函数。根据推测,子函数的主要功能是重启


接下来看看sub_401021()子函数的功能。IDA的识别好像有一点问题,百度了一下最后在看雪找到了解决方法
该函数主要创建了20个线程,并在最后调用了关机的函数。后面的写引导区因为能力不足暂时分析不了。

最后附上一张大致执行流程图

总结:第一次进行病毒分析,遇见了许多的坑,但还好都解决了。个人觉得平时真的应该自己动手分析一下,脑子会了,手不一定会
参考文章:https://bbs.pediy.com/thread-262873.htm#msg_header_h1_4
最后附上我的IDA分析数据库

彩虹猫.zip (0.081 MB) 下载附件
点击收藏 | 0 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖