首页
社区
课程
招聘
[旧帖] [求助]想问下关于寄存器的问题 0.00雪花
发表于: 2007-7-31 21:43 4049

[旧帖] [求助]想问下关于寄存器的问题 0.00雪花

2007-7-31 21:43
4049
调用子函数时,EBP,ESP,EIP里面的储存的指针各代表什么意思啊?
为什么在LINUX下覆盖的RET地址实在EBP的上面?

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
2
不懂linux,呵呵,
esp是堆栈指针寄存器,保存的总是堆栈指针,就是栈顶的地址,EIP是指向要执行的下一条指令的地址
子函数中通常会有push ebp;mov ebp,esp,经过这个指令以后,ebp也指向堆栈了,偶觉得这样做有两个原因,1是因为esp经常变,而ebp不变,访问变量更方便.哈哈
还有就是有些编译器会在子函数后面加上leave指令,这个指令会把ebp的值放进esp,能防止堆栈不平衡影响程序的运行.
猜的,要是问题很严重建议你查资料.
2007-7-31 22:06
0
雪    币: 215
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
真的很感谢,不过有看了下汇编代码,感觉在子函数中,EBP好像是栈底。
2007-8-1 21:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
linux还是windows没有关系吧,这寄存器和汇编都是基于x86体系的,而不是基于操作系统的

所以和操作系统无关
2007-8-1 22:07
0
游客
登录 | 注册 方可回帖
返回
//