视频分享地址: https://spa|

明月照江江

园龄:7年4个月粉丝:34关注:0

📂CTF
🔖CTF
2023-03-13 17:19阅读: 310评论: 0推荐: 0

【Android 逆向】【ARM汇编】 arm64部分知识

arm64寄存器更多
X0-X30 SP CPSR PC 64W0-W30            32
PC寄存器的值禁止修改
参数放在 X0-X7/W0-W7
结果放在 X0
函数返回 RET 相当于 bl lr
Arm64 没有LR寄存器, lr用X30 栈底用X29
ARM64 取消了ldm/stm push/pop 取而代之 STP/LDP
STUR STR 区别
STUR X8, [X29, #var_F8] 
STUR 代表向负数偏移 var_F8 就是个负数,X29是栈底位置 向栈顶偏移

STR X8, [SP, #0x220+var_110]
STR 代表向正数偏移, #0x220 是栈顶到栈底的距离 #0x220+var_110 是是个正数,SP是栈顶,代表栈顶向栈底偏移

WZR/XZR 0寄存器
STUR WZR , [X29, #100] 相当于 mov X0, 0  STR X0, [SP, #100]
乘法指令MADD

MADD W8, W8, W10, WZR 相当于 W8 = W8*W10+WZR

浮点数寄存器

浮点寄存器 64位: D0 - D31 32位: S0 - S31

如果函数的返回值是double或者float, 那么有可能是用D0或者S0作为返回值

本文作者:明月照江江

本文链接:https://www.cnblogs.com/gradyblog/p/17212192.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   明月照江江  阅读(310)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起