Swift устойчив к зацеплению?
Cycript - это консольное приложение, представляющее собой смесь Objective-C и JavaScript. Cycript очень полезен для динамического анализа приложений iOS.
Если вы пишете какие-либо методы или полный ipa с Swift, все еще можно подключить приложение на взломанном устройстве? Или Swift безопасен как "родной C" -код на iOS?
1 ответ
Я не очень знаком с Cycript, но немного разбираюсь в компиляторе Swift.
Код Swift будет более устойчивым к перехвату, но это не должно быть абсолютно невозможным. Подклассы NSObject и классы Swift, объявленные как @objc, должны быть такими же доступными, как код Objective-C. Чистый код Swift, особенно в оптимизированных сборках, будет сложнее внедрить в код, потому что они часто статически отправляются и во многих случаях фактически вставляются в вызывающий код.
Там, где код не был встроен, может быть возможно исправить сами функции в памяти, чтобы перейти к альтернативной функции, но это будет не так просто, как просто изменить таблицы функций.
Там, где ключевые функции были встроены, может быть возможно найти и изменить каждое использование, если общие шаблоны кода, которые могут быть идентифицированы, и если функция достаточно длинная, возможно, можно будет исправить переход к альтернативной версии, но это будет действительно довольно сложно.