星巡研究院

渗透视角下的二进制安全

### 移动 - 1 ARM64 汇编基础 #### 1. 链路定位 * 在整册链路中的位置:把桌面 x86-64 的逆向经验平移到 ARM64,是 Android 原生层分析的前提。 * 作用:建立寄存器模型、调用约定与控制转移的对照。 #### 2. 前置知识 * x86-64 的寄存器与 System V 传参(对照 - 1、对照 - 5)。 * 栈帧、返回地址、条件分支概念。 #### 3. 技术原理 * ARM64(AArch64)有 31 个通用寄存器 `X0-X30`(64 位),低 32 位写作 `W0-W30`。另有 `SP`(栈指针)与程序计数 `PC`。AAPCS64 调用约定:前八个整型参数放 `X0-X7`,返回值放 `X0`。`X29` 作帧指针(FP),`X30` 即链接寄存器(LR)保存返回地址。与 x86-64 最大差异:函数调用 `bl` 把返回地址写入 `X30` 而非压栈,返回 `ret` 从 `X30` 跳走。栈要求 16 字节对齐。条件分支用 `B.cond`,load/store 分离(`LDR/STR`),指令
这是进阶内容

升级理论包获取本册全部章节,从机器本质系统入门