前言
近来打算写一个通用的hook OC中的系统函数的工具,然后发现已经有大神造好轮子了,而且还特别的完善和好用,膜拜~~~
下载源码:
git clone https://github.com/iSECPartners/Introspy-iOS
1、进入scr目录打包
make package
2、拷贝到手机
scp <package.deb> root@<device_ip>:~
工具的话,我比较喜欢使用iFunBox。
3、连接手机
ssh root@<device_ip>
4、安装
dpkg -i <package.deb>
5、重启设备
killall -HUP SpringBoard
另外可直接:
make package
export THEOS_DEVICE_IP=192.168.1.127
make install
正确安装完之后会在设置里面显示如下选项:
Introspy-Apps 中选择要跟踪的 app 名称。
Introspy-Settings 则提供一些常规跟踪设置选项,默认是全部开启。
然后启动想要跟踪的应用程序,就可以直接通过introspy生成的对应的应用的sqlite日志数据库来查看
这个界面的展示,用到了AppList 和 PreferenceLoader 两个依赖。
PreferenceLoader 是一个 MobileSubstrate 提供的工具,它可以让开发者在系统设置界面添加应用程序入口。而 AppList 是一个让开发者获取系统中已安装应用信息的库。
这两个工具的完美结合,就可以在系统设置中实现可供选择的应用列表。
实现原理:
只需要在 iOS 设备的 /Library/PreferenceLoader/Preferences 下放入一个 plist 和图标文件。其中,plist 文件用来指定设置界面的展示内容,而图标文件则是用于在系统设置的入口处显示。
回到introspy的源码里,可以找到如下目录:
展开来看:
对应的就是Introspy - Apps和Introspy - Settings的设置内容配置。
查找对应生成数据库文件的路径
find /private/var/mobile/Containers/Data/Application/ -name introspy*
数据库中存储的样式
利用xcode调试项目时,终端也会对应输出捕获日志:
Introspy-Analyzer
db格式的看起来不是很直观,所以作者开发一款将db格式转化为html的python脚本工具,Introspy-Analyzer
)。
安装
sudo pip install git+https://github.com/iSECPartners/Introspy-Analyzer.git
注意python的版本,只支持python2的版本,可以指定下python的版本来安装。
sudo python -m pip install git+https://github.com/iSECPartners/Introspy-Analyzer.git
然后连接上手机,会列出手机上生成的db列表
python -m introspy -p ios -o output -f 192.168.1.12
选择对应的需要解析的db,会在Mac当前路径下生成对应的解析文件
对应的report.html用浏览器打开就很直观看到对应的数据信息