如何防止源码被盗

最近用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按钮添加一个需要混淆的exedll文件,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,这个还没尝试,等试过以后再附上教程。。。

原文地址:https://www.cnblogs.com/guyun/p/4092298.html