我正在尝试学习如何解压缩恶意软件。我正在尝试与ollydbg一起使用。但是,当我尝试使用ollydump插件转储未打包的文件时。它提示错误“错误的DOS签名!”。有人可以帮我吗?

到目前为止,我发现的是:


恶意软件正在调用VirtualAlloc(分配的区域是可读/可写的,并且可执行文件/)
我在分配的地址上保留了一个硬件断点
当控件到达该内存时,我运行了ollydump。它会抛出“ Bad DOS Signature”


是否有任何指针可以解压缩此恶意软件?

评论

如果您要转储的部分看起来不像普通的PE文件(“ MZ”,“ PE”等),则您很可能尚未点击解压缩的文件。

#1 楼

该恶意软件可能会在运行时破坏其PE标头,因此您可能需要寻找一种能够处理这些情况的工具。
Scylla应该可以完成。

#2 楼

如果您不想手动解压缩exe; 1。用peid标识包装类型。 -下载peid




在同一站点中搜索该包装类型(图片中为aspack 2.001)。您将看到有关它的教程。
在Google上搜索aspack 2.001解包器。
甚至您可能会找到一个应用程序来自动解压缩它。 398

#3 楼

由于有关解压缩流程的数据很少,因此这是大多数打包的恶意软件应遵循的一般方法。如果我们要谈论一些定制和复杂的包装机,这可能会更加复杂。

我也强烈建议避免使用各种自动拆包插件,因为它们会使您不了解流程。

因此,在大多数情况下,拆包器(就拆包过程而言)将尝试:


验证其有效载荷
分配新内存以存储拆包的代码(数据) 。 (在大多数情况下)这将在VirtualAlloc(Ex)的帮助下完成。

解包路由将获取混淆的代码,并将干净的代码写入过程分配控制结束时的分配空间中。到有效载荷

您应该尝试做的事情:


将硬件断点放置在VirtualAlloc(Ex)上,因为有包装工将检查BP放置的前言。按下execute till ret,在EAX处您将获得分配的内存区域地址
,右键单击EAX以跟随Dump中的地址

放置Memory On Write断点或HW on write断点,这将使您到达实际的解压缩例程
分析解压缩路由的流程,以在解压缩过程结束时放置另一个断点
,一旦完成解压缩,请右键单击Dump窗口以将解压缩的有效负载保存到文件中。

在您的情况下,有效负载可能不会是干净的MZ文件,或者相反,解压缩路由故意破坏了有效负载。

可能这将是一个迭代过程进行处理,因为您还需要验证解压缩后的有效载荷实际上就是代码。尝试使用


Trace
另外将HW on Execute放在解压后的有效载荷的开头
转储解压例程/区域并在IDA中打开以了解(查找)如果附近有任何控制权转移过程。

玩得开心!

评论


最初由@IhorBats提出并由我评论,因为该用户没有足够的声誉:“感谢您介绍如何提取有效负载,您知道有什么书或文章可以帮助我真正做到这一点吗?”

–巨型甜菜
17年12月3日,12:59



我建议翻阅《实用恶意软件分析》一书。另外,您可以检查opensecuritytraining.info/Welcome.html

– PhoeniX
17 Dec 5'4:53



#4 楼

如果它是标准包装机,则有一些工具可以将其打开包装。如果您想学习如何手动解包,或者它不是标准的解包器,则可以继续。它似乎尚未完成拆包。您可能必须继续进入有效的“原始”入口点。