Hilda bridges LLDB and IPython to deliver an improved debugging workflow.
Both Hilda and Frida serve a similar purpose, but Hilda takes a "debugger" approach (the name actually comes from the TV show "Hilda", where Hilda is the best friend of Frida).
To install, run:
# ⚠️ Note that the following installs Hilda for the current user using XCode's Python so LLDB will work properly
xcrun python3 -m pip install --user -U hilda
# XCode's Python can be located by running `xcrun --find python3`
# Hilda installation can be located by running `xcrun python3 -m pip show hilda | grep Location`To use Hilda with an iOS device, you will need a Jailbroken iOS device with debugserver in the device's PATH.
You can use this tool to get the binary, re-sign it with the appropriate entitlements and put it in /usr/bin/debugserver.
Start Hilda using (or use another mode of operation):
hilda launch /path/to/executableUpon starting Hilda, you are welcomed into Hilda's IPython shell, with the variable p, using which you can access various methods, including reading and writing memory and adding breakpoints.
Hilda displays the state of the target process using a configurable UI consisting of 4 views (Registers, Disassembly, Stack and Backtrace):
Make sure you familiarize yourself with Symbols and shortcuts.
Hilda also has support for Objective-C and various builtin snippets.
Pull requests are more than welcome 😊.
Make sure you run the tests before submission (xcrun python3 -m pytest).
If you need help or have an amazing idea you would like to suggest, feel free to start a discussion 💬.
The project is currently focused on iOS/macOS debugging. Thanks to LLDB's abstraction capabilities for Linux and Android, implementing support for these should be feasible with minimal changes.
