吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1821|回复: 17
上一主题 下一主题
收起左侧

[Packers] 开源分享|从零自研 ARM64 虚拟机VMP2.0 版本已理论覆盖全部 A64 基础指令

  [复制链接]
跳转到指定楼层
楼主
cxkOS 发表于 2026-3-4 20:34 回帖奖励

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

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

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

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

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

类别 指令
算术/逻辑 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

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


💡 研究初衷

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

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

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


🏗️ 技术架构

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

1. 指令解码器(Go)

  • 基于 ARM Architecture Reference Manual 的 table-driven 模式匹配
  • 支持 DP-IMM / DP-REG / Branch / Load-Store 四大指令族
  • 解码结果为统一的中间表示(IR)

2. 字节码翻译器(Go)

  • 将 ARM64 IR 翻译为 63 条自定义 VM 指令
  • 处理 PC 相对地址重定位(ADRP/ADR → 绝对地址计算)
  • 分支目标地址修正 + Label 引用解析

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

  • 编译为位置无关的纯二进制(PIC)
  • 通过 PT_NOTE 段劫持注入到 ELF
  • 运行时在栈上构建间接跳转表
  • CRC32 完整性校验

🔐 五层保护机制

层级 技术 作用
Opcode 随机映射 每次生成不同的指令编码 逆向者无法直接识别语义
OpcodeCryptor enc[pc] = op[pc] ^ (key ^ (pc * 0x9E3779B9)) 静态分析极度困难
字节码逆序 指令倒序存储,解释器反向遍历 增加分析复杂度
Token 入口 3 指令跳板替换原函数 隐藏实际字节码位置
间接派遣 栈上运行时填充函数指针表 破坏 IDA 交叉引用分析

🧩 可扩展性

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

  • 其他 ISA:x86_64, RISC-V
  • 其他二进制格式:PE (Windows), Mach-O (macOS)

📌 项目地址

GitHub: https://github.com/LeoChen-CoreMind/VMPacker

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



image.png (238.33 KB, 下载次数: 0)

image.png

image.png (238.33 KB, 下载次数: 0)

image.png

image.png (124.39 KB, 下载次数: 0)

image.png

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
156608225 + 2 + 1 谢谢@Thanks!
sblpp + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
tongdaren 发表于 2026-3-4 21:17
牛X—plus版本
3#
Leon19960120 发表于 2026-3-4 21:27
4#
sblpp 发表于 2026-3-4 21:44
5#
博爵 发表于 2026-3-4 23:02
感谢分享,arm电脑听说过,很难用.
6#
CLLL 发表于 2026-3-4 23:24
感谢分享,学习学习
7#
user_0628 发表于 2026-3-5 07:59
感谢大佬分享,赞~
8#
不知道改成啥 发表于 2026-3-5 10:24
博爵 发表于 2026-3-4 23:02
感谢分享,arm电脑听说过,很难用.

这话说的苹果新版都是arm的
9#
Regularfolks 发表于 2026-3-5 11:45
感谢大佬分享,star一下
10#
lavezzi 发表于 2026-3-5 16:23

感谢大佬分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-4-20 10:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表