使用 ollydump 解包和转储

逆向工程 ollydbg 恶意软件 开箱 倾倒
2021-06-20 10:05:15

我正在尝试学习如何解压恶意软件。我正在用 ollydbg 尝试这个。但是,当我尝试使用 ollydump 插件转储解压后。它提示错误“Bad DOS signature!!”。有人可以帮我解决这个问题吗?

到目前为止我发现的是:

  • 恶意软件正在调用 VirtualAlloc(分配的区域是可读/可写和可执行/)
  • 我在分配的地址上保留了一个硬件断点
  • 当控件到达那个内存时,我运行了 ollydump。它抛出“错误的 DOS 签名”在此处输入图片说明

任何解压此恶意软件的指针?

4个回答

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

如果你不想手动解压exe;

1.使用peid来识别包装类型。--下载peid

图片

  1. 在同一站点中搜索该包装类型(图片中为 aspack 2.001)。你会看到它的教程。
  2. 在谷歌搜索aspack 2.001 unpacker甚至你可能会得到一个应用程序来自动解压它

peid 教程 - tuts4you.com/download.php?view.398

由于关于解包流程的数据很少,以下是您在大多数打包恶意软件中应遵循的一般方法。如果我们谈论的是一些定制的和复杂的加壳器,这可能会更复杂。

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

所以在大多数情况下,解包者(就解包过程而言)会尝试:

  • 验证他们的有效载荷
  • 分配新的内存来存储解压后的代码(数据)。这将(在大多数情况下)在以下人员的帮助下完成VirtualAlloc(Ex)
  • 解包路由将采用混淆代码并将干净的代码写入分配的空间
  • 在流程结束时将控制权转移到有效负载

你应该尝试做什么:

  • 将硬件断点放在 上,VirtualAlloc(Ex)因为有包装器将检查 BP 放置的前导码。execute till ret和 在EAX您将获得分配的内存区域地址
  • 右键单击EAX以按照中的地址Dump
  • 放置应该让您进入实际解包例程Memory On Write断点或HW on write断点
  • 分析解包路由的流程,在解包过程的最后再放置一个断点
  • 解包完成后,右键单击Dump窗口以将解包的有效负载保存到文件中。

在您的情况下,有效载荷可能不会是干净的MZ文件,或者相反,解包路由有意削弱了有效载荷。

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

  • Trace
  • 另外放在HW on Execute解包的有效载荷的开头
  • 转储解包程序/区域并在IDA中打开它以了解(查找)附近是否有任何控制转移过程。

玩得开心!

如果它是标准包装器,则有工具可以将其拆开。如果您想学习如何手动解包或者它不是标准的解包器,那么您可以继续。它看起来没有完成拆包。您可能必须继续获得有效的“原始”入口点。