首页
社区
课程
招聘
[原创]恶意程序分析-去除恶意程序混淆-学习记录
发表于: 2021-6-14 10:34 13177

[原创]恶意程序分析-去除恶意程序混淆-学习记录

2021-6-14 10:34
13177

    混淆说白了就是恶意程序的作者自己发明的一种壳。它会将想要隐藏执行的PE文件经过加密以后植入自身内部,当自身运行时候,对其执行解密操作并执行,于是就达到了隐藏运行的目的。

    2.1;去除混淆原理


    恶意程序在解密去除混淆得过程中,一定会需要分配一个内存空间,那么可以在分配空间得函数下断点(例如:VirtualAlloc)。然后在带程序解密完成之后dump 出来。这样,我们就可以找出恶意程序得本体了。

    利用OD程序打开软件,并且在函数VirtualAlloc里面下断点。之后F9运行程序,程序会自动断在VirtualAlloc()位置。

    

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

    

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

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

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

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

    

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

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

    

    首先,我们已经知道了,混淆程序执行了是两个功能,1;将程序复制到“D00000”位置。2;将"D00000"位置得程序解密。接下来,我们来分析,它是如何做到这两个功能得。

    我们先通过OD将程序定位到地址“0012F9D6”位置。这个时候,我们通过初步得单步执行,发现整个复制程序就在12f9cd~12f9f6之间循环。

    通过初步观察,我们得到如下信息:

在“12F9D3”位置,我们发现,该程序指令就是将数据放入“D00000”位置得指令,即拷贝目标地址在该程序中使用得是[eax+edi]表示得。

由“12F9CD~12F9D3”位置我们发现,拷贝源是使用[ebp+ecx*4-0x54]来表示得。我们来看表达式ebp+ecx*4-0x54,很明显知道,随着ecx寄存器得值得变化,这将是一个偏移四个单位得变化。

“12F9D6~12F9DE”位置指令,我们发现,在将[ebp+ecx*4-0x54]得值放入目标地址当中之后,会立刻指向[ebp+ecx*4-0x54]下一个位置得值。

“12F9E2~12F6E6”这些指令得作用是,ecx 得值加一,用来表示循环得次数,通过cmp 得比较,我们知道,它会循环8次。并且会将值放入[ebp-0x8]位置存储,方便之后重新调用。

“12F9F0~12F9F6”我们知道,[ebx+0x10]位置保存得值是复制程序得大小,DEI当中得值就是用来限定复制多少进入目标地址。

    好了,经过分析,其实,我们大概知道了,复制得原理。大致如下:

第一轮复制,是将地址“12F66C~12F688”位置得值(间隔四个单位)作为地址,然后寻找内容然后放入目标空间,执行完成之后,立刻将12F66C~12F688”位置得值加一,用来表示第二个值。如此循环。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-6-14 13:40 被天象独行编辑 ,原因:
上传的附件:
收藏
免费 8
支持
分享
最新回复 (5)
雪    币: 143
活跃值: (263)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
直接 hook  VirtualProtect()  , 屏蔽掉  PAGE_EXECUTE_  , 让程序在执行入口的时候断下来 不就可以了 ?
2021-6-27 09:25
0
雪    币: 1657
活跃值: (6833)
能力值: ( LV12,RANK:215 )
在线值:
发帖
回帖
粉丝
3
透明色 直接 hook VirtualProtect() , 屏蔽掉 PAGE_EXECUTE_ , 让程序在执行入口的时候断下来 不就可以了 ?
受教了。谢谢
2021-6-27 12:35
0
雪    币: 232
活跃值: (627)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
这不是姜晔的课程内容吗
2021-6-28 18:55
0
雪    币: 1657
活跃值: (6833)
能力值: ( LV12,RANK:215 )
在线值:
发帖
回帖
粉丝
5
wx_全都怪我 这不是姜晔的课程内容吗[em_4]
是啊,我不是把课程贴出来了嘛?
2021-6-28 21:30
0
雪    币: 922
活跃值: (1813)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
师傅,程序不能下载啦,但我很想学习,能不能提供下载渠道
2023-1-25 20:31
0
游客
登录 | 注册 方可回帖
返回
//