将错误的整数压入堆栈
我试图理解为什么指令:
pushl 0x4013ea
不推送预期的值,而是我在堆栈上有这个:
(gdb) x/wx $esp
0x22ff18: 0xc3899090
我在 Windows 上使用 gdb 如果这可以帮助
谢谢
Am trying to understand why is the instruction:
pushl 0x4013ea
not pushing the value expected but rather I have this on the stack:
(gdb) x/wx $esp
0x22ff18: 0xc3899090
I am on windows using gdb if that could help
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我敢打赌 0x4013ea 被视为内存地址,因此,该地址处的值被推入堆栈而不是文字值本身。
尝试
pushl $4013ea
(可能需要包含 0x,取决于您的汇编器语法)I would bet that 0x4013ea is being treated as a memory address, therefore, the value at that address is being pushed onto stack rather than the literal value itself.
try
pushl $4013ea
(might need to include 0x, depends on your assembler syntax)