帮忙看一下谢谢

发布于 2022-09-18 18:37:46 字数 1334 浏览 9 评论 0

重新整理了下
lea 0x4(%esp),%ecx     当前esp的值是0xbfc5489c  这个操作相当于 ecx的值是0xbfc548a0
and $0xfffffff0,%esp      这个使esp的值变成0xbfc54890
pushl 0xffffffc(%ecx)      这个把0xbfc5489c压入堆栈        目前esp 为0xbfc5488c
push %ebp                   压原来ebp进堆栈                        目前esp为0xbfc54888
mov %esp,%ebp           栈基地址指向新地方                    ebp为0xbfc54888
push %ecx                   压入原来的ecx                             目前esp为0xbfc54884
sub $0x24,%esp          开辟9个槽位的堆栈空间                 目前esp为0xbfc54860
movl $0x809fb28,0xfffffff4(%ebp)        在0xbfc5487c位置存入 0x809fb28

可是问题是为什么在gdb下,我用x/i  0xbfc5487c 命令显示的不是0x809fb28?
汇编多年没碰,gdb没用过?能帮我下?谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝眸 2022-09-25 18:37:46

可能是我gdb用的不对
后面的 mov 0xfffffff4(%ebp) ,%eax

我用x/i $eax 显示的确是0x809fb28
但是用x/i 0xbfc5487c显示却是不同的结果

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文