彩虹猫分析过程,今天分析了一整天了,结果最后还是疏漏一两个路径,明天再继续吧
程序分为三种启动方式
一种是不带任何参数的启动
第二种是带 /main
参数启动
第三种是带/watchdog
参数启动
这部分是每个启动方式都会执行的代码
GetSystemMetrics()
获取屏幕的宽高 但之后似乎并没有用到这部分?GetCommandLineW()
获取命令行参数CommandLineToArgvW()
函数解析参数得到参数数组(可以按照数组方式使用)首先用户在运行
MEMZ.exe
文件之后 是不带参数的执行, 我猜我得到的样本应该是被大佬修改过的,会进行两次提醒,然后病毒代码才会真的开始执行
上图是不带参数执行的代码
GetModuleFileNameW
函数获取到自己的可执行文件文件名/watchdog
参数的副本SHELLEXECUTEINFOW
结构体 用于创建一个副本,并且带/main
参数,与本身不同的是,会提高CPU的优先级,占用更多CPU时间,位后面占用系统资源做铺垫/main
参数启动该启动方式主要作用是为了将
MBR扇区
引导部分覆盖掉,并且写入重启之后的彩虹猫动画代码
/watchdog
参数启动该启动方式如同他的名字一般 (看门狗) ,是用来检测用户是否主动结束自身进程的,若结束了,则开始破坏用户电脑(其实
/main
参数已经)
写入的程序分为两段
第一段 长度是304 这个应该是引导代码
第二段 长度是 1952
这个应该是彩虹猫动画程序本体
这个地址开始 往下很长一段都是内容 要注意 那个 AA55 是MBR扇区的结束标志
这里据我了解,MBR扇区总共512字节
原文:https://www.cnblogs.com/cjdty/p/12387772.html