.Net 代码混淆的一些注意事项
2007-08-28 13:20
330 查看
既然.Net总能够被人破解, 那么我们只好把重要的计算和功能放在server上通过webservice提供了,但是客户端的代码总还得混淆一下,否则别人反编译一下不是全部知道底细了,所以我只使用code protect tools的混淆功能而不是加密,毕竟再怎么加密也是可以破解掉的。
以XENOCODE为例(其实我只使用了这个,毕竟相信老牌软件,心里有底些),它的select pattern相当不错,经过一段时间的摸索,找到一些需要注意的地方:
1、Enumeration一定不要重命名:毕竟我们还有很多地方会使用Enum.Parse(string)以及直接tostring得到名称
2、Reference和Interface最好不要重命名
3、public, protect的不能重命名:因为public会被外部使用,而且有些还是virtual override或是implicitly implement, 而protect的会被其它的继承类使用
4、需要反射的最好单独一个assembly,不要去混淆:毕竟这个风险太大,很难去一个个选取哪些要哪些不要重命名,比如说有的ORM中需要反射属性和字段的实体类定义
5、资源类Properties.Resources修改为public(这样可以批量设置public的不要重命名)
因为这段代码
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XXX.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
否则的话就会出现:
Could not find any resources appropriate for the specified culture or the neutral culture.
其它:
字符串加密这个不会出错,只是有些性能损失而已
流程混淆xenocode还是很安全的,我一般使用1~2级就可以了,毕竟有时候出错了我还得打开混淆后的代码查找位置
其它的防止反编译的选项我也没有设置,因为我自己还得用reflector呢。
以XENOCODE为例(其实我只使用了这个,毕竟相信老牌软件,心里有底些),它的select pattern相当不错,经过一段时间的摸索,找到一些需要注意的地方:
1、Enumeration一定不要重命名:毕竟我们还有很多地方会使用Enum.Parse(string)以及直接tostring得到名称
2、Reference和Interface最好不要重命名
3、public, protect的不能重命名:因为public会被外部使用,而且有些还是virtual override或是implicitly implement, 而protect的会被其它的继承类使用
4、需要反射的最好单独一个assembly,不要去混淆:毕竟这个风险太大,很难去一个个选取哪些要哪些不要重命名,比如说有的ORM中需要反射属性和字段的实体类定义
5、资源类Properties.Resources修改为public(这样可以批量设置public的不要重命名)
因为这段代码
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XXX.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
否则的话就会出现:
Could not find any resources appropriate for the specified culture or the neutral culture.
其它:
字符串加密这个不会出错,只是有些性能损失而已
流程混淆xenocode还是很安全的,我一般使用1~2级就可以了,毕竟有时候出错了我还得打开混淆后的代码查找位置
其它的防止反编译的选项我也没有设置,因为我自己还得用reflector呢。
相关文章推荐
- 写伪代码的一些注意事项
- vc7代码迁移到vc8的一些注意事项
- .net调用C++代码需要注意的一些问题
- .net开发中的一些注意事项及小技巧
- Java 程序代码书写风格及一些简单的注意事项 (
- 安卓代码混淆注意事项
- watir代码移植至watir-webdriver代码时需要注意的一些事项
- 阅读代码和修改别人代码的一些技巧以及注意事项
- Java代码书写风格及一些简单的注意事项
- Android项目外接高德地图代码混淆注意事项
- Android代码混淆的注意事项
- 混淆代码的编码注意事项
- .net开发中的一些注意事项及小技巧
- Android 代码混淆注意事项
- 阅读代码和修改别人代码的一些技巧以及注意事项
- .net客户端导出Excel实现代码及注意事项
- u3d的一些注意事项(非代码)
- 【持续更新】把.net代码转换为java代码的注意事项
- android判断网络是否连接一些注意事项(有代码)
- Android项目外接高德地图代码混淆注意事项