首页
社区
课程
招聘
[原创]开源分享|从零自研 ARM64 虚拟机保护引擎(VMP),2.0 版本已理论覆盖全部 A64 基础指令
发表于: 2天前 771

[原创]开源分享|从零自研 ARM64 虚拟机保护引擎(VMP),2.0 版本已理论覆盖全部 A64 基础指令

2天前
771

分享一个我最近开源的项目 VMPacker —— 一套完整的 ARM64 Linux ELF 虚拟机代码保护系统。

不同于动辄数万的商业 VMP 方案,这个项目完全开源 适合学习和研究 VMP 保护的底层实现原理

2.0 里程碑:121 条 ARM64 指令全覆盖

经过两天的深度适配,2.0 版本总算理论覆盖了所有 ARM64 A64 基础指令集——共 121 条,涵盖:

这意味着绝大多数用 C/C++ 编译出的 ARM64 函数都可以被直接保护,不再因为"不支持的指令"而中断。

最初做项目时,仅通过 UPX 魔改加固,防护效果极差,程序频繁被破解,让我束手无策。

后来在网上寻找 ARM64 架构的开源 VMP 虚拟化保护方案,却发现几乎没有成熟可用的项目(付费方案又动辄数万)。

于是我决定从零自研一套 ARM64 指令级虚拟化保护引擎,最终才有了 VMPacker —— 专注于从根源上提升程序的抗逆向、防破解能力。

整个系统分为三个核心模块:

1. 指令解码器(Go)

2. 字节码翻译器(Go)

3. VM 解释器 Stub(C → flat binary)

项目采用接口驱动设计,Decoder / Translator / Packer 三大接口完全解耦,理论上可扩展支持:

GitHub: f01K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6x3k6h3!0o6K9r3g2F1i4K6u0V1b7$3!0J5k6f1#2A6L8X3c8Q4x3V1k6h3e0g2m8S2j5$3E0W2M7R3`.`.

AGPL-3.0 协议,学习研究随意用。如果觉得有帮助,欢迎点个 ⭐ Star 支持一下! PR 和 Issue 也非常欢迎。
这是2.0版本
图片描述
图片描述 图片描述 图片描述

类别 指令
算术/逻辑 ADD, SUB, MUL, AND, ORR, EOR, LSL, LSR, ASR, MVN, BIC, ORN, EON...
乘法扩展 MADD, MSUB, SMADDL, SMSUBL, UMADDL, UMSUBL, SMULH, UMULH, UDIV, SDIV
数据移动 MOV, MOVZ, MOVK, MOVN
内存访问 LDR, STR, LDP, STP, LDPSW, LDADD, CAS, LDAR, STLR, LDAXR, STLXR(多宽度 + 多寻址模式)
分支控制 B, BL, BR, BLR, RET, B.cond, CBZ/CBNZ, TBZ/TBNZ
条件选择 CSEL, CSINC, CSINV, CSNEG, CCMP, CCMN
位域/位操作 UBFM, SBFM, BFM, EXTR, CLZ, CLS, RBIT, REV, REV16, REV32
进位运算 ADC, ADCS, SBC, SBCS
SIMD LD1, ST1
系统/屏障 SVC, MRS, MSR, ADRP/ADR, DMB, DSB, ISB, HLT, BRK, PRFM
层级 技术 作用
Opcode 随机映射 每次生成不同的指令编码 逆向者无法直接识别语义
OpcodeCryptor enc[pc] = op[pc] ^ (key ^ (pc * 0x9E3779B9)) 静态分析极度困难
字节码逆序 指令倒序存储,解释器反向遍历 增加分析复杂度
Token 入口 3 指令跳板替换原函数 隐藏实际字节码位置
间接派遣 栈上运行时填充函数指针表 破坏 IDA 交叉引用分析
类别 指令
算术/逻辑 ADD, SUB, MUL, AND, ORR, EOR, LSL, LSR, ASR, MVN, BIC, ORN, EON...
乘法扩展 MADD, MSUB, SMADDL, SMSUBL, UMADDL, UMSUBL, SMULH, UMULH, UDIV, SDIV
数据移动 MOV, MOVZ, MOVK, MOVN
内存访问 LDR, STR, LDP, STP, LDPSW, LDADD, CAS, LDAR, STLR, LDAXR, STLXR(多宽度 + 多寻址模式)
分支控制 B, BL, BR, BLR, RET, B.cond, CBZ/CBNZ, TBZ/TBNZ
条件选择 CSEL, CSINC, CSINV, CSNEG, CCMP, CCMN
位域/位操作 UBFM, SBFM, BFM, EXTR, CLZ, CLS, RBIT, REV, REV16, REV32
进位运算 ADC, ADCS, SBC, SBCS
SIMD LD1, ST1
系统/屏障 SVC, MRS, MSR, ADRP/ADR, DMB, DSB, ISB, HLT, BRK, PRFM

[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

收藏
免费 31
支持
分享
最新回复 (13)
雪    币: 7
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2天前
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
6
2天前
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
6
2天前
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
6
2天前
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
64
2天前
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
厉害
2天前
0
雪    币: 199
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
大佬
2天前
0
雪    币: 5279
活跃值: (4488)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
厉害啊   感谢分享
2天前
0
雪    币: 525
活跃值: (1057)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
666
2天前
0
雪    币: 3382
活跃值: (6665)
能力值: ( LV11,RANK:185 )
在线值:
发帖
回帖
粉丝
11
支持一下,这种老派项目越来越少了
1天前
0
雪    币: 4
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
666
1天前
0
雪    币: 5847
活跃值: (10107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
干活来了
4小时前
0
雪    币: 7406
活跃值: (24105)
能力值: ( LV12,RANK:550 )
在线值:
发帖
回帖
粉丝
14
看看
4小时前
0
游客
登录 | 注册 方可回帖
返回