Sho*_*kie 6 c linux exploit exec shellcode
我正在读一本名为“黑客:剥削的艺术”的书,我看到了这样一段话:
使用execl(),使用现有环境,但如果使用execle(),则可以指定整个环境。如果环境数组只是 shellcode 作为第一个字符串(用 NULL 指针终止列表),则唯一的环境变量将是 shellcode。这使得它的地址很容易计算。在 Linux 中,该地址将为 0xbffffffa,减去环境中 shellcode 的长度,再减去执行程序名称的长度。由于该地址是准确的,因此不需要 NOP 雪橇。
指定环境是什么意思?
不同环境如何分类?
为什么环境变量的地址是这样计算的(或者更具体地说为什么基地址是0xbffffffa)?
如果我使用 execl() 函数而不是 execle() ,我是否可以不使用 shellcode 环境变量?