我的问候和对所有人的问候.我有一个C程序,基本上是为了测试缓冲区溢出而写的.
#include<stdio.h>
void display()
{
char buff[8];
gets(buff);
puts(buff);
}
main()
{
display();
return(0);
}
Run Code Online (Sandbox Code Playgroud)
现在我使用GDB反汇编它的显示和主要部分.代码:-
函数main的汇编代码转储:
0x080484ae <+0>: push %ebp # saving ebp to stack
0x080484af <+1>: mov %esp,%ebp # saving esp in ebp
0x080484b1 <+3>: call 0x8048474 <display> # calling display function
0x080484b6 <+8>: mov $0x0,%eax # move 0 into eax , but WHY ????
0x080484bb <+13>: pop %ebp # remove ebp from stack
0x080484bc <+14>: ret # return
Run Code Online (Sandbox Code Playgroud)
汇编程序转储结束.
用于功能显示的汇编代码转储:
0x08048474 <+0>: push %ebp #saves ebp to …Run Code Online (Sandbox Code Playgroud)