首页
论坛
课程
招聘
[求助]进入函数时的代码问题 求指点
2017-10-2 19:30 1455

[求助]进入函数时的代码问题 求指点

2017-10-2 19:30
1455

进入函数时的代码问题 求指点

debug版本

int main(){

push ebp

...

push ebx;功能?

push esi;功能?

push edi

...

请问这两个寄存器(ebx,esi)功能是什么 进入函数的代码好像也没用到..


[注意] 欢迎加入看雪团队!base上海,招聘安全工程师、逆向工程师多个坑位等你投递!

收藏
点赞0
打赏
分享
最新回复 (4)
雪    币: 5639
活跃值: 活跃值 (563)
能力值: ( LV17,RANK:1185 )
在线值:
发帖
回帖
粉丝
holing 活跃值 15 2017-10-2 20:27
2
0
ebx  esi  edi  这三个寄存器是要保存初始状态的,所以要修改的时候都必须要push保存然后函数退出的时候pop
雪    币: 221
活跃值: 活跃值 (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WandererY 活跃值 2017-10-2 22:16
3
0
holing ebx esi edi 这三个寄存器是要保存初始状态的,所以要修改的时候都必须要push保存然后函数退出的时候pop
请问初始状态的值是干啥的  为什么要保存
雪    币: 5639
活跃值: 活跃值 (563)
能力值: ( LV17,RANK:1185 )
在线值:
发帖
回帖
粉丝
holing 活跃值 15 2017-10-2 23:51
4
0
WandererY 请问初始状态的值是干啥的 为什么要保存
调用这个函数的函数可能在这些寄存器里面存了一些值并且假设调用一个函数不会改变他的值,所以调用的时候如果需要使用这些寄存器就必须要先保存在栈中,返回时还原
雪    币: 221
活跃值: 活跃值 (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WandererY 活跃值 2017-10-3 09:28
5
0
holing 调用这个函数的函数可能在这些寄存器里面存了一些值并且假设调用一个函数不会改变他的值,所以调用的时候如果需要使用这些寄存器就必须要先保存在栈中,返回时还原
好的谢谢
游客
登录 | 注册 方可回帖
返回