Back to Blog
Reverse Engineering
May 23, 2026
2 min read

BATClassDumper: On-Device iOS Objective-C Class & Method Explorer

Cydia/Sileo mobile substrate tweak that dynamically reflects, filters, and dumps Objective-C classes and methods inside any active iOS application process.

BATClassDumper: On-Device iOS Objective-C Class & Method Explorer

Objective C’s highly dynamic runtime environment is one of the most powerful aspects of iOS app security testing and reverse engineering. Traditional class dumping tools like class dump or dsdump operate statically on decrypted binaries, but they fall short when dealing with dynamically loaded libraries (dlopen), runtime created classes, or obfuscated symbols.

To solve this on device, I created BATClassDumper, a MobileSubstrate injection tweak that hooks into any target iOS application, reflects its entire active Objective C heap and runtime library map, and presents class and method hierarchies inside a sleek, search filterable dynamic sheet overlay.


How the Tweak Works

Rather than analyzing the binary statically on a computer, BATClassDumper operates entirely in memory at the runtime level. When the target application is launched, the jailbreak substrate injects our dynamic library (.dylib) into the application's memory space.

Our runtime engine queries the Objective C runtime system libraries directly, dynamically loading class tables, resolving method selectors, and piping the results to a responsive bottom sheet interface over

Architectural & Injection Flow Diagram

Below is the execution flow from the kernel memory layout up to the live interactive user interface:

+-------------------------------------------------------+
|                 USER INTERFACE SHEET                  |
|          (Search Sheet & Substring Filter)            |
+-------------------------------------------------------+
                            |
                            v
+-------------------------------------------------------+
|               RUNTIME UTILITY ENGINE                  |
|             (Dynamic Exploration Core)                |
+-------------------------------------------------------+
               /                         \
              v                           v
+---------------------------+ +-------------------------+
|  OBJECTIVE-C RUNTIME APIs | | DYNAMIC LINKER SUBSYSTEM|
|   (Reflection Mapping)    | |  (Library Handle Core)  |
+---------------------------+ +-------------------------+
               \                         /
                v                       v
+-------------------------------------------------------+
|               TARGET APPLICATION PROCESS              |
|        (Active Heap / Virtual Memory Address)         |
+-------------------------------------------------------+
                            ^
                            |
+-------------------------------------------------------+
|                  INJECTION INTERFACE                  |
|             (Substrate / Hooking Layer)               |
+-------------------------------------------------------+
                            |
                            v
+-------------------------------------------------------+
|                    iOS KERNEL LEVEL                   |
|          (XNU Core & Memory Management)               |
+-------------------------------------------------------+

Tweak Installation

Getting BATClassDumper up and running on your jailbroken iOS device is straightforward.

  1. Add the source repository: https://Basilabt.github.io/repo/ Add Source Repo

  2. Navigate inside the repository: Navigate Repo

  3. Install the package and restart springboard: Install and Respring

  4. Make sure the tweak is enabled in Settings: Enable Tweak Settings

  5. Launch any application to open the exploration sheet: Launch App Explorer Sheet