可能重复:
有没有可能反编译C ++ Builder的exe文件? C ++ Builder exe安全吗?
我使用Microsoft Visual C ++ 2010 Express编写我的程序。 当我想分发我的程序时,我使用'Release'configuration进行编译,并且设置链接器不添加debugging信息。 所以我的问题是,我的可执行文件是否安全,或者任何人都可以反编译并看到源代码? 如果不安全,我怎样才能防止它被反编译?
所有程序都可以反编译到一定程度。 但是,源代码中的大量有用信息在编译期间被删除。 反编译器产生的源代码是对原文的一种模糊的模仿。
反编译后的变量名,函数名,类名等将不可用。 所以反编译器可以做的最好的就是把你的函数变成这样:
double CalculateWidgetStrength(int WidgetType, int WidgetFrobishness);
变成这样的毫无意义的代码:
double Function85(int p1, int p2);
而且即使成功做到这一点,对于一个反编译器来说也是非常困难的。
任何人都可以反编译看到原始的源代码? 不太可能,但原始源代码并不重要。 例如:
int x = 1 - 1;
和
int x = 0;
在二进制文件中是相同的,但这并不重要,是吗?
对于一个足够大的项目,反编译并不是真正的问题,因为你不能真正使用生成的代码。 考虑到你从知识转移,文件记录和适当的命名中受益,即使是大规模项目的一小部分也需要几年时间才能了解。 我想用反编译器是不可能的。
对于特定的功能,是的,我想有一个风险,但不能完全被100%拿走。
唯一的方法就是保持“安全”,就是不要部署它,也就是说你要做一个Web服务或者其他类似的服务。 执行它的人不能使其安全,而不能使其无法执行。
鉴于你已经做了反编译将需要大量的努力,我的问题是。 为什么会有人打扰,因为它可能需要更多的努力,而不仅仅是“滚动自己的”
你不能完全保护代码。
恕我直言,你花费在保护你的代码的时间花费在使你的产品功能丰富和无错误,然后做频繁的发布。 使代码以某种方式被混淆,有可能导致很难找到变得很难修复的错误。