Возврат-ориентированный программный компилятор - PullRequest
1 голос
/ 13 апреля 2011

Я пытаюсь лучше понять мой компьютер на более низких уровнях, и что может быть лучше, чем писать эксплойты переполнения буфера стека?Я недавно сталкивался с ROP.Я прочитал статью http://cseweb.ucsd.edu/~hovav/talks/blackhat08.html, в которой упоминался компилятор для кода ROB.Как называется такой компилятор для linux (64bit)?

Спасибо, Константин

1 Ответ

5 голосов
/ 06 мая 2011

Я был одним из исследователей этого проекта в UCSD и написал часть компилятора C-to-exploit-string.Конкретная работа, на которую вы ссылаетесь, была специфичной для SPARC (и в дальнейшем была адаптирована к известному двоичному файлу Solaris libc).Эти документы на самом деле дают лучший обзор того, что мы сделали (и обобщения и подходы к программированию):

Для Linux + x64 с момента нашего исследования было много инструментов для создания ROP-атак, которые обычно можно найти, выполнив поиск в Интернете.И большинство из них гораздо более полезны и удобны для пользователя, чем наши (в настоящее время относительно старые) инструменты, предназначенные для исследований.

Позвольте мне предложить, что если вы хотите понять более низкие уровни вашей системы Linux иеще не сделали этого, рассмотрим поэтапный подход со следующим:

  1. Внедрение стека "Old-School": Отключите неисполняемую защиту стека на вашем компьютере и просто внедрите код оболочки.Множество ресурсов здесь - начните с оригинального Aleph One «Smashing The Stack для развлечения и прибыли» (широко доступного в Интернете).
  2. Return-to-Libc: повторно включите неисполняемые стеки и попробуйтесоздать пользовательскую полезную нагрузку для перехода в libc (вероятно, execve) и попытаться захватить оболочку.

Как только вы разберетесь с ними, войти в ROP будет намного проще.Если вы уже там, тогда власть вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...