【问题标题】:Can malware binaries be in packed form?恶意软件二进制文件可以打包吗?
【发布时间】:2019-05-19 12:28:49
【问题描述】:

最近我正在阅读恶意软件分析。我正在浏览这个恶意软件存储库 (https://github.com/ytisf/theZoo)。在这里,我们可以找到恶意软件二进制文件。二进制文件可以打包吗?如果是这样,我们怎么能说这些二进制文件是否已打包?

PS:加壳程序会压缩程序并尝试向我们隐藏内部信息(某种压缩或加密)。我对此有疑问。二进制文件可以是打包形式吗?

Edit2:在这个存储库中,他们只是将其压缩以确保安全,这不是我所说的实际打包。解压后,我们会得到一个二进制文件。是否可以打包?

【问题讨论】:

  • edit您的问题包括对“打包形式”的含义的描述。
  • 您可以从恶意软件字节开始阅读this post。尽管这需要更新,但它是一本好书! Practical Malware Analysis: A Hands-On Guide to Dissecting Malicious Software
  • 是的。恶意软件可以“打包”。但它必须在执行之前(被某些东西)解包。 (该 git 存储库中的恶意软件以 ZIP 文件的形式提供。这是一种打包形式。)
  • @StephenC 这不是我要问的。他们(存储库)将其压缩以确保安全。解压缩后,您将获得实际的二进制文件。我的问题是该二进制文件是否可以打包?
  • 您需要说明 ZIP 文件与您所说的“打包”有何不同质量。 (我看不出有什么真正的区别……所以你需要解释清楚。)

标签: malware malware-detection binaries


【解决方案1】:

首先,您对“打包程序”和存档程序(ZIP 等)或压缩程序的区别似乎没有任何依据。

“打包”的可执行文件不能直接执行。必须先拆开包装。这与(比如说)包含恶意软件的 ZIP 文件或使用标准压缩程序压缩的恶意软件文件完全相同。

一个“打包”的可执行文件是由一个程序创建的,该程序以秘密的方式“打包”......以逃避检测?好吧,那是行不通的。恶意软件在执行前仍需解压。所以这意味着坏肠现在有第二个问题:将解包器放到受害者机器上。一旦有人(反黑客)掌握了超级秘密解包器,它就不再是秘密了。它可以被逆向工程......或者简单地由 AV 产品在可疑二进制文件上使用。

我能想到的“打包”的唯一实际用途是向恶意软件添加自解包功能。恶意软件(已分发)将包含一个可执行文件,其中包含少量实现解包器的代码。可执行文件的其余部分将是实现讨厌的东西的打包代码。当用户运行恶意软件时,它会解压打包的代码,将其加载到内存中并开始执行。

但是,有一些潜在的方法可以检测或预防此类事情。

  • 如果解包器在加载可执行代码之前将其写入文件,反病毒产品可以检测到这一点。
  • 如果加壳器尝试将代码加载到自身中,有一些方法可能会被阻止;例如使用内存保护硬件+操作系统等来阻止解包器创建包含可执行代码的内存段;见https://en.wikipedia.org/wiki/Executable_space_protection
  • AV 可以在打包代码中查找签名,或者在解包程序代码中冷查找签名。

简而言之,恶意软件可以使用某种“打包”来隐藏自己,但必须有一个可执行组件在某处解包它。


如果是这样,我们怎么能说这些二进制文件是否已打包?

  • 如果恶意软件以非可执行文件的形式分发,您需要确定要解压它的内容,然后查看该进程是否会为您提供可执行文件。

  • 如果恶意软件是一个自解包可执行文件,您可以对解包组件进行逆向工程以了解其工作原理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 2015-09-05
    • 1970-01-01
    • 2019-01-10
    • 2014-03-16
    • 2020-05-31
    • 2013-12-15
    相关资源
    最近更新 更多