iOS Hooking With Objection
对于本节,将使用工具Objection。 首先要获取一个Objection的会话,执行类似以下命令:
objection -d --gadget "iGoat-Swift" explore
objection -d --gadget "OWASP.iGoat-Swift" explore你也可以执行 frida-ps -Uia 来检查手机上正在运行的进程。
应用程序的基本枚举
本地应用程序路径
env: 查找应用程序在设备内部存储的路径
env
Name Path
----------------- -----------------------------------------------------------------------------------------------
BundlePath /private/var/containers/Bundle/Application/179A6E8B-E7A8-476E-BBE3-B9300F546068/iGoat-Swift.app
CachesDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library/Caches
DocumentDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Documents
LibraryDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library列出捆绑包、框架和库
ios bundles list_bundles: 列出应用程序的捆绑包
ios bundles list_frameworks: 列出应用程序使用的外部框架
memory list modules: 列出内存中加载的模块
memory list exports <module_name>: 加载模块的导出
列出应用程序的类
ios hooking list classes: 列出应用程序的类
ios hooking search classes <search_term>: 搜索包含特定字符串的类。您可以搜索与主应用程序包名称相关的某些唯一术语,以查找应用程序的主要类,如示例中所示:
列出类方法
ios hooking list class_methods: 列出特定类的方法
ios hooking search methods <search_term>: 搜索包含特定字符串的方法
基本Hooking
现在您已经枚举了应用程序使用的类和模块,可能已经找到了一些有趣的类和方法名称。
钩住类的所有方法
ios hooking watch class <class_name>: 钩住类的所有方法,转储所有初始参数和返回值
钩住单个方法
ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace: 钩住类的特定方法,每次调用时转储参数、回溯和返回值
更改布尔返回值
ios hooking set return_value "-[<class_name> <method_name>]" false: 这将使所选方法返回指定的布尔值
生成Hooking模板
ios hooking generate simple <class_name>:
最后更新于