【问题标题】:Decompile obfuscated dll反编译混淆的dll
【发布时间】:2012-09-25 04:27:00
【问题描述】:

我必须反编译用 Microsoft Visual C++ 6.0 DLL 编写的混淆 dll? 我怎样才能做到这一点?我尝试了很多软件 .Net Reflector、JetBrains dotPeeks 但它们似乎都没用:(

【问题讨论】:

  • 反编译 C++ 很难,反编译混淆的 C++ 更难。如果您首先解释了为什么需要反编译它,可能会有所帮助。
  • 我必须在我的项目中使用它的代码,这就是为什么需要反编译
  • 也许您可以直接使用LoadLibrary 导入函数?
  • 也许你应该解释一下为什么你的案子是公正的、道德的和合法的。你不只是想窃取一些代码,是吗?
  • @RemusRusanu 别忘了,抛开道德问题,胡达国家的法律可能与你的不同。

标签: c++ dll


【解决方案1】:

如果只需要使用 DLL 的功能,请改用LoadLibraryGetProcAddress 来动态加载库并获取函数指针。

如果您需要查看 DLL 导出的函数,您可以使用 Dependency Walker(但如果您手头有一个头文件会更容易)。

【讨论】:

  • 如何在 C# 中使用 LoadLibrary 和 GetProcAddress 有什么想法吗?
  • 使用DllImport。 (您在帖子中从未提及 C#,所以我给了您 C++ 解决方案。)
【解决方案2】:

Microsoft Visual C++ 将代码编译为本机 x86 代码(不是 CLR)。 要将本机代码反编译成 c/assembler,您应该使用带有“hexrays”插件的 IDA Pro。

http://www.hex-rays.com/products/ida/index.shtml

【讨论】:

  • 不过,这不会将代码反编译成任何可识别为 C/++ 的内容(请注意,OP 希望在项目中使用该代码)。
  • “你应该” - 不必要的规范文本。有替代方案。此外,几乎没有建议看到 OP 的实际问题上下文
猜你喜欢
  • 2016-04-22
  • 1970-01-01
  • 2011-09-20
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 2010-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多