第一次逆向分析——彩虹猫病毒分析

如题所述

首次深入探索:彩虹猫病毒逆向剖析


在移动逆向工程的旅途中,我遭遇了狡猾的彩虹猫病毒,它以桌面异常、进程弹窗和蓝屏等棘手症状示人。使用PEID进行扫描,发现它被ASProtect v1.32壳保护,病毒样本的功能特性如下:



    窗口弹出魔术师:ShellExecute负责驱动浏览器窗口的弹出,显示病毒的恶意意图。
    鼠标的诡秘操控:SetCursorPos/GetCursorPos的配合,让鼠标行为变得异常,难以捉摸。
    桌面图标的小把戏:Drawlcon是它的桌面图标策略,意图迷惑用户。
    色彩变幻的魔力:BitBlt/StretchBlt的使用,让窗口颜色频繁变化,增加视觉干扰。
    系统声音的干扰:PlaySoundA让系统提示音成为病毒的又一武器。
    隐形的MEMZ进程操控:ShellExecute被用于创建MEMZ进程,隐藏行动轨迹。

更深入的分析揭示,部分进程操作涉及提权、消息循环、进程遍历、窗口钩子以及库函数加载,构建了一套复杂而隐蔽的攻击机制。


进入IDA的入口函数start,我们发现病毒根据命令行参数执行多种功能,如watchdog和main。无参数启动时,它会先警告用户并记录进程路径,然后循环执行ShellExecute生成恶意文件,巧妙地生成多个进程。


其中,shell的魔法再次展现:通过ShellExecuteExW创建高优先级的MEMZ进程,原进程在完成后结束。六个MEMZ.exe进程中,一个直接点击,其余五个通过"/main"参数启动,而watchdog则是启动它们的关键环节。


揭秘watchdog的行动:



    五个MEMZ进程的创建,通过sub_40114A函数,巧妙地从当前进程路径获取信息,利用LocalAlloc、GetCurrentProcess和GetProcessImageFileNameA。
    注意,这里的进程句柄并非常规意义上的,GetcurrentThread和GetcurrentProcess返回的是内部伪句柄。
    watchdog的核心是死循环监控,定期更新v5和v8,当进程减少时,sub_401021的介入会导致电脑蓝屏重启,保护病毒的存活。

在代码中,MessageBoxA随机显示消息,通过sub_401A55生成随机数,施展窗口钩子的魔法。LoadLibraryA/GetProcAddress的隐性调用,既能引发蓝屏,也能主动退出Windows,sub_401021则扮演了强制关机的急先锋。


函数sub_401000处理WM_CLOSE和WM_ENDSESSION消息,决定是否执行强制关机,而消息循环则通过GetMessage/TranslateMessage/DispatchMessageW精准地操控系统消息。


主体部分,do-while循环创建10个线程,每个线程都有其独特的延时信息,通过v9作为数组地址进行递增。v9指向的数据区,包含struct tagFuncWithDelay结构体数组,每个元素对应一个函数及其延迟值,隐藏在off_405130的内存地址中。


sub_401A2B的神秘while循环可能涉及对10个函数的调用,但具体细节尚存疑点。MBR部分是病毒的心脏,负责初始化和加载操作系统,是病毒破坏启动过程的关键步骤。


在/main部分,病毒通过CreateFileA和LocalAlloc操作,进行MBR覆盖,随后写入note.txt文件,揭示其全局模块导入、函数流程和消息循环的策略。在main函数中,病毒更是直接对硬盘操作,破坏MBR,导致系统无法正常启动,同时在"note.txt"中留下了病毒的印记。


尽管对Windows API和C++的深入理解是逆向分析的挑战,但通过对彩虹猫病毒的一步步剖析,我们不仅看到了病毒的狡猾,也增进了对底层技术的理解。这场逆向之旅,既是一场技术的较量,也是一次深入学习的契机。

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网