Как автор может узнать адрес переменной среды с определенностью 100%? - PullRequest
0 голосов
/ 06 января 2019

В книге Искусство эксплуатации на странице 165 утверждается, что enter image description here

Однако, как может быть, что в этом адресе 0xbffffffa исправлено? Я имею в виду, то, как автор выражает себя, предполагает, что это общий факт для любого дистрибутива Linux на любой машине, что, безусловно, не так, так что именно это означает? Как он может узнать адрес шеллкода?

1 Ответ

0 голосов
/ 07 января 2019

Ни в коем случае не эксперт в этом вопросе, но, насколько я понимаю, в Linux каждый процесс имеет свое собственное виртуальное адресное пространство с памятью ядра, сопоставленной с адресами выше 0xC0000000, с ростом стека с 0xC0000000 и ростом кучи. от 0x00000000.

Если это так, то это говорит о том, что среда будет одной из первых вещей в стеке - 0x2BFFFFFA всего на несколько байтов ниже 0xC0000000 - и что вы можете предсказать его адрес, поскольку будет только фиксированное количество вещей до этого.

Я думаю, что это применимо только в том случае, если рандомизация расположения адресного пространства (ASLR) не включена, хотя, насколько я понимаю, я не думаю, что ASLR полностью предотвратит этот вид эксплойта.

...