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 was released as part of a talk at ShmooCon 2014. The slides of the talk are up on Speakerdeck. Video is available on archive.org There is also a blog post on my personal website.
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:
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 is 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
uservm install 2.1 --enable-shared
when installing ruby. - Under
ruby-install
/chruby
use-- --enable-shared
when installing ruby. - Under
ruby-build
/rbenv
withruby-build
useCONFIGURE_OPTS=--enable-shared [command]
when installing Ruby.
- OS X:
brew install qt cmake usbmuxd libimobiledevice
- Ubuntu:
apt-get install cmake libqt4-dev git-core libimobiledevice-utils libplist-utils usbmuxd libxml2-dev libsqlite3-dev -y
- Install idb:
gem install idb
- Run idb:
idb
- Hooray!
- Clone the repository
git clone https://github.com/dmayer/idb
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 rake run
- Note: Running
bin/idb
directly won't work since it will not find the idb gem (or use the installed gem and not the checked out source code). Instead, therake
task 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.
New as of October 2014: Idb now stores its configuration and temporary files in ~/.idb/
A: This seems to be a bug when using ruby 2.1 on OS X. I have no idea why this is happening, but switching to a different application and the back to idb fixes it. Any pointers on how to fix this are greatly appreciated!
- Fork it ( https://github.com/[my-github-username]/idb/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request