Декомпиляция библиотек Objective-C
-
22-09-2019 - |
Вопрос
Я только что закончил работу над библиотекой Objective-C, которую скомпилировал как статическую библиотеку для распространения.
Я хотел знать, каковы шансы получить это декомпилировано.
- Знаете ли вы какое-нибудь программное обеспечение, которое может это сделать?
- Если да, то как я могу лучше защитить себя?
РЕДАКТИРОВАТЬ: Моя статическая библиотека создана для iPhone/ARM.
Я создал алгоритм, который в зависимости от некоторых параметров приложения может работать как демо-версия или как полный код.Вы инициализируете объект с переменными X и разблокируете полную версию.Мне было интересно, смогут ли они увидеть этот алгоритм и создать генератор ключей.
Решение
Непонятно, чем вы пытаетесь защититься от.Да, это можно реверс-инжинирингить.Самый простой инструмент – это otool
, часть стандартного дистрибутива разработчика:
otool -tV <library>
Отсюда они доходят до таких вещей, как ИДА Про, который поддерживает iPhone и очень удобен для такого рода работы.Между тем, я очень удивлен, что не видел переделки ОТХ для iPhone/ARM пока нет.Я не удивлюсь, если в конце концов появится хоть один.И, конечно же, есть GDB, если вы пытаетесь понять, как все происходит и какие данные находятся в различных точках.
Если у вас есть более подробная информация о том, от чего вы пытаетесь защитить себя, возможно, найдутся целевые ответы.Кроме того, прочитайте комментарии Чака.
Другие советы
Если он выполняется, его можно декомпилировать.Objective-C особенно легко декомпилировать в читаемый код благодаря его динамическим функциям.Если вы хотите немного усложнить задачу, вы можете написать большую часть своего кода на простом C и удалить исполняемый файл — что, конечно, приведет к усложнению управления дизайном вашего приложения.Но будьте честны с самим собой:Если кто-то захочет взломать ваш код, вы не сможете его остановить.У взломщиков практически неограниченное количество времени и энтузиазма, и они будут в восторге от любых новых усилий, которые вы приложите, чтобы остановить их.Никто еще не создал программное обеспечение, которое невозможно было бы взломать, и крупнейшие корпорации мира попытались это сделать.Вы не добьетесь большего, чем они, особенно если вам нужно спросить об этом в Stack Overflow.
Потратьте время, которое вы бы потратили на предотвращение декомпиляции, и используйте его для улучшения вашего продукта — это принесет гораздо большую рентабельность инвестиций.
ChanceGetsDecompiled = ExpectedGainFromBeingDecompiled / PopularityOfLibrary
Что ж, если вы ДЕЙСТВИТЕЛЬНО хотите знать, я бы попробовал декомпилировать его самостоятельно.Вы не говорите, предназначено ли это для PPC, Intel или ARM, что имеет значение.Вот декомпилятор для Inteli386 декомпилятор
Я не знаю, что вы могли бы сделать (я не думаю, что есть что-то особенное), чтобы ограничить это.Код всегда можно реконструировать.Радуйтесь, что вы не используете Java или .net.Их декомпиляция такая классная.