iphone - iOS 键盘记录器实现

标签 iphone ios jailbreak keylogger cydia-substrate

我想了解如何为 iOS 实现按键记录器。如果有 iKeyMonitor,我怎样才能避免在我的应用程序中记录 key ? (例如)安装在设备上?

经过研究,我发现 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 .

在 keycache 中有一些 HTML 文件,我可以使用 URL localhost:8888 在 Safari 中打开它们。

在 plists 中只有 com.apple.springboard 过滤器,这意味着 MobileSafe.dylib(和所有 Hook )将仅应用于 跳板应用。

即使我不在我的应用程序中使用默认键盘 View 来编辑 UITextField,键盘记录器仍然有效。这意味着 Hooks 应用于 UITextField。

在为 SpringBoard.app 使用 class-dump 之后,我没有找到任何可以与 UITextField 的实现相关的方法。在为 MobileSafe.dylib 使用 class-dump 之后,我也没有找到任何可以替代 UITextField 的实现(可能是因为它是用 C 编写的),我认为我应该用 gdb 动态分析 MobileSafe.dylib

  1. SpringBoard(在 plist com.apple.springboard 中)应用程序如何影响 UITextField 类的实现?如果我在 com.apple.springboard 的 dylib 中对 UITextField 使用方法调配,它是否也适用于其他应用程序?

  2. MobileLoader 之间的一般区别是什么?和 MobileHooker ?来自 MobileHooker 的更改何时会应用到我的系统?

  3. 我应该怎么做才能从 UIKit Hook 一个方法(例如 UITextField 方法),并为我设备上的所有应用更改它的实现?

  4. 您能建议我用什么方法分析iKeyMonitor?

最佳答案

  1. 如果它在过滤器中使用 springboard 则它只能影响 springboard, Hook 所有使用 UIKit 作为过滤器的应用程序(更多内容在 3 中)

  2. 我对两者的理解是: MobileLoader 将您的代码加载到正在运行的应用程序中,当发生这种情况时,将调用具有构造函数属性“__attribute__((constructor))”的函数。在其中一个构造函数中,调用 MobileHooker 函数来替换应用程序中预先存在的函数/方法。至于何时应用更改,由于它们是在构造函数中更改的,因此应该在实际调用它们之前进行更改。

  3. 您只需使用 com.apple.UIKit 过滤器(顺便说一下,iKeyMonitor 中的 keychain.dylib 使用的是什么)

  4. class-dump 不显示调整的 Hook 类和方法,因为它们不是 objective-c 方法,而是函数... 最好的选择是像 ida hex-rays.com/products/ida/index.shtml 这样的反汇编程序

关于iphone - iOS 键盘记录器实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789674/

相关文章:

iphone - 警报 View 没有响应

php - 简单的 JSON php 请求 iPhone

ios - 按下 UIButton 时,在 ImageView 中更改图像

ios - 在iOS 7中阻止传入的短信

ios - Theos实例方法调用

iphone - 如何在cocos2d中创建透明的ccscene?

ios - 带有 keyboardWillShow 的 UITableView 和 UIView

ios - 在iOS上使用带有参数的Xcode运行Shell脚本

ios - 没有从 UIScrollView 得到接触

iphone - 从 iOS 应用程序识别越狱设备