首页
社区
课程
招聘
[求助]《加密与解密》第三版,p81有一处不懂,求指导?
2017-2-14 10:47 4620

[求助]《加密与解密》第三版,p81有一处不懂,求指导?

2017-2-14 10:47
4620
C源码:
int add(int x,int y)
{
    int z;
    z=x+y;
    return z;
}

汇编代码:(解释说,push reg 指令取代 sub esp,4)


图中,汇编代码,这个函数其中有两个push 一个pop,并且,
最后pop拿到了ebp的值,这跟入栈的顺序不符合啊,难道中间谁弹了栈?

《加密与解密》第三版,第81页

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 1366
活跃值: (5584)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
supperlitt 2017-2-14 13:58
2
0
哎,堕落了。
雪    币: 440
活跃值: (848)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
猫子 2017-2-14 14:40
3
0
图片挂了??
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Wings翅膀 2017-2-14 15:20
4
0
mov esp,ebp  这句就把局部变量的栈都给销毁了。再pop 就对了    只要关注esp的变化就对了  不仅仅是push pop会改变esp的值  像mov esp,.....                       add esp,.....      sub esp,...... 都会改变的
雪    币: 1366
活跃值: (5584)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
supperlitt 2017-2-14 16:20
5
0
哦,意思就是说,因为上面的,mov esp,ebp
把原来的数据,堆栈的指针位置变更了,所以也就不需要pop出ecx了,因为他已经调出堆栈了。
所以最后pop就拿到ebp的值了。

应该就是这样了,感谢!
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
petersonhz 2018-2-10 21:00
6
0
看汇编会搞xposed有帮助么?
游客
登录 | 注册 方可回帖
返回