一文搞懂 ARM 64: AUTIBSP

1 PAC

有关PAC可以参看《一文搞懂 ARM 64: PACIBSP》

2 指令语法

AUTIBSP

3 指令语义

上面指令对寄存器X30或者说寄存器LR的值进行PAC验证。

指令AUTIBSPB代表使用密钥B,同时SP表示「上下文」使用寄存器SP的值。

下面是一个运行AUTIBSP后,X30的值的变化例子:

// 验证前
(lldb) p/x $x30
(unsigned long) 0x3f57fc010817f7bc
// 验证后
(lldb) p/x $x30
(unsigned long) 0x000000010817f7bc

从上面输出可以看到,验证成功之后,指针高bit的「签名」被移除掉,指针恢复成原来的值。

4 同类指令

4.1 AUTIB

AUTIB <Xd>, <Xn|SP>

密钥: 密钥B

上下文: 寄存器Xn或者寄存器SP的值。

指针地址: 寄存器Xd的值。

4.2 AUTIB1716

AUTIB1716

密钥: 密钥B

上下文: 寄存器X16的值。

指针地址: 寄存器X17的值。

4.3 AUITBZ

AUTIBZ

密钥: 密钥B

上下文: 0

指针地址: 寄存器X30或者说寄存器LR的值。

4.4 AUTIZB

AUTIZB <Xd>

密钥: 密钥B

上下文: 0

指针地址: 寄存器Xd的值。

4.5 密钥 A 指令

指令AUTIASP AUTIA AUTIA1716 AUTIAZ AUTIZA除了使用密钥A进行PAC验证之外,其它都与对应的AUTIB*指令一样。

posted @   chaoguo1234  阅读(59)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
历史上的今天:
2023-11-13 GCD Inside: GCD 数据结构
2013-11-13 java中的native关键字
点击右上角即可分享
微信分享提示