实验用到first和first.c文件,first中的代码如下,可以看到用于攻击的wuwu()函数是永远不会被调用执行的;但是gets()是一直读取输入的字符直到读取\n才停止,由于gets()没有读取长度的限制,可以通过读取超出规定长度的字符来修改栈帧中的返回地址,从而达到攻击目的;
右键first,使用IDA打开,打开之后可以看到是这样的汇编指令,按Tab键可以看地址,空格可以看反编译代码;
main()函数
wuwu()函数
进入运行vbox虚拟机,打开虚拟机后先挂载共享文件夹,挂载后才能使用共享文件夹中的实验素材,挂载命令:sudo mount -t vboxsf pwn ~/share (pwn是本地挂载的共享文件夹名)挂载成功后使用ls命令查看。