Contents
idb 分析 iOS 应用
一、idb 简介
idb 是一款 ruby 写的 iOS 应用分析的工具,能够分析应用的文件信息、测试 URL Schemes、获取应用屏幕快照、修改 hosts 文件、查看系统日志、管理 keychain,监测剪贴板等等功能。
官网地址:http://www.idbtool.com
还有一个用 python 写的同名的工具也叫 idb,和 idbtool.com 上的工具是不一样的,那个是一个命令行的工具,模仿 android 平台上用的 adb,不要把这两个工具给搞混了。
二、安装和运行
idb 的安装方法,在官网上有介绍 http://www.idbtool.com/installation/
先要安装 ruby,ruby 的版本号必须大于 2.1
2.1 安装和更新 ruby
macOS 系统自带 ruby,但是版本比较低,需要更新一下,查看 ruby 的版本
1 2 |
ruby --version |
使用 brew 更新 ruby
1 2 3 |
brew update brew install ruby |
然后再查看一下
1 2 |
ruby --version |
如果还是显示之前的版本,就重新加载一下环境变量
1 2 3 |
source ~/.bashrc source ~/.bash_profile |
如果版本依然显示的还是老的,就关闭终端,再重新打开一下。
2.2 安装其他的依赖
安装 qt4
1 2 3 4 |
brew tap cartr/qt4 brew tap-pin cartr/qt4 brew install cartr/qt4/qt@4 |
安装 cmake usbmuxd libmobiledevice
1 2 |
brew install cmake usbmuxd libimobiledevice |
安装 Xcode Command Line Tools
1 2 |
xcode-select --install |
2.3 安装和运行 idb
ruby 和其他的依赖都安装好之后,就可以正式的安装 IDB 了
1 2 |
gem install idb |
运行 idb
1 2 |
idb |
打开的界面效果如图,看起来还不错吧
三、使用方法
idb 的使用方法在官网上也有介绍 http://www.idbtool.com/documentation/
我们来实际的操作一下
3.1 第一次运行
第一次运行需要配置你的 SSH 账号密码,点击界面上的 ruby 菜单 -> Perferences,打开 Setting,选择 usbmuxd 模式,输入你的 SSH 的账户信息,点击保存。
然后在主界面点击 Connect to USB/SSH device,连接成功后会检查手机上是否安装好所有相关的工具,如果没相关的工具没有安装则打开一个状态对话框,列出所有工具及其状态。可以通过单击相应的 “安装“ 按钮来安装每一个工具,点了 “安装” 按钮之后,有些工具安装的时候有些慢,可能会稍微卡一会,请耐心等待一会,可以看出 idb 实际上就是套了一层界面,真正的操作手机功能是下面这些工具
点击 Select App 就可以选择你要分析的应用,我们选择微信来试试。
3.2 功能使用
3.2.1 AppInfo
首先看到的是 AppInfo,主要显示的 App 的描述信息和 Entitlement 授权信息
3.2.2 Storage
Storage 标签里能够显示应用目录和沙盒目录的所有相关的 plist、sqlite、cache.db 文件列表,比如从文件列表中选中某一条记录双击就能在本机打开查看
选择 sqlite dbs,点击刷新就可以显示应用所有的 sqlite,选中双击就能打开 sqlite,但是你得提前配置好 Sqlite Editor 的路径
3.2.3 URL Handlers
URL Handlers 标签里能显示应用所有注册的 URL Schemes,在 Open URL 的编辑框里输入 weixin://scanqrcode,点击 Open 就能打开微信的扫一扫功能
3.2.4 FileSystem
FileSystem 标签里是显示应用的安装目录的文件和沙盒目录的文件列表
3.2.5 Tools
Tools 标签里的 Screenshot Tool,能够显示应用在后台的快照
/etc/hosts File Editor 能够修改 hosts 文件,点击 Load 之后就能显示出 host 文件的内容,修改完成之后,点击 Save 保存。
3.2.6 Log
Log 标签里能够显示日志信息,包括系统的日志和应用的日志,调用的是 libimobiledevice 里的 idevicesyslog 进程,如果点了 start 按钮没有反应,看一下 ruby 的显示信息,如果是显示
1 2 |
ERROR: Could not start service com.apple.syslog_relay. |
就需要重新安装一下 libimobiledevice 就可以了。
1 2 |
$ brew reinstall --HEAD libimobiledevice |
3.2.7 Keychain
Keychain 标签里是钥匙串管理,能够显示本机的所有钥匙串里的信息并修改和删除。点击 Dump Keychain,就显示所有的 Keychain 信息了,选中相应的信息可以删除和修改
3.2.8 PasteBoard
PasteBoard 标签是剪贴板监控,按照官网上的说明是监测默认剪贴板的