前言
VS开发的源代码安全性,是很多开发者头痛的事情.于是保护好源代码便成了开发者们最关心的事情之一了.
在网上搜一搜,很多有不少的第三方工具可以为源代码加密.加密方式不外乎就是混淆,加壳.
理论上,任何的源代码加密方式都是可能反编译的.因此我们选择哪种加密方式都变得有些脆弱.既然是这样,
那我们就选择一个简单一点的,快捷一点的吧.
工具
NET Reactor 4.9
这个工具网上很多,可以自行下载,目前搜到最新版是4.9
下载地址:http://pan.baidu.com/s/1dDeVNrj
加密完成后,会自动输入一个加密后的全新文件.如果你的类库比较多,这时加密后就只有一个文件,点击可直接运行,是不是很棒?
是不是绿色程序的感觉?
********************************************************************************************************************
http://www.eziriz.com/downloads.htm官网
以下摘取部分:
设置又分为常规设置,保护设置,软件限制设置,及弹出框界面设置
常规设置
主要包括压缩配置,界面风格配置,生成目标文件配置,启动是否显示加载界面配置。想要知道配置的具体功能可以用鼠标点击配置,下面的说明面板会出现对应的说明。
- Automatic Exception Handling - 自动捕获错误
- Compression - 压缩文件减少占用空间,网络环境下还可以减少带宽
- Show Loading Screen - 保护过的文件启动是否显示加载进度条(因为保护过的文件启动时会先执行.net reactor注入的代码,包括查找证书等)
- Digital Certificate - 数字证书保护
- Enable Visual Styles - 是否启用系统界面风格
- Force Admin Privileges - 是否需要系统管理员权限运行
- Merge Assemblies - 是否允许整合dll
- Embed Assemblies - 是否允许嵌入dll
- Strong Name Key Pair File - 强签名程序集
- Target File - 生成目录
保护设置
主要配置软件的保护选项
NecroBit 功能是防止程序被反编译(比如.net reflector),但不支持.net Compact Framework
- Anti Tampering - 防止黑客利用工具修改你的软件,运行前会进行二进制完整性检查
- Resource Encryption & Compression - 压缩和加密托管资源,运行时会自动解压和解密资源
- Suppress Decompilation / Anti ILDASM - 防止反编译和反汇编
- Native EXE File - 生成一个本地x86 exe文件作为根嵌入程序防止反编译
- Pre-JIT Methods - 通过Native EXE File 和NecroBit插件,将一些小方法比如getters/setters直接转化成机器代码,防止程序集被修改
- NecroBit - 用加密的代码替换CIL代码,阻止反编译
- Obfuscation - 替换变量名称,方法名称等来混淆代码
- Create Mapping File - 允许创建混淆过字段对应的未混淆字段的映射文件
- Enabled - 混淆非punlic的类和成员的名称
- Obfuscate Public Types - 混淆所有类型和成员的名称
- Incremental Obfuscation - 智能地规定混淆后的名称
- Exclusions - 排除某个类型,不进行混淆
- Use Unprintable Characters - 使用乱码进行混淆
- Control Flow Obfuscation - 一种混淆方式
- String Encryption - 加密字符串
- Strong Name Reomoval Protection - 强命名保护
- Expire When All Expired -是否全部文件过期时,才停止软件使用
- Inbuilt Lock - Evaluation Period -限制软件持续使用时间
- Inbuilt lock - Expiration Date -限制软件使用天数
- Inbuilt Lock - Number of Uses -限制软件使用次数
- Max Number Of Instances -限制软件并发数量(同一台机器)
- Nag Screen -若没有许可证,软件启动时提示相关相关限制信息,比如“您已使用1次,最多使用10次”
- Run Another Process After Expiration -过期是否执行其他程序,通常运行付款程序
- Run Without License File -是否需要许可证
- Shut Down Process After Expiration -当过期时是否关闭进程
- Static License FileName -设置许可证的后缀名,当为空时默认搜索*.license 的许可证,为防止冲突不允许以.LIC为后缀名。