Я переживаю «взлом: искусство эксплуатации» и следуя примерам. На странице 145 автор демонстрирует, как использовать программу notesearch.c с шеллкодеком, хранящимся в переменной среды. Эриксон делает это следующим:Exploit работает в gdb, но не в командной строке
./notesearch $ (Perl -e 'печать "\ x47 \ xf9 \ XFF \ XBF" x40')
В командной строке, это Безразлично» т работа для меня, но в GDB, введя
запустить $ (Perl -e 'печать "\ x47 \ xf9 \ XFF \ XBF" x40')
работает.
Примечания: Теперь его адрес выше, чем мой адрес, из-за защиты в ЦП, но я только что последовал его примеру, запустив заметки в gdb, получив адрес шеллкода в переменной окружения, добавив 100 к нему:
(GDB) х/s 0xbffff8e3 + 100
конечно мой адрес отличается от его выше, но все же, все проверили, но это не сработало.
**** НО ****
Когда я запускаю свой код эксплойта в GDB, он отлично работает.
запустить $ (Perl -e 'печать "\ x47 \ xf9 \ XFF \ XBF" x40')
Так почему бы
запустить $ (Perl -e «печать«\ x47 \ xf9 \ XFF \ XBF "x40')
работы в БГД, и дайте мне корневую оболочку, но
./notesearch $ (Perl -e«печать «\ x47 \ xf9 \ XFF \ xbf "x40 ')
в командной строке не будет работать? Является ли рандомизация адреса отключена в gdb, но не в ОС? Существует ли несоответствие между адресами, которые показывает GDB и с какими адресами работает программа? Заранее благодарю за любое руководство.
Я предполагаю, что функция ранжирования адресов работает здесь, как в GDB, так и в ОС.Адреса рандомизированы для каждого запуска программы, поэтому адрес в независимом прогоне программы не будет соответствовать тому, который вы ранее извлекли, используя GDB. –
Спасибо, Джонас, я боялся этого. Это будет хорошим упражнением для меня, но для других, кто борется, он ДЕЙСТВИТЕЛЬНО смешивает воды, когда демонстрационный эксплойт не работает, как описано, особенно когда VM и код предоставляются. Дело закрыто с моей точки зрения. – user1197457
Как сказано, это просто догадка (вот почему я не дал никакого ответа), и могут быть другие причины такого поведения. Кто-то, у кого есть доказательства и/или опыт, может сделать окончательное заявление по этому поводу. –