NET程序保护时界面操作流程
#
简介.NET程序保护可支持.NET及.NET Core3.0以上的程序,支持dll及exe程序的直接加密保护,此文件介绍在工具界面上对程序进行保护的操作流程。
更多详细功能介绍描述参考.NET程序保护最佳实践文档。
#
操作环境操作系统:Windows 10 家庭中文版
演示程序:dot_NET2_bounce.exe
#
操作流程简单概述:
将需要保护的可执行文件或库文件导入
Virbox Protector
中;配置函数选项,设计个性化的保护方案;
配置加密选项;
执行保护;
备份原始文件,将受保护的文件更名后替换原文件,保存好配置文件。
#
导入文件将需要保护的可执行文件或库文件导入Virbox Protector中
#
配置函数选项点击【函数选项】-【添加函数】,选择重要函数并设置其保护方式。
函数的保护方式强度对比:代码虚拟化>代码加密>代码混淆
代码虚拟化不支持场景:1. 函数含有 out 参数的调用者以及被调用者暂时不支持代码虚拟化;2. ld***a 和st***a 类型的地址操作暂时不支持代码虚拟化;3. 某些调用指令特定的方法类型(如byref)暂时不支持代码虚拟化。
在选择函数的时候,可以使用CTRL/SHIFT对函数进行多选,然后鼠标右键,选择适合的函数保护方式,点击确定
将选中的函数添加到函数选项列表处。
#
配置加密选项加密选项包括导入表保护、压缩、JIT加密、资源加密、调试器检测、字符串加密及名称混淆功能。
导入表保护:将系统模块的函数调用转换为桩函数调用,降低代码可读性
压缩:打包并加密程序中的代码和数据,防止被反编译
JIT加密:加密.NET程序的所有方法的 IL代码,防止被反编译和动态调试
资源加密:加密 .NET 资源,防止资源被提取
调试器检测:勾选此选项后,程序检测到进程被调试时退出进程。
字符串加密:加密代码中的敏感字符串,防止反编译工具直接搜索到相关的函数
名称混淆
温馨提示:
注意:建议开发使用,根据实际需求使用此功能,exe可以选择保留自定义名称设置否,dll文件不支持对在其他模块中调用的类名进行混淆,建议只混淆私有成员。如果混淆后出现程序无法打开,建议取消混淆后尝试。
混淆方式选择:
1.关闭:变量、参数、类名及函数名都不会混淆
2.仅混淆私有成员:参数与私有变量会被混淆,类名及函数名不会混淆
3.保留自定义名称:选择【是】,只混淆参数,类名与函数名称不混淆;选择【否】,类名、函数和参数的名称都会混淆,接口和继承类默认不混淆。
名称混淆配置界面:
图标说明:N-namespace;
C-class;紫色
-method;蓝色
-field
#
执行保护点击【保护选中项目】,保护成功
如果提示【设置了其不支持的保护方式的函数】,再进入函数选项,将不支持的函数改成【代码混淆】或者不保护。
#
程序运行温馨提示:
加壳后的程序会在同一目录下生成新文件(dot_NET2_bounce.exe.ssp)和 protected文件夹,protected里包含加密后的文件
protected:加密后的程序会自动生成,保存在此文件夹下,您可以将此文件替换到原来的程序目录里测试运行。
dot_NET2_bounce.exe.ssp 为配置文件,保存了加密过程中的所有配置项目。