Я был одним из исследователей этого проекта в UCSD и написал часть компилятора C-to-exploit-string.Конкретная работа, на которую вы ссылаетесь, была специфичной для SPARC (и в дальнейшем была адаптирована к известному двоичному файлу Solaris libc).Эти документы на самом деле дают лучший обзор того, что мы сделали (и обобщения и подходы к программированию):
Для Linux + x64 с момента нашего исследования было много инструментов для создания ROP-атак, которые обычно можно найти, выполнив поиск в Интернете.И большинство из них гораздо более полезны и удобны для пользователя, чем наши (в настоящее время относительно старые) инструменты, предназначенные для исследований.
Позвольте мне предложить, что если вы хотите понять более низкие уровни вашей системы Linux иеще не сделали этого, рассмотрим поэтапный подход со следующим:
- Внедрение стека "Old-School": Отключите неисполняемую защиту стека на вашем компьютере и просто внедрите код оболочки.Множество ресурсов здесь - начните с оригинального Aleph One «Smashing The Stack для развлечения и прибыли» (широко доступного в Интернете).
- Return-to-Libc: повторно включите неисполняемые стеки и попробуйтесоздать пользовательскую полезную нагрузку для перехода в libc (вероятно, execve) и попытаться захватить оболочку.
Как только вы разберетесь с ними, войти в ROP будет намного проще.Если вы уже там, тогда власть вам!