Я хочу понять, как реализовать ключевой регистратор для iOS. И как я могу избежать ввода ключей в мое приложение, если на устройстве установлено iKeyMonitor (например)?iOS key logger реализация
После исследований я обнаружил, что ikeyMonitor устанавливает следующие файлы на устройстве:
Library/Caches/.keycache
Library/MobileSubstrate/DynamicLibraries/MobileSafe.dylib
Library/MobileSubstrate/DynamicLibraries/MobileSafe.plist
Library/MobileSubstrate/DynamicLibraries/keychain.dylib
Library/MobileSubstrate/DynamicLibraries/keychain.plist
Конечно, это требует MobileSubstrate.
В ключевом кэше есть некоторые файлы HTML, которые я могу открыть в Safari с URL-адресом localhost: 8888.
В plists есть только фильтр com.apple.springboard
, это означает, что MobileSafe.dylib (и все крючки) будет применяться только к трамплину.
Даже если я не использую стандартную клавиатуру в своем приложении для редактирования UITextField
, кейлоггер по-прежнему работает. Это означает, что Крюки применяются на UITextField.
После использования class-dump
для SpringBoard.app
Не найдено способов, которые могут быть связаны с реализацией UITextField
. После использования class-dump
для MobileSafe.dylib
я не нашел реализацию, которая может быть замещена в UITextField либо (может быть, потому, что она написана на C), я думаю, что я должен анализировать MobileSafe.dylib динамически с помощью GDB
Как может SpringBoard (то есть в plist
com.apple.springboard
) приложение влияет на реализацию класса UITextField? Если я использую метод swizzling для UITextField в dylib дляcom.apple.springboard
, он будет работать и в других приложениях?Какая общая разница между MobileLoader и MobileHooker? В какой момент изменения в MobileHooker будут применены к моей системе?
Что нужно сделать, чтобы перехватить метод из UIKit (например, методы UITextField) и изменить его реализацию для всех приложений на моем устройстве?
Какой метод анализа iKeyMonitor вы можете посоветовать мне использовать?
Привет, Павел Я редактировал ваш вопрос, чтобы надеяться сделать английский более понятным. Я искренне извиняюсь, если я что-то исказил, я просто подумал, что это интересный вопрос, и хотел бы помочь вам сообщить об этом - пожалуйста, не стесняйтесь откатываться или исправлять. Удачи вам ответить на ваш вопрос. –
Карл Вейзи, спасибо за изменения! – BergP