首先,必须要有一个主程序集(exe 或 dll 都可以),就是把附加的程序集都整合到这个程序集中。附加的程序集可以以嵌入的方式或者整合的方式。若选择整合的方式,建议勾选仅整合(不保护)。设置分为常规设置,保护设置,软件限制设置等。除了主程序集及其附加程序集(主要是dll文件)的设置以外,还有证书管理和.net方法查看。
一、常规设置
主要包括压缩配置,界面风格配置,生成目标文件配置,启动是否显示加载界面配置。想要知道配置的具体功能可以用鼠标点击配置,下面的说明面板会出现对应的说明。
- AutomaticExceptionHandling——自动捕获错误
- Compression——压缩文件减少占用空间,网络环境下还可以减少带宽
- ShowLoadingScreen——保护过的文件启动是否显示加载进度条(因为保护过的文件启动时会先执行.netreactor注入的代码,包括查找证书等)
- DigitalCertificate——数字证书保护
- EnableVisualStyles——是否启用系统界面风格
- ForceAdminPrivileges——是否需要系统管理员权限运行
- MergeAssemblies——是否允许整合dll
- EmbedAssemblies——是否允许嵌入dll
- StrongNameKeyPairFile——强签名程序集
- TargetFile——生成目录
二、保护设置
主要配置软件的保护选项。
- NecroBit——防止程序被反编译(比如.net Reflector),但不支持.net Compact Framework
- AntiTampering——防止黑客利用工具修改你的软件,运行前会进行二进制完整性检查
- ResourceEncryption&Compression——压缩和加密托管资源,运行时会自动解压和解密资源
- SuppressDecompilation/AntiILDASM——防止反编译和反汇编
- NativeEXEFile——生成一个本地X86 exe文件作为根嵌入程序防止反编译
- Pre-JITMethods——通过NativeEXEFile和NecroBit插件,将一些小方法比如getters/setters直接转化成机器代码,防止程序集被修改
- NecroBit——用加密的代码替换CIL代码,阻止反编译
- Obfuscation——替换变量名称,方法名称等来混淆代码
- CreateMappingFile——允许创建混淆过字段对应的未混淆字段的映射文件
- Enabled——混淆非punlic的类和成员的名称
- ObfuscatePublicTypes——混淆所有类型和成员的名称
- IncrementalObfuscation——智能地规定混淆后的名称
- Exclusions——排除某个类型,不进行混淆
- UseUnprintableCharacters——使用乱码进行混淆
- ControlFlowObfuscation——一种混淆方式
- StringEncryption——加密字符串
- StrongNameReomovalProtection——强命名保护
三、软件限制设置
此设置就是限制软件的使用。包括限制使用次数,限制使用时间等。当达到限制条件时,就会弹出过期信息,需要许可证。注意:此配置对CompactFramework,Silverlight和Mono无效。
- ExpireWhenAllExpired——是否全部文件过期时,才停止软件使用
- InbuiltLock-EvaluationPeriod——限制软件持续使用时间
- Inbuiltlock-ExpirationDate——限制软件使用天数
- InbuiltLock-NumberofUses——限制软件使用次数
- MaxNumberOfInstances——限制软件并发数量(同一台机器)
- NagScreen——若没有许可证,软件启动时提示相关相关限制信息,比如“您已使用1次,最多使用10次”
- RunAnotherProcessAfterExpiration——过期是否执行其他程序,通常运行付款程序
- RunWithoutLicenseFile——是否需要许可证
- ShutDownProcessAfterExpiration——当过期时是否关闭进程
- StaticLicenseFileName——设置许可证的后缀名,当为空时默认搜索*.license的许可证,为防止冲突不允许以.LIC为后缀名
四、证书管理
当客户端软件使用过期时,此时就需要购买许可证文件。此界面就是用于生成许可证。生成许可证也可以配置,可以设置许可证的过去时间,使用次数,是否针对特定的电脑等。
其中针对特定的电脑需要使用HID工具获取特定电脑硬件对应的编码,然后再进行配置,HID工具在TOOLS->HardwareIDToolGenerator,会生成HID.exe,然后运行HID.exe会在同目录下生成一个硬件对应的编码文件。
五、.net方法查看
主要查看dll的执行方法名称。
六、制作简单许可证
- 在Main Assembly里打开可执行文件(Debug文件夹里exe文件)
- 单击Additonal Files中的Scan按钮,程序会将主程序中所调用到的DLL列举在此处
- 选择Settings选项卡,在Lock Settings里设置Run Without License File为False
- 在License Manager选项卡中Master Key中的Save按钮,注意:这个Key是我们的私钥,它与程序是一对一的,所以一定要保护好它。将来生成许可证时要用到
- 单击左侧Protect按钮,在Debug文件夹中生成加密后的文件
- 单击菜单中Tools->Hardware id tool generator,它能够取得机器ID生成器(HID.exe)。运行它可得到一个记录着机器ID的文本文件(HardwareID.txt)
- 选择License Manager选项卡中的Master Key中的Open按钮,打开之前保存好的私钥文件
- 展开License File Settings->Lock Hardware Lock,单击Hardware ID并输入