首页
社区
课程
招聘
ARM虚拟化加密
2022-11-4 15:43 6743

ARM虚拟化加密

2022-11-4 15:43
6743

随着移动应用和 IoT 设备的普及,大量的硬件抛弃了传统的 x86 架构,选择使用能耗低、性价比高的 ARM 芯片,ARM 指令级渐渐成为主流,但随之而来的,是愈发严峻的安全问题。

 

VirboxProtector(简称:VBP)针对 Android 系统的开放性特征,在对其保护上采用了 ARM 虚拟化技术。其安全强度远超于直接对 SO 文件中的代码段压缩或加密,也区别于基于 LLVM 的代码保护,ARM 虚拟化技术是直接对指令进行保护,实现了更高等级的安全保护!

ARM 虚拟化技术原理

ARM 虚拟化延续了 PC 端对 x86 指令的虚拟化保护思路,将其完整地适配到了 ARM 平台,该技术的实现完全独立,由单独的工具来实现,直接对编译生成的二进制文件进行保护。完整的技术实现,由解析,配置,编译(混淆、虚拟化),链接等几个步骤完成。

 

ARM 虚拟化技术则位于“编译”过程通过将 ARM 指令翻译成自定义的虚拟机指令,并将虚拟机解释器和虚拟指令以指令块和数据块的方式插入“块表”中,最终链接成新的可执行程序。
图片描述

虚拟化技术特点

01 无法被反编译

通过指令切片,间接跳转等处理,生成的指令块无法被 IDA 分析,只能查看汇编指令。

02无函数边界

通过链接器乱序再重定位,生成的指令块在可执行文件中的位置是随机的,函数保护后变成了无数个随机位置的指令碎片,无法知道函数的边界。

03更精细的保护粒度

直接对 ARM 指令保护,可以更精细的控制指令和寄存器,灵活性高,能够达到更高的安全性上限。

04适应性高

直接处理 ARM 指令,不受限于开发语言和语法标准,几乎可以保护任何编译为 ARM 架构的程序,如 golang 等。

虚拟化效果

示例 : 对 rc4 算法保护,经过 IDA Pro分析

 

图片描述
图片描述

如何使用虚拟化保护

1.下载安装VirboxProtector

 

2.将可执行程序或者 so库添加到工具里,配置函数选项,选择虚拟化保护即可。
图片描述

适用的程序类型

Virbox Protector 支持 ARM Linux /Android 系统下的 so库和可执行程序,支持 macOS/iOS 主程序和 dylib。

开发语言支持

C、C++、Objective-C、Swift、go、汇编语言等。

架构支持

x86、x64、arm32(支持thumb/thumb2)、arm64(支持 arm64e)


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 477
活跃值: (1412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_foyotena 2022-11-4 16:06
2
0
性能问题解决了吗
雪    币: 86
活跃值: (326)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Virbox 2022-11-4 16:11
3
0
mb_foyotena 性能问题解决了吗
混淆和虚拟化可以自由选择函数,这个是可以调节的。
雪    币: 76
活跃值: (852)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
淡淡的荧光 1 2022-11-4 18:43
4
0
纯虚拟化跑aes算法相比native慢多少倍
雪    币: 368
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
逆向涉猎 2022-11-4 19:35
5
0
VMProtect好像也支持ARM了,不知道两者比起来怎么样
雪    币: 239
活跃值: (213312)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
shinratensei 1 2022-11-4 20:31
6
0
对抗要来了吗?
游客
登录 | 注册 方可回帖
返回