Я разрабатываю статическую библиотеку и использую Guardius для защиты IOS от Polidea, чтобы запутать мою статическую библиотеку. Я выполнил шаги по загрузке obfuscate_project в корневой путь моего проекта, изменил требуемые имена внутри и, наконец, запустил bash obfuscate_project в моем терминале. У меня появилось сообщение о том, что моя сборка прошла успешно, но я не смог найти файл symbols.h. Я также заметил, что была создана папка сборки. Мой вопрос: действительно ли запутывание произошло? Если да, то как я могу проверить? Является ли запутанный проект внутри моей папки сборки?Polidea iOS Class Guard успешно, но не может отличить
ответ
Документация PPiOS-Rename (форк IOS Class Guard) explains how to do it:
Чтобы убедиться, что ваше приложение было запутанным, использовать
nm
утилиту, которая входит в состав средств для разработчиков Xcode. Запуск:nm путь/to/your/binary | less
Это отобразит символы из вашего приложения. Если вы сделаете это с помощью несвязанной сборки, вы увидите оригинальные символы. Если вы сделаете это с запутанной сборкой, вы увидите обфусканные символы.
Обратите внимание, что после удаления символов из вашего двоичного файла
nm
не будет работать должным образом. Вы можете использовать утилитуotool
, если вам нужно проверить символы Objective-C после удаления.
otool
покажет ненужную информацию, но она может быть отфильтрованы с помощьюgrep
иawk
показывать только символы:otool -o /path/to/your/binary | grep 'name 0x' | awk '{print $3}' | sort | uniq
- это хорошая практика для раскрытия вашего подключения к определенному продукту/компании (в данном случае [PreEmptive Solutions] (https://www.preemptive.com/products/)) – fpg1503
Эй, не знаю, что вы исправили эту проблему или not.I только встретились та же проблема, что и у вас сегодня, и я случайно обнаружил причину, из-за которой файл DerivedData, этот файл, по-видимому, обнаружит по умолчанию /Users/'username'/Library/Developer/Xcode/DerivedData
, но в моем проекте файл DerivedData находится на корневом пути проекта, и все мои проекты одинаковы. Я предполагаю, что этот код while read app
в строке obfuscate_project 78 ищет приложение в файле DerivedData по пути по умолчанию, очевидно, он не будет найден, поэтому другой код после этой строки не будет выполнен.
Чтобы изменить путь к файлу DerivedData: Xcode-> Preferences-> Locations, выберите опцию «Производные данные» «По умолчанию» и выберите «Уникальный» в «Дополнительно», а затем удалите файл DerivedData в поиске проекта, скомпилируйте проект, теперь запустить bash obfuscate_project
должен быть успешным.
- 1. Может успешно работать, но не может архивировать?
- 2. iOS build успешно, но не удалось архивировать
- 3. nginx установлен успешно, но не может начать
- 4. не может удалить данные, но успешно подключен
- 5. Ruby on Rails rspec успешно выполняет тесты, но Guard + Spork не находит методы для Devise
- 6. Xcode build успешно, но iOS Simulator не запускался
- 7. tomcat не может успешно работать
- 8. не может отличить строку до булева?
- 9. не может применить CSS успешно
- 10. Может ли Guard использоваться программно без Guard File?
- 11. Python3 установлен успешно, но не может быть открыт в терминале
- 12. FBSDKAppInvite успешно, но не может отправить уведомление в fbaccount
- 13. Удаленная запись успешно, но сообщение не может быть напечатано
- 14. класс не может отличить от java.util.collection Exception
- 15. Pygame не может протекать успешно
- 16. guard/guard-sass не скомпилировать изменения
- 17. Строительство skia на симуляторе ios успешно, но не может работать на моем iphone
- 18. Hibernate ResultTransformer не может отличить один столбец
- 19. не может загрузить такой файл - guard/rspec/dsl
- 20. Как отличить "# id.class" от "#. .class" в SCSS?
- 21. iOS - отличить NSDictionary от NSMutableDictionary?
- 22. std :: function не может отличить перегруженные функции
- 23. canOpenUrl не удается, но openUrl успешно
- 24. Guard Malloc не работает
- 25. XPath не может отличить аналогичный текст ссылка
- 26. MySQL не может отличить большие уникальные значения
- 27. не может отличить значение UIView от UIButton
- 28. Watin не может отличить объект определенного типа
- 29. Mongo Не может отличить Hashmap к BasicDBObject
- 30. Моно не может отличить TypeA к TypeA
Почему вы запутываете? Если вы не знаете, как проверить, запущен ли ваш продукт или нет, вам, вероятно, не нужно ничего путать ... – dcow
@dcow Необходимо добавить слой защиты от таких инструментов, как класс-дамп. Я не думаю, что ответить на мой вопрос с вопросом очень помогает ... – iamarnold
Вот почему я прокомментировал, а не отправил ответ. – dcow