[病毒分析]熊猫烧香(上)初始分析(三)

简介: [病毒分析]熊猫烧香(上)初始分析

接着继续按下F8调试,发现它将字母“b”赋值给了EAX,我们怀疑它跟“xboy”有关。

image.png

接下来的代码分析如下:

  • MOV ECX, 0xA
    将常量“A”赋值给ECX。通常存在两种可能性,一种可能是ECX作为循环的此时,即可能循环A次;另一种可能是EXC作为一个运算的除数。
  • XOR EDX, EDX
    异或操作将自身清空。
  • DIV ECX
    可以发现它是一个除法操作,除数即为ECX。结果显示如下图所示,除法的商EAX为9,余数EDX为8。

通常除法有两种可能,要么获取EAX的商值,要么获取余数EDX的内容。那么这个程序究竟需要哪一个值呢?

  • MOVX eax, byte ptr ds:[eax+ebx-0x1]
    该语句将值赋给EAX,所以上述程序做除法的目的是获取EDX这个值。

image.png

接着我们尝试在下列两个位置增加断点。

  • 0x004053E8
  • 0x00405408

image.png

接着按下F9运行,查看输出的结果,分析如下:


  • 将“xboy”的第三个字母“o”取出解密
  • 数据窗口新增很多内容,完成字符串拷贝


反复继续按F9调试,发现它依次获取“xboy”中的值,再进行异或操作。


小结:最终解密的值如下图所示,“武汉男生感染下载者”逐渐出现。sub_405360函数我们在IDA中重命名为“DecodeString”,即解密字符串。

image.png

(6)sub_404018函数分析

第八步,继续分析sub_404018函数的功能。


记住地址0x0040CBA4,复制到OD中进行调试。

image.png

首先取消刚才解密的两个断点,然后跟随表达式“40CBA4”,在该位置按下F2增加断点,然后F9执行过来。


首先看到两条赋值语句,将值赋给EDX和EAX中,由于这个程序是使用Delphi编写,所以在call之前会将参数放到寄存器中,我们首先看看EDX中的内容。

image.png

在数据窗口中跟随数值,发现它们都是“武汉男生感染下载者”。注意第一个是我们刚才解密出来的内容。

  • 0040CBA4 . 8B55 EC mov edx,dword ptr ss:[ebp-0x14]
  • 0040CBA7 . A1 D4E74000 mov eax,dword ptr ds:[0x40E7D4]

1.png

接着按下F8执行,再按F7进入Call 0040018函数。大致浏览该函数后,发现又存在一个循环,我们的重点就是分析该循环,按下F2增加断点,再按F9执行过来。

  • 0x00404041

image.png

在数据窗口中跟随,发现ECX和EBX就是刚才所说的两个参数,一个是原始的“武汉男生感染下载者”,另外一个是解密之后的“武汉男生感染下载者”。再按F8发现这个函数比较两个字符串是否相同的操作。

  • CMP ECX, EBX

总结:回到IDA,我们将函数sub_404018重命名为字符串比较函数“CMPString”。

image.png

(7)loc_40CBBC功能分析

image.png

继续分析发现这里同样存在字符串解密和字符串比较的操作,并且解密字符编程了武汉男孩(whboy),这里不再进行解读。

image.png

解密比较成功之后,继续跳转到loc_40CBE6的位置。这里看到了三个call函数,它们又是什么功能呢?这三个call是熊猫烧香病毒最重要的功能,我们下一篇文章继续分析。

image.png

四、总结

写到这里,熊猫烧香病毒起始阶段的逆向分析就介绍完毕,简单总结如下:

  • 0x0040CB7E call sub_403C98
    – 重命名为:AllocStackAndCopyString
    – sub_403D08:分配内存空间
    – sub_402650:字符串拷贝功能
  • 0x0040CB9F call sub_00405360
    – 重命名为:DecodeString
    – 0x004053CC:循环入口点
    – 0x004053E8:获取“xboy”解密字符
    – 0x00405408:完成异或解密操作
  • 0x0040CBAC call sub_404018
    – 重命名为:CMPString
    – 0x00404041:循环入口点
    – 功能:字符串比较“武汉男生感染下载者”
  • 0x0040CBCC loc_40CBBC
    – 功能:字符串解密和比较操作,解密字符“whboy”
    – DecodeString
    – CMPString

希望大家可以有所收获!!

相关文章
|
6月前
|
安全 网络安全 数据安全/隐私保护
关于双面恶魔攻击的定义、检测和预防的最佳实践
关于双面恶魔攻击的定义、检测和预防的最佳实践
|
传感器 机器学习/深度学习 算法
康奈尔大学推出终结者式机器人!被刺伤后能检测到损伤,还可以当场自我修复
《终结者》已经成为不少科幻电影迷心中的经典。 电影中机器人T-800从一个没有感情的机器人最终成长为理解人性与生命的生命体。 深入人心的除了T-800的形象外,反派液态金属机器人变形模仿和自我修复的能力也同样深入人心。
232 0
康奈尔大学推出终结者式机器人!被刺伤后能检测到损伤,还可以当场自我修复
|
安全 编译器 API
[病毒分析]熊猫烧香(上)初始分析(一)
[病毒分析]熊猫烧香(上)初始分析
600 0
[病毒分析]熊猫烧香(上)初始分析(一)
|
存储 安全 编译器
[病毒分析]熊猫烧香(上)初始分析(二)
[病毒分析]熊猫烧香(上)初始分析
239 0
[病毒分析]熊猫烧香(上)初始分析(二)
|
安全 API
[病毒分析]熊猫烧香(下)核心函数部分分析(一)
[病毒分析]熊猫烧香(下)核心函数部分分析
175 0
[病毒分析]熊猫烧香(下)核心函数部分分析(一)
|
安全
[病毒分析]熊猫烧香(下)核心函数部分分析(四)
[病毒分析]熊猫烧香(下)核心函数部分分析
149 0
 [病毒分析]熊猫烧香(下)核心函数部分分析(四)
|
安全 Windows
[病毒分析]熊猫烧香(下)核心函数部分分析(二)
[病毒分析]熊猫烧香(下)核心函数部分分析
174 0
[病毒分析]熊猫烧香(下)核心函数部分分析(二)
|
安全 API Windows
[病毒分析]熊猫烧香(下)核心函数部分分析(三)
[病毒分析]熊猫烧香(下)核心函数部分分析
321 0
[病毒分析]熊猫烧香(下)核心函数部分分析(三)
|
安全
[病毒分析]熊猫烧香(中)病毒释放机理(二)
[病毒分析]熊猫烧香(中)病毒释放机理
147 0
[病毒分析]熊猫烧香(中)病毒释放机理(二)
|
安全
[病毒分析]熊猫烧香(中)病毒释放机理(四)
[病毒分析]熊猫烧香(中)病毒释放机理
146 0
[病毒分析]熊猫烧香(中)病毒释放机理(四)