IDB is a tool to simplify some common tasks for iOS app security assessments and research. It is written in ruby with a Qt GUI front-end and should run on OS X and Linux (with some restrictions). The code is available under the MIT license on GitHub.

Salient features

  • Simplified pen-testing setup
    • Setup port forwarding
    • Certificate management
  • iOS log viewer
  • Screen shot utility
    • Simplifies testing for the creation of backgrounding screenshots
  • App-related functions
    • App binary
      • Download
      • List imported libraries
      • Check for encryption, ASLR, stack canaries
      • Decrypt and download an app binary (requires dumpdecrypted)
    • Launch an app
    • View app details such as name, bundleid, and Info.plist file.
  • Inter-Process Communication
    • URL Handlers
      • List URL handlers
      • Invoke and fuzz URL handlers
    • Pasteboard monitor
  • Analyze local file storage
    • Search for, download, and view plist files
    • Search for, download, and view sqlite databases
    • Search for, download, and view local caches (Cache.db)
    • File system browser
  • Install utilities on iDevices
    • Install iOS SSL killswitch
    • alpha: Compile and install dumpdecrypted
  • Alpha:
    • Cycript console
    • Snoop-It integration


IDB has some prerequisites.  It turns out,  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. Prerequisites

1.1 Ruby Environment

IDB requires a valid ruby 1.9.3 or 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 required. This is the default for many system rubies, but if you install a ruby via rvm or similar, you need to do one of the following:

  • Under rvm use rvm install 2.1 –enable-shared when installing ruby.
  • Under ruby-install/chruby use — –enable-shared when installing ruby.
  • Under ruby-build/rbenv with ruby-build use CONFIGURE_OPTS=–enable-shared [command] when installing Ruby.

1.2 Install Other Prerequisites:
For OS X:
1 brew install qt cmake usbmuxd libimobiledevice

For Ubuntu:
1 apt-get install cmake libqt4-dev git-core libimobiledevice-utils libplist-utils usbmuxd libxml2-dev

2. Installing IDB

2.1 Production Use

  • Install idb: gem install idb
  • Run idb: idb
  • Hooray!

2.2 Development

  • Clone the repository: git clone
  • cd idb
  • bundle install (using the right ruby version)
  • As for every ruby gem, the application code lives in the lib folder
  • Run idb by calling bundle exec idb
    • Note: Running bin/idb directly won’t work since it Won’t  find the idb gem (or use the installed gem and not the checked out source code). Instead, the bundle exec command runs idb in the current bundler environment where bundler supplies the gem from source.


About The Author

"As a child, I was always looking at cyber security news because it interested me immensely. Growing up, I developed a habit of surrounding myself with other like-minded people and this helped shape me as a cyber security enthusiast. By constantly indulging in cyber security related forums, my love for the topic has snowballed."

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

fifteen + one =