Virbox Protector 的命令行工具 virboxprotector_con 的默认路径位于:
Windows:C:\Program Files\senseshield\Virbox Protector 3\bin
Linux:/usr/share/virboxprotector/bin
macOS:/Applications/Virbox Protector 3.app/Contents/MacOS/bin
调用命令行可以指定完整全路径,例如:
"C:\Program Files\senseshield\Virbox Protector 3\bin\virboxprotector_con.exe" <file_path> <options ..> -o <output_path>
如果在 Windows系统,也可以加入环境变量,然后直接输入 virboxprotector_con,无需输入全路径。
非 Windows 系统,也可以设置软链接:
sudo ln -s /usr/share/virboxprotector/bin/virboxprotector_con /usr/local/bin/virboxprotector_con
然后即可直接输入virboxprotector_con 命令进行保护。
对于一般的程序类型,可以直接传入路径进行保护,程序类型可以自动识别,如:
virboxprotector_con <file_path> <options ...> -o <output_path>
对于几类特殊的保护方式,需要指定类型:
Unity3D资源加密(Windows/Linux热更新)
举例:
长命令行风格
对于绝大部分开关类型的命令行选项,使用 --{opt}=value 的风格,1代表开启,0 代表关闭:
举例
--mem-check=1, --jit-enc=0
命令行帮助
更细节的参数,可以使用 --help={type}查看帮助:
例如:
支持的类型如下:
其中 native 程序是指操作系统原生的程序类型,运行时不依赖于虚拟机或解释器的程序,一般由C/C++/Delphi/VB6 等语言编译生成,包括 Windows 下 PE 格式的程序(.exe/.dll/.sys等后缀),Linux/Android 下 ELF 格式的程序(.so后缀或主程序),macOS/iOS 下的 MachO 格式的程序(.dylib或主程序)。
Android APK/AAB
资源加密
使用 --res-enc=1 开启资源加密,资源列表使用 ; 隔开,支持通配符 *。
举例:
SO 保护
举例:
函数选项
APK/AAB 的函数级保护仅支持代码虚拟化。
默认虚拟化入口Application类 和 Main Activity类中的方法,指定具体函数见 函数选项。
多渠道打包
多渠道打包见 多渠道打包。
签名
签名选项见 签名选项。
举例
签名命令见 签名选项。
签名选项
见 签名选项 中的 iOS/macOS 签名。
如果没有附加数据,则忽略 --overlay-enc 选项。
名称混淆选项
--rename=0 关闭。
--rename=1 混淆私有成员。
--rename=2 保留自定义名称。
名称保留规则
使用封号; 隔开,支持通配符*。
举例
函数选项
见函数选项,默认对入口函数代码加密。
程序集加密
使用 -asm 指定程序集列表,使用封号 ; 隔开,支持通配符 *,默认会加密 Assembly-CSharp 和 Assembly-UnityStrcip 开头的 Dll,一般无需指定。
举例:
Copy
资源加密
使用 --res-enc=1 开启资源加密,资源列表使用封号; 隔开,支持通配符 *。
举例:
Copy
Java-BCE#
Copy
举例:
Copy
Java-VME#
Java-VME 仅支持代码虚拟化保护。
举例(保护test1和test2的所有方法):
Copy
举例(保护jar包中的所有方法):
Copy
AAR#
Android AAR 支持代码虚拟化,和其中的SO库的保护:
举例(保护com.example 包下所有类方法,保护所有so库):
Copy
Copy
举例
Copy
支持指定函数名称或规则保护,使用 ;号隔开, 支持通配符 *。
--ignore-unsupported=<value>
举例
-m "function1;function2" -v "function3;function4" -e "test*" --ignore-unsupported=1
--ignore-unsupported= 选项用于忽略不支持的函数,不支持则跳过,对 Jar/aar/war/apk/aab 格式的程序默认开启。
保护并使用渠道模板
Copy
仅渠道打包不做保护
Copy
指定签名(可选)
以上命令,均可指定签名选项,见 签名选项。
使用 -ilmerge 选项进行合并:
Copy
举例
Copy
使用 -strip 选项移除 ELF 程序中的调试信息(静态符号表和静态字符串表):
Copy
举例