Ни в коем случае не эксперт в этом вопросе, но, насколько я понимаю, в Linux каждый процесс имеет свое собственное виртуальное адресное пространство с памятью ядра, сопоставленной с адресами выше 0xC0000000, с ростом стека с 0xC0000000 и ростом кучи. от 0x00000000.
Если это так, то это говорит о том, что среда будет одной из первых вещей в стеке - 0x2BFFFFFA всего на несколько байтов ниже 0xC0000000 - и что вы можете предсказать его адрес, поскольку будет только фиксированное количество вещей до этого.
Я думаю, что это применимо только в том случае, если рандомизация расположения адресного пространства (ASLR) не включена, хотя, насколько я понимаю, я не думаю, что ASLR полностью предотвратит этот вид эксплойта.