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

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

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

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

EDIT: мой статический lib сделан для iPhone / ARM

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

3 ответов


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

otool -tV <library>

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

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


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

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


ChanceGetsDecompiled = ExpectedGainFromBeingDecompiled / PopularityOfLibrary

Ну, если вы действительно хотите знать, я бы попытался декомпилировать его самостоятельно. Вы не говорите, если это для PPC, Intel или ARM, что имеет значение. Вот декомпилятор для Intel для i386 декомпилятор

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