-
-
[原创]恶意程序分析-去除恶意程序混淆-学习记录
-
发表于:
2021-6-14 10:34
13365
-
恶意程序分析-去除恶意程序混淆-学习记录
一;什么是混淆?
混淆说白了就是恶意程序的作者自己发明的一种壳。它会将想要隐藏执行的PE文件经过加密以后植入自身内部,当自身运行时候,对其执行解密操作并执行,于是就达到了隐藏运行的目的。
二;如何去除混淆?
2.1;去除混淆原理
恶意程序在解密去除混淆得过程中,一定会需要分配一个内存空间,那么可以在分配空间得函数下断点(例如:VirtualAlloc)。然后在带程序解密完成之后dump 出来。这样,我们就可以找出恶意程序得本体了。
2.2;案例调试
利用OD程序打开软件,并且在函数VirtualAlloc里面下断点。之后F9运行程序,程序会自动断在VirtualAlloc()位置。

这里我们发现,它存在多个断点位置(VirtualAlloc多次调用),一般判断是否是解密混淆所需要得空间,可以通过划分得虚拟空间大致猜测判断。如下地址“7C809A81”划分空间224,一般意义得PE程序不会这么小。即排除。

地址“7C809AA2”划分空间903680,则,很有可能是一段PE程序需要得空间。

接下来,我们将光标定位到“7c809a99”,该位置是刚好执行完VirtualAlloc。执行完之后,将申请得空间地址返回至寄存器EAX。

我们在“D00000”位置下硬件断点。之后执行程序,程序会断在试图修改该内存空间得位置。

程序在如下位置,再次断开,经过分析,该段程序指令得作用,就是将混淆文件,加载到“D00000”位置。

继续程序运行,至如下图位置,这个时候我们发现PE程序已经加密完成。

导出程序本体,(备份-保存数据到文件)

三;分析混淆程序
首先,我们已经知道了,混淆程序执行了是两个功能,1;将程序复制到“D00000”位置。2;将"D00000"位置得程序解密。接下来,我们来分析,它是如何做到这两个功能得。
3.1;复制程序
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2021-6-14 13:40
被天象独行编辑
,原因: