我想尝试使用 NOP SLED 技术。我将 sled 和 shellcode 放入环境变量中,并获取其地址。
因此,我想执行易受攻击的程序,并重复使用此地址作为参数,问题是它包含 0(零):0x00007fffffffe550
./program_vuln $(perl -e 'print "\x50\xe5\xff\xff\xff\x7f\x00\x00"')
Perl 不打印零,并且堆栈中的寻址变得非常混乱。
答案1
这对于 perl 来说不是问题,因为它显然打印的是 0x00:
perl -e 'print "\x50\xe5\xff\xff\xff\x7f\x00\x00"' | hd
00000000 50 e5 ff ff ff 7f 00 00 |P.......|
00000008