我正在开发一款我想最终出售的软件。现在,我可以与有兴趣使用它并对其进行测试的人分享它,也许在网页上作为 alpha 版本。但我不希望人们窃取我的代码。代码混淆器会完成这项工作吗?我也应该对它或类似的东西进行版权保护吗?我真的不知道从哪里开始,所以任何帮助都会有所帮助。
问问题
102 次
3 回答
1
如果您只发布可执行文件,那么唯一可以做的就是对其进行逆向工程。
于 2010-11-09T11:01:18.003 回答
1
如果您的程序被编译为托管可执行文件(例如 .net),那么如果您不希望人们查看您的代码,则可能需要对其进行混淆处理。如果您非常担心有人窃取您的代码,为什么不将 alpha 测试仅作为邀请发布(人们通过留下评论、姓名、电子邮件、电话号码、地址等来请求邀请,您决定是否允许)。这样您就知道谁下载了您的程序,并且更容易跟踪其使用情况。
编辑:我在这里找到了一篇关于软件许可的精彩文章,您可能也想阅读它们。
于 2010-11-09T11:49:24.397 回答
0
要回答您的 2 个问题,特别是关于窃取源代码的问题:
- 混淆器将使某人更难对您的源代码进行逆向工程(然后窃取)。需要权衡的是,混淆具有显着的测试负担,并且还会混淆堆栈跟踪以获取未处理的异常。
- 对二进制文件进行版权保护不会阻止有人窃取您的源代码。根据您用于软件许可的国家/地区,对二进制文件进行版权保护可能会帮助您应对并非针对您的源代码的攻击。
如果您使用 C# 或 Java 等托管语言,则可以使用 Themida 或免费的 MPress 等打包程序将可执行文件打包到加密的包装应用程序中。这将减缓使用 .NET Reflector 等工具的攻击者的速度,而且 IMO 是一种比使用混淆更易于维护的方法。
于 2012-10-12T16:27:41.557 回答