【问题标题】:Deobfuscate .net Application. Missing Assembly/DLL loaded at runtime反混淆 .net 应用程序。缺少在运行时加载的程序集/DLL
【发布时间】:2017-09-15 17:45:29
【问题描述】:

我们的试镜团队正在检查客户的 ERP 应用程序 (.net)。在检查了源代码之后,我们也通过反混淆来检查供应商的 dll,并在进程运行时检查进程。

我们发现了一个在运行时加载并执行的程序集。我们找不到有关此程序集的更多信息。我们假设这个 dll 从字节加载并附加到应用程序域。此字节可以在其中一个资源中或来自独立存储。我们真的不知道如何抓取这个dll,所以我们可以尝试反编译它。

一些信息: - 使用进程资源管理器,我们能够发现从应用程序加载的几个 dll 路径。 .net 程序集和路径列表。但是对于这个程序集,没有路径,只有他的程序集名称。

有什么方法可以从内存中“提取”这个 dll 并保存? 我们可以做些什么来至少了解关于这个大会的更多信息?

谢谢, 柯南。

【问题讨论】:

  • 我什至认为此类程序集的许可条款不会授予您对代码进行逆向工程的权利,因此此类讨论是不合适的。
  • 我理解您的担忧。但是,在处理财务数据和没有完整源代码的遗留系统时,此操作有时是唯一的选择。我无法透露项目的所有细节,但想象一下,一家公司被收购了,很多业务信息和流程都没有记录在案。除此之外,我们还有一个时间表来确保所有系统都符合法规和合规性。

标签: .net dll .net-assembly appdomain deobfuscation


【解决方案1】:

互联网上有一个工具叫做 Megadumper 由 Code Cracker ......它是一个内存转储工具。您只需运行该程序并在 Mega Dumper 中右键单击该进程并选择 .net 转储。进程正在使用的所有文件将从内存中转储到进程启动的转储文件夹中。 只需确保以管理员身份运行 Mega Dumper。

【讨论】:

  • 谢谢。这个工具真的很棒。我可以转储一些我需要探索的 .net 资源。但不幸的是,不是全部。最重要的程序集仍然在 JustDecompile 无法在其中找到任何内容的级别进行混淆。
【解决方案2】:

通过 de4dot 运行混淆文件。然后在dnspy中打开清理过的。然后你会更好地看到去混淆的源代码。

【讨论】:

  • @Lex Li 所以,如果供应商在他们的代码中放置了后门漏洞并且没有告诉你,那可以吗?只要程序集保持在内部,审计他们的代码以检查安全漏洞是完全合法的。现在,如果 OP 决定复制源代码并将其分发到他自己的产品下,那将是非法的。
  • 再一次,你在一些事情上是不正确的。 Windows 和 Mac OS 是本机代码。 OP 试图去混淆的代码是 .net 代码,它更容易。 De4dot 是一个通用的反混淆工具,它将反混淆许多不在列表中的混淆器。如果您尝试使用它而不是猜测它,您将看到我所引用的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-24
  • 2023-03-23
  • 2010-10-05
相关资源
最近更新 更多