Декомпиляция библиотек Objective-C - PullRequest
44 голосов
/ 25 февраля 2010

Я только что закончил библиотеку в Objective-C, которую я скомпилировал как статическую библиотеку для распространения.

Я хотел бы знать, каковы шансы получить эту декомпилированную.

  • Знаете ли вы какое-либо программное обеспечение, способное сделать это?
  • Если так, как я могу защитить меня лучше?

РЕДАКТИРОВАТЬ: Моя статическая библиотека сделана для iPhone / ARM

Я создал алгоритм, который в зависимости от некоторых параметров приложения может запускаться как демо или как полный код. Вы инициируете объект с переменными X и разблокируете полную версию. Мне было интересно, смогут ли они увидеть этот алгоритм и создать генератор ключей.

Ответы [ 3 ]

83 голосов
/ 25 февраля 2010

Если он выполняется, его можно декомпилировать. Objective-C особенно легко декомпилировать в читаемый код благодаря его динамическим функциям. Если вы хотите сделать вещи немного сложнее, вы можете написать большую часть своего кода на простом C и лишить исполняемый файл - что, конечно, имеет компромисс, усложняющий управление дизайном вашего приложения. Но будьте честны с собой: если кто-то захочет взломать ваш код, вы не сможете их остановить. У взломщиков есть практически неограниченное количество времени и энтузиазма, и они будут воодушевлены любыми новыми усилиями, которые вы приложите, чтобы остановить их. Никто еще не сделал непробиваемое программное обеспечение, и крупнейшие корпорации мира попробовали. Вы не добьетесь большего успеха, чем они, особенно если вам нужно спросить об этом в Stack Overflow.

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

59 голосов
/ 25 февраля 2010

Не ясно, что вы пытаетесь защитить от . Да, это может быть реверс-инжиниринг. Самый простой инструмент - otool, часть стандартного дистрибутива для разработчиков:

otool -tV <library>

С этого момента они доходят до таких вещей, как IDA Pro , которые имеют поддержку iPhone и очень хороши для такой работы. Между прочим, я действительно удивлен, что я еще не видел переделки otx для iPhone / ARM. Я не был бы удивлен, увидев одно в конечном итоге. И, конечно, есть GDB, если вы пытаетесь понять, как обстоят дела и каковы данные в различных точках.

Если у вас есть более подробная информация о том, от чего вы пытаетесь себя защитить, могут быть некоторые целевые ответы. Кроме того, прочитайте комментарии Чака.

5 голосов
/ 25 февраля 2010

ChanceGetsDecompiled = ExpectedGainFromBeingDecompiled / PopularityOfLibrary

Ну, если вы ДЕЙСТВИТЕЛЬНО хотите знать, я бы попробовал декомпилировать это самостоятельно. Вы не говорите, если это для PPC, Intel или ARM, который имеет значение. Вот декомпилятор для Intel Декомпилятор i386

Я не знаю, что вы могли бы сделать (я не думаю, что есть много), чтобы ограничить это. Код всегда можно отредактировать. Будьте счастливы, что вы не используете Java или .net. Их декомпиляция так хороша.

...