2012-05-14 5 views
12

Я решил задать этот вопрос здесь, когда вы потратили много времени на Google. Но я еще не смог ответить на вопрос. Ниже приводится подробная информация:Можно ли отредактировать и перекомпилировать двоичный файл iOS?

У меня есть приложение и недавно отправлено в Cydia. Он был взломан кем-то другим и отправил его на торрент-сайты. Интересная часть: у меня есть механизм проверки двоичной контрольной суммы внутри, и они смогли взломать весь материал, и они создали новый файл контрольной суммы на основе изменений, внесенных ими в двоичный файл. Они отредактировали две функции и декомпилировали ее и отправили на торренты.

Итак, я провел некоторое исследование с IDA Pro и увидел, что можно увидеть фактическую реализацию функций и классов. Но для того, чтобы редактировать функции, они должны найти адрес этой функции и отредактировать ее с помощью HEX EDITOR. Это часть меня сбивает с толку, есть ли кто-нибудь помочь мне в этом? Я не хочу, чтобы это было «неустранимым» :) .. Это не так просто, я думаю. :) Но я действительно хочу узнать, как они взломали? :)

Мой вопрос в том, как отредактировать функцию в двоичном формате iOS и перекомпилировать ее? Например, у меня есть следующий метод в одном из моих классов.

- (id) getSomething { 

    return @"Something"; 
} 

Я хочу отредактировать возвращаемое значение этой функции. Возможно ли это?

ответ

6

Обычно вы не «перекомпилируете» его. Просто подайте файл в IDA, найдите строки, вызовы функций или все, что вы ищете, а затем используйте шестнадцатеричный редактор или аналогичный файл для редактирования на уровне сборки. В большинстве случаев достаточно просто изменить условный переход в безусловный переход или nop (без операции). Если вы хотите изменить возвращаемые значения, вам нужно приложить немного больше усилий, но по моему опыту вы либо редактируете последовательность символов прямо внутри двоичного файла, если это указано как постоянное или начальное значение, - или вы просто пишете полностью новую функцию и «скопировать» код ассемблера в исходный файл. Вам просто нужно убедиться, что ваша новая функция не занимает больше места, чем оригинал - или все становится намного сложнее. Надеюсь, это то, о чем вы просили, иначе просто скажите нам, какое приложение вы говорите, и мы можем глубже в него заглянуть :)

+1

Спасибо, что потратили некоторое время на этой странице, чтобы ответить на мой вопрос .. :) Итак, я не может раскрыть свое имя, поскольку я работаю в компании, и продукт разработан для компании. Извините за это. У меня есть еще один вопрос относительно замены кода ассемблера. Я использовал пробную версию IDA Pro, поэтому вы говорите о полной версии, которую можно использовать для замены кода? – IndoThaiGeek

+0

Или он использует любое другое приложение? – IndoThaiGeek

+0

Не знаю о различиях между пробным/полным, но я никогда не использовал IDA для редактирования двоичных файлов. В Windows я использую Hiew. – jimpic

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

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