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