我尝试了UPX,ASPack和其他保护程序,但是看来我的应用程序的保护功能很弱。

什么是保护程序的最佳方法?使用包装器或其他工具?

至少对于初学者而言;因为我想地球上没有完美的保护,专家无法逆转。

评论

是否可以使用无法逆向工程的gcc创建目标文件?

我可能是错的,但是您的问题似乎与此相似:“我可以使用无法进行逆向工程的gcc创建目标文件吗?”。我错了吗?

我不认为这是类似的问题。我不使用gcc,而是要求打包exe;感谢您的贡献@perror我可能是错的,但是您的评论似乎与其他评论非常相似

@perror:我不同意。但另一方面,它可能太广泛了。我暂时不会投票关闭。但是OP重新阅读帮助然后调整问题会很棒;)

请记住:如果CPU可以执行它,则攻击者可以读取它。

#1 楼

不,那里没有。您可以使反向工程更加困难,但是,如果有足够的动机对应用程序进行反向工程,则您实际上无法做任何事情使之不可能。从理论上讲,使用完全同态加密是可能的,专业的恶意软件研究人员通常会对比您公开发现的任何东西都要难的东西进行逆向工程。

关于最佳保护方法,我想说的是,首先消除对它进行反向工程的动机。我会更具体一些,但目前尚不清楚您要防御哪种类型的攻击者。

评论


你是绝对正确的。我只是注意到,同态加密不应被分类为混淆技术,因为混淆函数的语义(就同态加密而言)与原始函数的语义不同。

– Ta Thanh Dinh
13年11月21日在11:04

#2 楼

答案是明确的。如果需要的话,您所做的任何保护都仍可以改进。

问题还不清楚,因为有许多不同的保护措施。
-防止逆向工程
-防止在错误的计算机上执行
-防止复制
-防止修改。
-...
无论哪种方法最适合某个目的,可能都不适合于其他目的目的。
当您知道自己反对什么时,您实际上就处于更好的状态,可以提供良好的保护。

您也可以说没有完美的保护,因为任何保护都可以破碎。但这也许无关紧要:也许以今天的计算机速度来制动特定保护的时间与宇宙的年龄相似?也许该保护足以保护您的可执行文件,直到不再需要该保护为止。也许就足够好了,以至于攻击者在成功之前就放弃了?也许这使它变得足够困难,以使攻击者选择处理另一个程序。也许它在发布后的几分钟内就坏掉了。

实践中:除非您是经验丰富的保护工程师,或者是非常好的黑客和逆向工程师,否则您的保护将在短时间内被破坏。另一方面,如果您了解自己在做什么,则可以了解编译器生成的内容,难以进行逆向工程的知识,要保护的程序,机器的体系结构,从一开始就建立保护措施或使用一些专业知识保护工具,了解应用程序的性能要求,您可以或多或少地将每个人拒之门外。关于此有一些争论。在保护措施最终破裂之前,保护者会以为过硬而犯错。反向工程师认为这太容易了而犯错。实际上,当您创建高端保护时,您可能永远不会知道,因为高端产品的攻击者不会告诉您是否/何时成功。

有很多工具可以帮助您进行保护,这些工具的价格范围从免费到天文数字。我不知道此讨论列表是否允许我命名公司。如果您想找出我的或任何其他人,请使用Google进行防篡改。