[原创MEMZ病毒详细分析
发表于:
2021-9-5 21:13
15118
MEMZ病毒分析
第一次分析病毒,拿彩虹猫来练了练手,先自己分析过程,遇到不懂的在看其他师傅的分析,学到很多,本文章将一步步分析彩虹猫病毒的实现过程,并且还原部分代码。
病毒分析的准备工作
环境:我采用的是吾爱破解的xp系统,里面有很多现成的工具,ida,xdbg都有,只不过ida版本有点低,但是对于本病毒的分析也没太大影响,百度网盘链接:df9K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3j5h3&6Q4x3X3g2T1j5h3W2V1N6g2)9J5k6h3y4G2L8g2)9J5c8Y4y4Q4x3V1j5I4h3i4k6a6x3U0j5@1d9W2)9J5k6r3q4@1N6W2u0g2h3X3g2%4z5p5q4D9f1K6W2Y4 提取码:abcd。(如果有大佬知道怎么在xp系统中使用更高版本的ida,或者有更好的分析病毒的虚拟机,可以在评论区给点资源,谢谢啦)
分析步骤,一般的病毒分析步骤,如下
查壳,常见的有upx,ASpack,等等,可以用来实现简单免杀。
行为分析,是否修改注册表,联网,等等,可以在虚拟机中跑一遍看看效果(但是不要直接连网),或者用vt 直接跑跑看,有个大致的判断。
导入的dll以及API,使用StudyPE+去查看。
关键字符串,ida中shift+f12就可以直接查看。
放到ida静态分析,或者动调。
但是,对于彩虹猫病毒这个样本,里面的函数和逻辑都比较清晰,先在虚拟机里面跑几遍,看看行为,就直接开始分析了。
分析过程
分析过程大致分为3部分,启动部分,检测部分,彩虹部分,MBR部分。
启动部分
首先判断该进程的传参,类似于标准 C 运行时argv和argc值。从而走不同的流程。 然后看下面干了什么。 大概就是以不同参数开了6个MEMZ.exe进程。对于里面出现的函数可以到MSDN官方文档去查,举个例子,对于SetPriorityClass() ,推荐在谷歌用必应 上直接搜索该函数,然后进官方文档看函数参数意义,比如说,我要看0x80代表什么。
检测部分
这一部分就是用来判断用户是否主动关机,是否主动关闭MEMZ.exe,从而来用函数进行相应措施。
最外层。
然后来看看创建的线程函数check干了什么。 可以看出check函数用来判断是否主动关闭MEMZ.exe。
shutdown()函数中的StartAddress无法直接反编译,先用一位师傅谁的狗哥 处理一下函数,然后来看看shutdown()函数。 然后看看创建的20个线程,就是用SetWindowsHookExW()实现了20个随机位置的messagebox弹窗,要理解这一部分,去查阅官方文档的函数。
然后我们跳出来,回到最外层,来看看消息处理函数干了什么。 WM_QUERYENDSESSION,59dK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1L8r3!0Y4i4K6u0W2j5%4y4V1L8W2)9J5k6h3&6W2N6q4)9J5c8X3A6W2M7%4y4A6j5$3q4A6N6g2)9J5c8X3q4J5N6r3W2U0L8r3g2Q4x3V1k6V1k6i4c8S2K9h3I4K6i4K6u0r3z5o6x3I4x3o6M7&6x3o6x3`. 所以这个就是用来防用户关机的。
到这里检测部分就分析完了。
彩虹部分
这部分是参数为/main的MEZE.exe进程执行的。主要表现在电脑桌面的花里胡哨。
这里v9类似于下面的结构
1
2
3
4
5
6
typedef struct {
int
time;
int
(
*
func)();
}functable;
functable a[
10
];
下面来分析这10个函数,里面很多api就不多讲了。
func1() ,实现乱打开程序和网站。
func2() ,实现鼠标不受控制。
func3() ,键盘消息
func4() ,发出声音
func5() ,桌面变色。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
上传的附件: