Note: When starting idb on OS X with ruby 2.1 the menu bar might not appear until you switch to a different app and back to idb. Any pointers on how to fix that would be greatly appreciated.
Basic SSH Connectivity
The first time you star-up idb, visit the preference Dialog in the ‘File’ (or ‘ruby’) menu. In the ‘Device Config’ tab you can configure how to connect to your iDevice. The ‘SSH directly’ option performs a regular TCP connection to the device’s SSH service while the ‘SSH via USB’ option uses usbmuxd to connect to your iDevice via USB. Note that you still need to have an SSH server running on the device (get it using Cydia) even if you are connecting via USB. All that usbmuxd does is forward the TCP connection via USB; so the ‘hostname’ field becomes no longer relevant.
The second tab of the settings dialog controls the optional port forwarding between the host running idb (‘client’)
and the iDevice (‘server’). The forwarding settings follow the SSH naming conventions so ‘Remote’ forwarding opens up
a port on the server and forwards it to the given host and port starting from the client. Conversely, ‘Local’
forwarding opens up a port on the client and forwards incoming connection to the specified host and port on the
server side. You can specify an arbitrary number of each forward type. This function is particularly useful for
investigating traffic from the device, e.g., using an intercepting HTTP proxy. For example, assume your proxy is
running on the client and listens on port
8080 then you can define
remote:8080 -> localhost:8080
as a remote forward which will open port
8080 on the device and forwards all incoming connections to port
on the host running idb. Now you simply configure the proxy server on the device as
localhost:8080 and you are good
Finally, the last tab of the preferences allows you to set external editors which are currently limited to a SQLite editor.
Connecting to the Device
After all connection parameters are configured, you connect to the device by clicking the “USB Device” option
in the “Devices” menu. This establishes the SSH connection via the specified method. Once the connection succeeds, idb
checks if all tools that are required have been installed on the device. If not, a status dialog opens up which lists
all the tools and their status. Each tool can be installed by simply clicking the corresponding “Install” button. Note
that the automated installation requires
aptitude to be installed on the device.
Once all tools are installed, close the dialog. Connecting to the device enables some of the basic functions such as the “Log” and the “Pasteboard” monitor. Different components of idb are activated when certain selections or actions are performed in the UI.
Selecting an Application
The next step after connecting to the device is selecting the application you would like to assess. For this, you click on the “Select App…” button in the upper right and select the desired application from the dialog.
Note that additional functions have now been enabled. In addition, some basic information on the application is extracted
Info.plist file and displayed in the ‘App Info’ Tab:
- Bundle ID
- Bundle Name
- Registered URL Schemes
- Platform Version
- SDK Version
- Minimum OS Version
- The folder where app data is stored (iOS 8+)
In addition, all of the app’s entitlements are displayed as well.