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

ARM虚拟化加密

2022-11-4 15:43
7574

随着移动应用和 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)


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

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