如何防止源码被盗
最近用wpf写了个小程序,然后Release以后使用.NET Reactor完全混淆后,把混淆后的exe文件部署到XP上,发现运行不了(已确定安装.net framework 3.5 SP1),但是在win7下可以完美运行,最后查找原因发现是因为勾选了 "native exe file",去掉这个选项后再混淆发现是可以正常运行了(原因见帖子链接回复:http://bbs.csdn.net/topics/390213926?page=1)。随后进行反编译测试,选择两款较为知名的反编译工具:Reflector(dotpeek)和IL,测试结果发现不论是否勾选 "native exe file",Reflector均无法识别混淆后的exe文件,但是IL却可以识别出来未勾选 "native exe file" 混淆后的文件,而且方法名,类名都有,这个可怎么办呢?勾了之后无法在xp下使用,不勾的话源码又不安全。最后找了很多方法都无果,却发现了一款混淆神器,Xenocode PostBuild 2010 for .NET,这款神器完美的解决了以上的问题,使用方法也很简单:
1)运行Xenocode,切换到Application选项卡,点Add按钮添加一个需要混淆的exe\dll文件,Preset默认是选第一个(dll文件的话选第二个),选完后点下Apply。
2)切换到Protect选项卡,左侧的Metadata Renaming列表是需要对一些类名、方法名、字段名进行重命名,这个根据个人喜好吧,但是我发现我全选了Type Dfinitions之后,混淆后的程序无法运行,所以我就没去管左边的,右上角的两个Suppress选项都勾上吧,然后点Select Strings→全选→OK
3)最后切换到Output选项卡,最下面那个Output directory给它选个输出混淆文件的路径就好了
4)点击下面的Build Application按钮完成混淆
5)如需混淆其他文件,重复操作即可
据说Xenocode还可以使.NET开发的程序脱离.net framework,这个还没尝试,等试过以后再附上教程。。。
博客地址 | http://www.cnblogs.com/guyun/ |
博客版权 | 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。 如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。 |
给我打赏 |