Вопрос

Я сталкиваюсь с большой проблемой. Мне нужно исправить исполняемый файл для изменения его поведения. Программа написана в C и до сих пор я использовал IDA для его редактирования, но то, как я не мог, например, заменять целые функции и т. Д. Это кажется для меня, что самый простой способ сделать это - создать своего рода Загрузчик, который загрузит программу и исправляю его, прежде чем она пройдет. Это спасет меня много времени, и все редактирование было бы намного проще.

Проблема в том, что я не могу найти никакой статьи о том, как это сделать. Может ли кто-нибудь из вас объяснить, как я должен справиться с этим процессом? Погрузчик будет записан в C / C ++.

Это было полезно?

Решение

Это совершенно актуально, чтобы попробовать этот процесс.

  • Почему вы не просто перекомпилируйте изменениями?
    • Недоступный источник - это обычная причина.
  • Это закрытая исходная программа?
    • Если это так, вы, вероятно, нарушая условия лицензии, пытаясь.
  • Источник потерян?
    • Что случилось с резервными копиями и контролем версий?
  • Он построен с ключевым кодом в общих библиотеках?
    • Если это так, вы можете заменить общие библиотеки новыми функциями?
  • Вы можете использовать LD_PRELOAD Для достижения ваших целей?

Из-за «источника доступна» философия UNIX, не так много инструментов, чтобы помочь с исправлениями двоичных файлов - классически, инструмент выбора был программой под названием adb - Отладчик (7-м руководстве Unix Unix сказал «ADB - отладчик»). Это позволило вам редактировать двоичный.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top