Chinaunix首页 | 论坛 | 博客
  • 博客访问: 216798
  • 博文数量: 40
  • 博客积分: 316
  • 博客等级: 二等列兵
  • 技术积分: 840
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-13 12:39
文章分类

全部博文(40)

文章存档

2014年(2)

2013年(28)

2012年(10)

分类: C/C++

2013-09-24 18:20:26

int get_input()
{
    char buffer[8];

    gets(buffer);
    puts(buffer);
    return 1;
}
-------------------------------
   0x08048464 <+0>:    push   %ebp             
   0x08048465 <+1>:    mov    %esp,%ebp   
   0x08048467 <+3>:    sub    $0x10,%esp      
   0x0804846a <+6>:    mov    %gs:0x14,%eax                //ssp 保护技术的东西。
   0x08048470 <+12>:    mov    %eax,-0x4(%ebp)           //把ssp的那个 对比的随机数放入ebp紧挨着的地址。 
   0x08048473 <+15>:    xor    %eax,%eax
   0x08048475 <+17>:    lea    -0xc(%ebp),%eax      //把buffer的地址给eax
   0x08048478 <+20>:    mov    %eax,(%esp)             // 把buffer的地址压栈传参,为call做准备。
   0x0804847b <+23>:    call   0x8048360
   0x08048480 <+28>:    lea    -0xc(%ebp),%eax     //把buffer的地址给eax
   0x08048483 <+31>:    mov    %eax,(%esp)          // 把buffer的地址压栈传参,为call做准备。
   0x08048486 <+34>:    call   0x8048380
=> 0x0804848b <+39>:    mov    $0x1,%eax              //为return1 做准备。
   0x08048490 <+44>:    mov    -0x4(%ebp),%edx     //將ebp下紧挨的ssp的哪个随机数给edx。
   0x08048493 <+47>:    xor    %gs:0x14,%edx          //比较edx与 gs:0x14.ssp的技术。
   0x0804849a <+54>:    je     0x80484a1
   0x0804849c <+56>:    call   0x8048370 <__stack_chk_fail@plt>
   0x080484a1 <+61>:    leave  
   0x080484a2 <+62>:    ret    


参考:http://www.ibm.com/developerworks/cn/linux/l-cn-gccstack/
阅读(2314) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~