linux ELF inject

Тема в разделе "WASM.BEGINNERS", создана пользователем weird_burro, 20 мар 2009.

  1. weird_burro

    weird_burro New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2009
    Сообщения:
    12
    Доброго времени суток.
    Вопрос в следующем: каким образом можно реализовать вставку собственного кода в произвольное место исполняемого ELF-файла? Конкретно, интересует проблема пересчета абсолютных адресов в инструкциях
     
  2. weird_burro

    weird_burro New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2009
    Сообщения:
    12
    Просьба к модераторам: перенесите, пожалуйста, тему в ветку UNIX
     
  3. jaja

    jaja New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2008
    Сообщения:
    243
    FASM пробовал?
     
  4. weird_burro

    weird_burro New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2009
    Сообщения:
    12
    эмммм... не совсем, конечно, понял к чему тут фасм. Может быть пояснишь что подразумевал?..
    Поясню вопрос: имеется абсолютно незнакомый мне ELF-бинарник и над ним необходимо совершить преобразование
     
  5. jaja

    jaja New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2008
    Сообщения:
    243
    Ну FASMом компиль
     
  6. weird_burro

    weird_burro New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2009
    Сообщения:
    12
     
  7. jaja

    jaja New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2008
    Сообщения:
    243
    Ну фасмом скомпиль его
     
  8. weird_burro

    weird_burro New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2009
    Сообщения:
    12
    пьяный что ли?)))
     
  9. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    weird_burro, вопрос очень общий.

    Общий ответ - после анализа в IDA можешь отпатчить используя любую прогу - от hex редактора до hiew. Потом на unix-e отладишь.

    Если кода много, то компилишь его as/gcc и потом смотришь .o или asm listing.
     
  10. weird_burro

    weird_burro New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2009
    Сообщения:
    12
    опа) сурово извиняюсь за постановку вопроса, которая вызывала такую трактовку.
    Вопрос имеет отношение к созданию автопротектора, соответственно анализ файла и пересчет необходимых полей/инструкций происходит в полностью автоматическом режиме
     
  11. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    Всё равно слабо понятно о чём ты спрашиваешь... В "произвольное место" код вствить практически невозможно. Если ты думаешь о написании протектора/упаковщика, то неплохо бы тебе вкурить в формат ELF - тебе придётся минимум добавить секцию.
     
  12. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    s0larian
    вообще как мне извесно "тупого" протоктора в никсах быть не может, тк запрещена запись в секицю кода.
     
  13. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    SPA
    mprotect?
     
  14. weird_burro

    weird_burro New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2009
    Сообщения:
    12
    2 метода инжекта у меня уже есть. В них как раз входит вставка собственного сегмента и расширение существующего последнего сегмента с типом PT_LOAD.
    Можно инжектить еще по выравниваниям. Но меня интересует именно принципиальная возможность вставить код в произвольное место исполняемого файла (к примеру в произвольное место сегмента кода)
    т.е. все-таки имеется хотя бы теоретическая возможность применения такой техники?.. на ее реализации я пока что и зарылся
     
  15. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    Ну так ты подумай немного - теоретически можно дизасемблировать и исправить все относительные и абсолютные jxx иструкции. Практически - невозможно.
     
  16. weird_burro

    weird_burro New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2009
    Сообщения:
    12
    жаль(
    Хочется добавить чего-нить новенького в качестве метода внедрения в ELF-бинарник, но пока что-то не особо выходит.
    Может быть знаете еще какие-нибудь техники, помимо тех, что перечислил я?