Chisel is a collection of LLDB commands for debugging iOS and macOS applications. It provides a rich set of commands to inspect and manipulate the UI hierarchy, view controllers, accessibility, auto layout, animations, and memory. The project consists of Python scripts that define LLDB commands using a custom base class (FBCommand) and a native C/Objective-C framework (Chisel.framework) that enables heap scanning for Objective-C instances. The Python layer evaluates Objective-C expressions in the debugged process, while the native framework uses malloc zone enumeration to find live objects. The architecture is a plugin for LLDB, with commands loaded dynamically from a directory. Key entry points are the LLDB commands themselves (e.g., pviews, pvc, visualize, border, findinstances). External dependencies include LLDB, the iOS/OS X runtime, UIKit, CoreAnimation, and Foundation. The codebase is well-structured but shows some technical drift (Python 2 usage, deprecated imp module, old Xcode project settings).
LLEf (LLDB Enhanced) is a Python-based LLDB plugin for low-level reverse engineering, vulnerability research, and exploit development. It provides enhanced debugger context (registers, stack, code, threads, trace) via an automatic stop hook and adds specialized commands: context, hexdump, pattern (cyclic pattern generation/search), checksec (ELF security mitigations), xinfo (memory mappings), dereference (pointer chain dereferencing), and scan (heap/memory scanning). It supports multiple architectures (x86_64, ARM, AArch64, i386, PowerPC) and includes experimental Go binary analysis: parsing the PCLNTAB and ModuleData structures to recover function names, types, and stack frames from stripped Go executables (versions 1.7–1.24). The plugin persists configuration via JSON files in the user's home directory. The codebase is structured with clear base classes for commands, settings, and architecture definitions, though it lacks automated tests and relies heavily on the LLDB Python API.