Я создаю приложение iOS, которое передает конфиденциальные данные на мой сервер, и я подписываю свои запросы API в качестве дополнительной меры. Я хочу как можно быстрее сделать обратное проектирование, и, используя Cycript для поиска ключей подписи некоторых приложений реального мира, я знаю, что не сложно найти эти ключи, присоединившись к процессу. Я абсолютно уверен, что если кто-то действительно умеет и пытается достаточно тяжело, они в конечном итоге будут использовать, но я стараюсь сделать это как можно труднее, но при этом удобен для себя и для пользователей.Обнаруживать, подключен ли Cycript/субстрат или gdb к процессу приложения iOS?
Я могу проверить состояние джейлбрейка и принять дополнительные меры, или я могу выполнить привязку SSL, но оба они по-прежнему легко обойти, присоединяясь к процессу и изменяя память.
Есть ли способ определить, есть ли что-то (будь то Cycript, gdb или любой аналогичный инструмент, который может быть использован для взлома процесса) прикреплен к процессу, не будучи отстраненным от App Store?
EDIT: Это не дубликат Detecting if iOS app is run in debugger. Этот вопрос больше связан с выводом и проверяет выходной поток, чтобы определить, есть ли выходной поток, подключенный к регистратору, в то время как мой вопрос не связан с этим (и эта проверка не распространяется на мое состояние).
Возможный дубликат [Обнаружение если IOS приложение запускается в отладчике] (http://stackoverflow.com/questions/4744826/detecting-if-ios-app-is-run-in-debugger) – Petesh
@ Петеш нет, см. Мое редактирование. –
Кажется, что * точно * то, что вы просите - он использует sysctl, чтобы проверить, отслеживается ли процесс, что происходит, когда вы запускаете процесс под отладчиком или используете его во время работы. – Petesh