gidb is a tool to simplify some common tasks for iOS pentesting and research. It is still a work in progress but already provides a bunch of (hopefully) useful commands. The goal was to provide all (or most) functionality for both, iDevices and the iOS simulator. For this, a lot is abstracted internally to make it work transparently for both environments. Although recently the focus has been more on supporting devices.
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.
Visit the getting started guide on the wiki to get installation instructions. Next, there is a basic manual and walk-through available as well.
Bug reports, feature requests, and contributions are more than welcome!
idb started out as a command line tool which is still accessible through the cli
branch. Find the getting started guide and some more documentation in the wiki.
- Simplified pentesting 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.
- App binary
- Inter-Process Communication
- URL Handlers
- List URL handlers
- Invoke and fuzz URL handlers
- Pasteboard monitor
- URL Handlers
- 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
Some documentation can be found on the wiki.
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!