Декомпиляция библиотек Objective-C

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

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

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

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

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

3 ответа

Решение

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

otool -tV <library>

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

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

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

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

ChanceGetsDecompiled = ExpectedGainFromBeingDecompiled / PopularityOfLibrary

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

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

Другие вопросы по тегам