Декомпиляция библиотек 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. Их декомпиляция так хороша.