В настоящее время я изучаю использование переполнения буфера в стеке с помощью переменных среды из «Искусства эксплуатации». Смысл этой главы - использовать переменную окружения для шеллкода без необходимости создавать сани NOP. Thet требует точного адреса переменной, которую я собираюсь использовать. Вот фрагмент:
С execl () используется существующая среда, но если вы используете
execle (), можно указать всю среду. Если среда
массив - это просто шелл-код в качестве первой строки (с указателем NULL
чтобы завершить список), единственной переменной среды будет
Шеллкод. Это позволяет легко рассчитать его адрес. В Linux
адрес будет 0xbffffffa , минус длина шелл-кода в
окружение, за вычетом длины имени исполняемой программы.
Дело в том, что я использую совершенно другую версию системы (Kali Linux 64-bit с ядром 4.19), и в моем случае базовый адрес, используемый автором (0xbffffffa), сильно отличается, и я понятия не имею, где искать для этого. Есть ли способ найти это или я должен посмотреть где-нибудь в документации?
Я предполагаю, что этот адрес находится где-то в базе стека. Или это точный адрес базы стека ..?