idb is a tool to simplify some common tasks for iOS pentesting and research. Originally there was a command line version of the tool, but it is no longer under development so you should get the GUI version.
idb has some prerequisites. As it turns out, things like ruby and Qt are difficult to bundle into a stand-alone installer. While idb itself can easily be installed via Ruby Gems, you need to have some additional software first:
1.1 Ruby Environmentidb requires a valid ruby 2.1+ installation and it is recommended to install the used ruby using RVM. Ruby 2.0 does not work properly due to issues with qtbindings.
Important Note: Shared library support is required! This is the default for many system rubies, but if you install a ruby via
rvmor similar, you need to do one of the following:
rvm install 2.4.1 --enable-sharedwhen installing ruby.
-- --enable-sharedwhen installing ruby.
CONFIGURE_OPTS=--enable-shared [command]when installing Ruby.
1.2 Install Other Prerequisites:
For OS X:Homebrew removed Qt4 from the main repositories and only provides Qt5 libraries. Unfortunately, there are no Qt5 bindings for ruby available as of yet. The following will add a repository containing Qt4 libraries. Thanks to moloch- for posting the instructions on Github.
brew tap cartr/qt4
brew tap-pin cartr/qt4
brew install cartr/qt4/qt@4
Install the remaining dependencies
brew install cmake usbmuxd libimobiledevice
nokogiriwill likely require a working XCode installation:
If you run into problems compiling nokogiri upon installation of idb, check http://www.nokogiri.org/tutorials/installing_nokogiri.html
apt-get install cmake libqt4-dev git-core libimobiledevice-utils libplist-utils usbmuxd libxml2-dev libsqlite3-dev -y
2. Installing idb
2.1 Production Use
- Install idb:
gem install idb
- Run idb:
- Clone the repository:
git clone https://github.com/dmayer/idb
bundle install(using the right ruby version)
- As for every ruby gem, the application code lives in the
- Run idb by calling
bundle exec idb
- Note: Running
bin/idbdirectly won’t work since it will not find the idb gem (or use the installed gem and not the checked out source code). Instead, the
bundle execcommand runs idb in the current bundler environment where bundler supplies the gem from source.
- Note: Running
See the basic manual and walk-through to get started.