吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3468|回复: 8
收起左侧

[Android 原创] 如何动态调试来学习ARM汇编 6 fp(r11)寄存器

  [复制链接]
havenow 发表于 2021-3-21 20:36
本帖最后由 havenow 于 2021-3-21 20:43 编辑

R11 FP 栈帧寄存器
函数利用栈来保存局部变量,保存寄存器状态;为了让所有事物有序运行,函数使用栈帧,即栈中的一片本地化内存区域,专用于特定的函数;栈帧是在函数的prologue中创建的。将栈帧指针(FP)设置到栈帧的底部,然后为栈帧分配的栈缓存会被开辟。

栈帧(从它的底部开始)通常包含返回地址(LR)、先前的帧指针、需要保存的任何寄存器、函数参数(如果函数接受超过4个参数)、局部变量等。
虽然栈帧的实际存储内容可能有所不同,但是之前概述的那些内容是最常见的。最后,栈帧在函数运行到结尾部分时被破坏。
下图是栈中栈帧的抽象简图

1

1



下面的函数
int main(){
int res = 0;
int a = 1;
int b = 2;
res = max(a, b);
return res;
}

int max(int a,int b){
do_nothing();
if(a<b) {
return b;
} else {
return a;
}
}

int do_nothing(){
return 0;
}
进入max函数执行完第一条指令0xaae2441c <+0>:        push        {r11, lr} 后

2

2

注意这里栈中地址0xfffefac8存的是上一次的fp寄存器的值,max函数的mov r11, sp执行后
───────────────────────────────────────────────────────────────────────────────────── stack ────
0xfffefab0│+0x0000: 0xfffefac8  →  0xfffefaf8  →  0x00000000         ← $r11, $sp
0xfffefab4│+0x0004: 0xaae2440c  →  <main+52> str r0,  [sp,  #8]
0xfffefab8│+0x0008: 0x00000002
0xfffefabc│+0x000c: 0x00000001
0xfffefac0│+0x0010: 0x00000000
0xfffefac4│+0x0014: 0x00000000
0xfffefac8│+0x0018: 0xfffefaf8  →  0x00000000
0xfffefacc│+0x001c: 0xf7691c4f  →  <__libc_init+51> blx 0xf768f514 <exit@plt>

免费评分

参与人数 6吾爱币 +12 热心值 +5 收起 理由
qtfreet00 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ayxtyzwzq + 1 + 1 我很赞同!
gzshlp + 1 我很赞同!
keA + 1 + 1 用心讨论,共获提升!
zhuzhuxia111 + 1 + 1 我很赞同!
lyl610abc + 1 + 1 用心讨论,共获提升!

查看全部评分

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

jfkkf123 发表于 2021-3-21 22:17
请问一般在什么情况下才会自己来写汇编程序?裸机开发?还是其他什么情况下
bigdawn 发表于 2021-3-21 23:00
ice_xyz 发表于 2021-3-22 16:06
鹤舞九月天 发表于 2021-3-23 07:43
Z最好能讲讲具体的指令
来根烟 发表于 2021-3-23 12:09
感谢分享1111
lovehfs 发表于 2021-3-23 19:41
最近在学汇编,好好了解一下。
 楼主| havenow 发表于 2021-4-6 09:42
jfkkf123 发表于 2021-3-21 22:17
请问一般在什么情况下才会自己来写汇编程序?裸机开发?还是其他什么情况下

个人所知,写bootloader或者app加壳
芽衣 发表于 2021-5-7 10:03
这个是搬运的吧,百度也有一模一样的。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-5-4 08:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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