命令行选项
命令行工具
Virbox Protector
的命令行工具 virboxprotector_con
的默认路径位于:
调用命令行可以指定完整全路径,例如:
如果在 Windows系统,也可以加入环境变量,然后直接输入 virboxprotector_con
,无需输入全路径。
非 Windows 系统,也可以设置软链接:
然后即可直接输入virboxprotector_con
命令进行保护。
命令行主功能#
对于一般的程序类型,可以直接传入路径进行保护,程序类型可以自动识别,如:
对于几类特殊的保护方式,需要指定类型:
保护方式 | 参数 |
---|---|
Java-BCE 保护方式 |
|
Unity3D资源加密(Windows/Linux热更新) |
|
Html5应用(.js) |
|
移除调试信息(ELF格式 strip) |
|
多渠道打包 |
|
程序集合并 |
|
举例:
长命令行风格
对于绝大部分开关
类型的命令行选项,使用 --{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
选项 | 命令行 | 默认选项 |
---|---|---|
Dex 加密 |
|
|
文件校验 |
|
|
签名校验 |
|
|
反注入 |
|
|
调试器检测 |
|
|
模拟器检测 |
|
|
Root检测 |
|
|
多开检测 |
|
|
输出 apks (AAB启用签名时生效) |
| N/A |
资源加密
使用 --res-enc=1
开启资源加密,资源列表使用 ;
隔开,支持通配符 *
。
选项 | 命令行 | 默认选项 |
---|---|---|
启用 |
|
|
资源列表 |
| 默认所有资源 |
举例:
SO 保护
选项 | 命令行 | 默认选项 |
---|---|---|
隐藏符号表 |
|
|
资源列表 |
| N/A |
举例:
函数选项
APK/AAB 的函数级保护仅支持代码虚拟化
。
默认虚拟化入口Application类 和 Main Activity类中的方法,指定具体函数见 函数选项。
多渠道打包
多渠道打包见 多渠道打包。
签名
签名选项见 签名选项。
举例
PE#
选项 | 命令行 | 默认选项 |
---|---|---|
压缩 |
|
|
内存校验 |
|
|
导入表保护 |
|
|
资源节加密 |
|
|
附加数据加密 |
|
|
调试器检测 |
|
|
虚拟机检测 |
|
|
ELF#
选项 | 命令行 | 默认选项 |
---|---|---|
压缩 |
|
|
内存校验 |
|
|
调试器检测 |
|
|
剥离符号表 |
|
|
MachO#
选项 | 命令行 | 默认选项 |
---|---|---|
内存校验 |
|
|
调试器检测 |
|
|
签名命令见 签名选项。
App#
选项 | 命令行 | 默认选项 |
---|---|---|
内存校验 |
|
|
调试器检测 |
|
|
Objective-C名称混淆 |
|
|
输出路径 |
|
|
IPA 路径(需启用签名) |
| 无 |
签名选项
见 签名选项 中的 iOS/macOS 签名。
.NET#
选项 | 命令行 | 默认选项 |
---|---|---|
压缩 |
|
|
JIT 加密 |
|
|
字符串加密 |
|
|
附加数据加密 |
|
|
调试器检测 |
|
|
名称混淆 |
|
|
名称混淆保留规则 |
|
|
如果没有附加数据,则忽略
--overlay-enc
选项。
名称混淆选项
--rename=0
关闭。
--rename=1
混淆私有成员。
--rename=2
保留自定义名称。
名称保留规则
使用封号;
隔开,支持通配符*
。
举例
函数选项
见函数选项,默认对入口函数代码加密。
Unity3D#
选项 | 命令行 | 默认选项 |
---|---|---|
内存校验(仅il2cpp) |
|
|
文件校验(仅安卓) |
|
|
签名校验(仅安卓) |
|
|
反注入(仅安卓) |
|
|
Unity引擎保护(仅安卓il2cpp) |
|
|
MetaData名称混淆(仅il2cpp) |
|
|
调试器检测 |
|
|
模拟器检测(仅安卓) |
|
|
Root检测(仅安卓) |
|
|
多开检测(仅安卓) |
|
|
程序集加密
使用 -asm
指定程序集列表,使用封号 ;
隔开,支持通配符 *
,默认会加密 Assembly-CSharp
和 Assembly-UnityStrcip
开头的 Dll,一般无需指定。
举例:
Copy
资源加密
使用 --res-enc=1
开启资源加密,资源列表使用封号;
隔开,支持通配符 *
。
选项 | 命令行 | 默认选项 |
---|---|---|
启用 |
|
|
大小优先(仅安卓、iOS) |
|
|
资源加密密码(仅Windows/Linux) |
| N/A |
资源列表 |
| 默认所有资源 |
举例:
Copy
Java#
Java-BCE#
Copy
选项 | 命令行 | 默认选项 |
---|---|---|
设置密码 |
| 随机 |
加密内嵌jar包 |
|
|
输出路径 |
| xxxx_protected |
举例:
Copy
Java-VME#
Java-VME 仅支持代码虚拟化保护。
举例(保护test1和test2的所有方法):
Copy
举例(保护jar包中的所有方法):
Copy
AAR#
Android AAR 支持代码虚拟化,和其中的SO库的保护:
举例(保护com.example 包下所有类方法,保护所有so库):
Copy
H5#
Copy
签名选项#
APK/AAB 签名#
选项 | 命令行 | 默认选项 |
---|---|---|
启用签名 |
|
|
Key Store 路径 |
| 全局配置 |
Key Store 密码 |
| 全局配置 |
密钥别名 |
| 全局配置 |
密钥密码 |
| 全局配置 |
举例
Copy
iOS/macOS 签名#
选项 | 命令行 | 默认选项 |
---|---|---|
启用签名 |
|
|
证书 |
| N/A |
函数选项#
支持指定函数名称或规则保护,使用 ;
号隔开, 支持通配符 *
。
选项 | 命令行 | 通配符 |
---|---|---|
忽略不支持的函数 |
| N/A |
代码加密 |
| 支持 * |
代码混淆 |
| 支持 * |
代码虚拟化 |
| 支持 * |
举例
-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
举例
最后更新于