可能重复:
是否有可能反编译C ++ Builder中的exe? 是C ++ Builder中的exe安全吗?
我使用Microsoft Visual C ++ 2010 Express来写我的程序。 当我想我的分发程序我“发布”的配置编译它,我也设置了链接不添加调试信息。 所以我的问题是,我的可执行文件的安全或任何人都可以反编译,并看到源代码? 如果是不安全的,我怎么能防止被反编译?
可能重复:
是否有可能反编译C ++ Builder中的exe? 是C ++ Builder中的exe安全吗?
我使用Microsoft Visual C ++ 2010 Express来写我的程序。 当我想我的分发程序我“发布”的配置编译它,我也设置了链接不添加调试信息。 所以我的问题是,我的可执行文件的安全或任何人都可以反编译,并看到源代码? 如果是不安全的,我怎么能防止被反编译?
所有的程序都可以反编译的程度。 然而,绝大部分的源代码中的有用信息编译过程中被删除。 一个反编译器产生的源代码是原始的浅模仿。
变量名,函数名,类名等,也不会反编译后可用。 所以,最好的反编译器所能做的就是把你的函数,如下所示:
double CalculateWidgetStrength(int WidgetType, int WidgetFrobishness);
成这样没有意义的代码:
double Function85(int p1, int p2);
而且即使成功做那么多准确可以是非常困难的反编译器。
任何人都可以反编译它,看看原来的源代码? 不太可能,但原始源代码并不重要。 例如:
int x = 1 - 1;
和
int x = 0;
将在二进制文件相当,但它其实并不重要,不是吗?
对于一个足够大的项目,反编译是不是一个真正的关注,因为你不能真正利用生成的代码。 这需要多年去了解一个大型项目,甚至一小部分,考虑到你的知识转移,文件和适当的命名中获益。 我想这是不可能的只是一个反编译。
对于特定的功能,是的,我想有一个风险,但一个不能完全,取出100%。
你不能完全保护的代码。
恕我直言,你花在保护你的代码的时候更好地使你的产品功能丰富,无错花那么做频繁的发布。 制作在一个或其他方式混淆的代码必须引入很难找到的bug变得非常难以修复的潜力。
保持它的“安全”,在你暗示的方式,唯一的办法就是不部署它,即你做一个Web服务或一些这样的。 你不能让它从没有使他们无法执行它执行它的人的安全。
鉴于你已经做反编译将需要一个量显著的努力,我的问题是。 为什么会有人打扰,因为它可能会需要更多的努力不是简单地“滚你自己的”