【发布时间】:2015-10-12 17:00:17
【问题描述】:
假设堆栈如下,其中字符串 /bin/sh 的地址为 0x11:
在movl %esi, 0x8(%esi)之后,我认为从内存地址%esi加载的值会被移动到0x8(%esi)(这是movl的定义)。所以字符串/bin/sh 将被放在地址0x8(%esi)。但结果是11 被放在那个地址。在我看来,如果我们想将11 放在那个地址,我们应该使用leal 指令,因为leal 不会取消引用(只是一个地址而不是值)。
【问题讨论】: