首页
社区
课程
招聘
[分享]zbot变种木马wsnpoem脱壳笔记 part1
发表于: 2017-12-19 00:42 4380

[分享]zbot变种木马wsnpoem脱壳笔记 part1

2017-12-19 00:42
4380

wsnpoem恶意程序是zbot木马家族的变种,经过加壳保护,我们接下来就来脱壳。

本文程序可以到附件下载,附件解压密码: www.pediy.com

注意:附件是恶意木马样本,本文提供附件仅供学习使用,学习过程务必要放在虚拟机内运行


脱壳步骤

OD载入wsnpoem-with-rootkit.exe


这是wsnpoem解密的第一阶段,我们直接在00409D41的LEAVE处右键设下硬件执行断点,然后运行


然后我们选择菜单Debug->Hardware Breakpoint移除刚才设下的断点,向下翻到00409EDA处


我们在这行设下软件断点(F2)然后运行,停在断点处,我们取消掉这行的断点,按下Enter进入到跳转的分支去,向下翻到00412449处


在翻过了第2层解密后,00412449处所指向的004051B7便是我们的OEP,同样设下一个软件断点(F2),然后运行,停在断点处,我们取消掉这行的断点,然后步入OEP


然后向下一点,看到0040523A处,在数据窗口中转向0040FD34


可以看见,这里的这个call所调用的函数地址处是全零,这会造成程序的崩溃,因此我们可以推测在call以上的代码中有填充这个空间

我们现在边步过,边观察数据窗口中的0040FD34,看什么时候向该处填充了数据,可以很容易发现,在步过004051D2处的Call 0040AAD4后,数据窗口中填充了许多的数据


那这样看来,004051D2处的Call 0040AAD4就是将所有的函数都导入到内存空间中,而我们的0040FD34则是导入表的一部分,因此我们可以右键重新将EIP设到OEP处。

向上翻看导入表空间,貌似可能的函数地址块,也就是我们的导入表头,是从0040FB3C开始


我们也可以在ascii块中右键选择Long->Address,这样数据窗口会以地址格式进行显示,方便我们查看导入表


同样,我们向下翻看,查找导入表的结尾是在0040FEB8


这样,找到了OEP,也有导入表信息,那么我们就可以用Ollydump+ImportREC来进行脱壳,如下,点击dump保存为dump.exe


打开ImportREC,选择正在运行的wsnpoem-with-rootkit.exe,然后在OEP、RVA和SIZE处填写好我们获得的信息,然后点击Get Imports


但显然,我们的导入表函数虽然有找到,但都是无效的。所以我们需要手动修复导入表函数,因为可能在导入表内混有一些垃圾地址,所以我们需要手动进行移除,比如第一个chunk中


点击对应的shell32.dll右键显示反汇编,可以看到如下代码,显然不是一个正常的函数的代码,因此可以确定是垃圾地址。我们右键cut chunks

然后有的块显示反汇编提示read error,那么其实也是垃圾地址。依照类似的方法将所有的垃圾地址清除干净后,你就可以转储到文件,然后用IDA打开,你会发现壳已经脱干净并且导入函数也很清晰



[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//