基于 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