基于 LLVM 保护技术的产品一般以编译器的形式提供,而采用 ARM-VM 技术的产品则以客户端工具的形式提供,在使用方面,客户端工具更加简单灵活。
安全性
| 项目 | 
基于ARM-VM技术 | 
基于LLVM技术 | 
| 反编译效果 | 
无法被反编译 | 
可以被反编译 | 
| 函数体边界 | 
函数体保护后通过指令切片技术分布在二进制中的随机位置,无法直接确定边界 | 
由编译器生成,函数边界清晰,函数间调用关系清晰可见 | 
| 保护颗粒度 | 
以汇编指令为粒度,保护针对每个指令,灵活度和自由度高 | 
以LLVM 中间语言 IR 为粒度,后端会生成相应的汇编指令,灵活度差 | 
易用性
| 项目 | 
基于ARM-VM技术 | 
基于LLVM技术 | 
| 试用评估 | 
免费试用 | 
基本不提供试用 | 
| 产品接入 | 
安装即用 | 
配置复杂,部分带有专用设备 | 
| 开发环境影响 | 
无需配置编译环境 | 
需要配置编译环境 | 
适应性
| 项目 | 
基于ARM-VM技术 | 
基于LLVM技术 | 
| 语言标准 | 
几乎任意可编译为Native程序的语言 | 
clang 前端支持的语言 | 
| 开发语言 | 
C、C++、OC、Swift、go、汇编语言等 | 
C、C++、OC、Swift | 
 
 
 
 
 
 
 
第7部分——技术规格
开发环境支持
Windows、Linux、macOS。
开发语言支持
C、C++、Objective-C、Swift、go、汇编语言等。
架构支持
X86、x64、ARM32、ARM64