微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

查找输入和堆栈中返回地址位置之间的字节数

如何解决查找输入和堆栈中返回地址位置之间的字节数

想知道如何在运行此代码时找到输入和返回地址在堆栈中位置之间的字节数,以及在调用 showstack() 之前立即设置到 %esp 寄存器的值>

void showstack (int a,int b,int c) {
    char input [14];
    char x,y;
    int *ret,i;

    for (i=0; i < 10; i++)
        input[i] = i;

    ret = (int *)input;

    for (i = 18; i >= 0; i--)
        printf("%8X:%8X\n",&(ret[i]),ret[i]);
}

int main(void) {
    showstack (1,2,3);
}

这是程序的输出

BFFFF3BE:   1B7E3
BFFFF3BA:94D30000
BFFFF3B6:       0
BFFFF3B2:     804
BFFFF3AE:84E0B7FC
BFFFF3AA:4FF40000
BFFFF3A6:   30000
BFFFF3A2:   20000
BFFFF39E:   10804
BFFFF39A:84DEBFFF
BFFFF396:F3B8B7E5
BFFFF392:3196FFFF
BFFFF38E:FFFF5259
BFFFF38A: 6000804
BFFFF386:9FF40908
BFFFF382: 7060504
BFFFF37E: 3020100

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。