首页
社区
课程
招聘
[讨论]《加密与解密(第三版)》第四章的错误
发表于: 2010-7-30 12:26 5581

[讨论]《加密与解密(第三版)》第四章的错误

2010-7-30 12:26
5581
我读第四章发现的问题,勘误帖子中没有这个问题,所以发出来,大家一起讨论。

1、P74, 关于enter和leave
   书中在讲解堆栈平衡时,给出的代码是:add esp,8/pop ebp,并指出这相当于leave。我对此专门进行了测试,把add esp,8/pop ebp,说成leave肯定不对,应该是mov esp,ebp/pop ebp。另外,不知道书中给出的”汇编代码大致情况“是手写的,还是反汇编生成的,我猜想是作者为了讲解堆栈平衡手写的,因为书中并没有给出代码和exe文件,我采用不同的编译选项编译生成exe,然后反汇编始终没有发现add esp,4,都是mov esp,ebp。
   
2、P75,给出的函数堆栈创建图,我觉得不够严谨。系统进栈是++esp,mvoe [esp],value,也就是说esp当前指向的是有效值。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不懂,帮顶。
2010-8-8 08:46
0
雪    币: 129
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看帖回帖职业道德
2010-8-14 17:28
0
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
4
32位CPU下
leave指令相当于
mov esp, ebp;
pop ebp;
(参考IA32指令手册)

《加密与解密 第三版》PAGE 75 这样写到:
“ 。。。而leave 则完成‘add esp, xxx/pop ebp’的功能。。。 ”
这样说是有问题的。leave指令没有参数,所以xxx这个不确定的东东是不可能存在的。
2010-9-12 09:59
0
游客
登录 | 注册 方可回帖
返回
//