Исполняемый рычаг? - PullRequest
       29

Исполняемый рычаг?

2 голосов
/ 16 августа 2010

Я должен залатать исполняемый файл arm в моем Pocket PC.

Я разбираю исполняемый файл ARM с помощью IDA Pro. Но я не могу редактировать двоичный файл. Как вы знаете, Ollydbg позволяет нам редактировать двоичный код / ​​добавлять ассемблерный код (щелкните правой кнопкой мыши -> Assemble), но он не поддерживает ARM. Поэтому я разобрал его с IDA Pro. Но в IDA я не могу добавить свой ассемблерный код в исполняемый файл ARM. После «Правка> Патч-программа> Собрать» выдает ошибку. (Извините, этот процессорный модуль не поддерживает ассемблер).

Так как же добавить мой ассемблерный код в этот исполняемый файл ARM?

Спасибо ...

Ответы [ 2 ]

1 голос
/ 17 августа 2010

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

0 голосов
/ 16 августа 2010

Вы можете попытаться разобрать (весь) двоичный файл в ассемблер, а затем использовать ассемблер, чтобы вернуться в двоичный файл (например, инструменты gnu / binutils). Затем, когда это сработает, добавьте ваши модификации в ассемблер.

Другой альтернативой является сборка новой функции, поиск места в двоичном файле, где вы можете поместить новый код и заменить одну или две инструкции ссылкой на ваш новый код. Это ручная бинарная модификация, а не то, что собирается делать графический инструмент. Придется вручную вычислить инструкцию ссылки на ветку.

...