Подтвердить что ты не робот

Как зашифровать или обфускать объектный код c?

Возможный дубликат:
Обфускация кода приложения iPhone/iPad - это возможно? Стоит ли это?

Я потратил много времени на это, и я не смог найти идеальный ответ. Вот почему я решил задать свой вопрос здесь. У меня есть приложение для iPhone и вы хотите зашифровать код, чтобы предотвратить использование утилиты class-dump или otool. (Инструменты, используемые для выгрузки заголовков из исполняемого файла). Я хотел бы знать, есть ли способ шифрования исходного кода или обфускации исходного кода?

4b9b3361

Ответ 1

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

  • Соответствие KVC
  • Использование динамически сгенерированных селекторов
  • Совместимость файлов Nib
  • Соответствие протокола
  • Наследование методов

Обфускация - это еще один уровень, с которым нужно справиться; часто обфускация легко отменяется. Невозможно "зашифровать" ваши классы, потому что среда Objective-C и Cocoa не будут знать, как ее расшифровать. Любой, кто достаточно определен, в конечном итоге выяснит, как работает ваша программа.

Ответ 2

Фактически вы можете обеспечить некоторую обфускацию и защиту от несанкционированного доступа специализированными сторонними инструментами. Есть две компании, я знаю, которые предоставляют инструменты или услуги для этого: Arxan и irDato.

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

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

В дополнение к более раннему ответу Apple не шифрует двоичные файлы, а просто подписывает их. Достаточно легко перепроектировать и модифицировать бинарные файлы приложений на джейлбрейк-устройстве.

Ответ 3

По-видимому, в соответствии с этим ответом Apple шифрует бинарные файлы iPhone, как само собой разумеющееся, для всех приложений iPhone.

Я бы не стал беспокоиться об этом.