2010-12-12 8 views
0

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

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

ответ

1

Совершенно обычным способом попробовать этот процесс.

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

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

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

+0

Да, это закрытая исходная программа, и мне нужно исправить в ней дыру в безопасности. Единственный способ сделать это - обратное проектирование. – kjagiello

+0

@Balon: обратитесь к поставщику - то, что вы делаете, вероятно, не является законным. Если поставщик не сотрудничает (или выходит из бизнеса), время для переключения поставщиков. Это одна из причин, почему Open Source полезен. –

+0

Я пробовал, но не получил ответа. Что делать, попробуй снова связаться с ними. – kjagiello

 Смежные вопросы

  • Нет связанных вопросов^_^