【问题标题】:Is it possible to decompile C++ Builder exe? Is C++ Builder exe safe?是否可以反编译 C++ Builder exe? C++ Builder exe安全吗?
【发布时间】:2012-06-24 17:55:38
【问题描述】:

是否可以反编译C++ Builder exe?

C++ Builder 是安全的编程工具还是任何人都可以反编译并查看代码?

【问题讨论】:

  • 如果“代码”是指组装,那么是的。
  • 汽车可以拆卸。汽车制造商安全吗?
  • 只要付出适当的努力,每个可执行文件都可以被反编译,但我发现从 C++Builder 二进制文件中取回原始代码 cmets 几乎是不可能的......
  • 给某人足够的时间,他将总是破解并理解您的程序、代码或秘密黑匣子。问题不是“如果”而是“什么时候”它会被“破坏”。
  • @HristoIliev:没关系,反正 cmets 会分散注意力 (riyadsthoughts.blogspot.co.uk/2011/01/…)。

标签: c++ c++builder decompiler


【解决方案1】:

简短的回答,是的,它可以被反编译,而且它不是“安全的”。任何在计算机上运行的东西都可以被反汇编,并通过阅读反汇编来检查。 反编译意味着甚至恢复一些原始的编译源代码——这在某种程度上确实可能的。毕竟,它“只是”关于编写一个可以将汇编翻译成所需语言的程序。如果人类可以做到这一点,那么程序也可以做到这一点,因为它只是应用已知的规则和逻辑将程序从不同的表示/语言翻译成另一种。然而,事情并没有那么简单……

很多信息(如源文件、变量名、一些未使用的代码、cmets 等)在编译过程中会丢失。编译器优化会进一步恶化这种情况,这通常会使生成的反汇编在某些情况下几乎不可读。因此,反编译的源代码只能提供有关实现细节的线索,主要是逻辑,而不是用于构建项目的实际源代码。

请注意,这与任何形式的“安全”或程序本身的安全性几乎无关。任何程序都可以以某种方式进行反汇编,工作程序背后的任何逻辑都可以进行检查和逆向工程。程序内部不能有秘密,如果可以运行,就没有什么可以隐藏的。

反汇编一段可执行文件并在汇编中处理其逻辑通常比试图依赖非常模糊且通常被破坏的高级语言(例如许多反编译器)中的 C 重构要容易得多。 em> 仍然生产。虽然有时,工具可以通过反汇编生成可读且非常清晰的高级表示,但它们通常是简单的案例和简短的代码摘录。

底线是,您不需要反编译器来检查、逆向工程和理解目标程序。所有人都需要访问可执行文件、反汇编器和对汇编语言的理解。没有办法避免这个事实,而且它很少是真正的问题。

【讨论】:

  • 它像.Net 应用程序吗?还是像 MFC 或 QT exe?
  • 它们都不是。 C++ Builder 可能是用 Delphi 编写的,因此要对其进行反编译,您必须找到一个工具,该工具可以从用 Delphi 编写的程序重建原始源代码的一些结构。虽然这样的工具可能不存在——但这并不意味着它会不可能
  • IDE 和框架是用 Delphi 编写的,但编译器不是。 C++Builder 和 Delphi 都编译为本机程序集,尽管在 C/C++ 和 Delphi 语言不同的地方,该程序集的语义会有所不同。
猜你喜欢
  • 2011-05-20
  • 2023-03-23
  • 2011-02-04
  • 2014-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
相关资源
最近更新 更多