Documentation: Setup

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.

SSH Setting Dialog

SSH Port-Forwarding

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 8080 on the host running idb. Now you simply configure the proxy server on the device as localhost:8080 and you are good to go!

SSH Port Forwarding

External Applications

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 apt-get or 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.

Connect to Device

Device Status

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.

Application Selection

Note that additional functions have now been enabled. In addition, some basic information on the application is extracted from its Info.plist file and displayed in the ‘App Info’ Tab:

  • Bundle ID
  • Bundle Name
  • UUID
  • 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.

Application Details