GitPedia

ICDump

A modern Objective-C class dump based on LIEF and LLVM.

From romainthomas·Updated March 2, 2026·View on GitHub·
·Archived

iCDump is a modern and cross-platform Objective-C class dump. Compared to existing tools, iCDump can run independently from the Apple ecosystem and it exposes Python bindings. The project is written primarily in C++, distributed under the Apache License 2.0 license, first published in 2022. Key topics include: class-dump, llvm, objective-c, reverse-engineering.

Latest release: 1.1.0
January 4, 2023View Changelog →
<p align="center" > <img width="100%" src=".github/featured.webp"/><br /> </p> <br /> <br /> <h1><b>iCDump is now part of <a href="https://lief.re/doc/latest/extended/intro.html">LIEF extended</a></b></h1> <br /> <br />

iCDump

iCDump is a modern and cross-platform Objective-C class dump.
Compared to existing tools, iCDump can run independently from the Apple ecosystem and it exposes
Python bindings.

It relies on LIEF to access the Objective-C metadata
and LLVM to output the results.

Swift support is on-going but not public yet.

Python API

iCDump exposes a Python API through nanobind. One can
dump Objective-C metadata as follows:

python
import icdump metadata = icdump.objc.parse("./RNCryptor.bin") print(metadata.to_decl())
text
@interface RNCryptor.RNCryptor.Encryptor{ NSObject * encryptor; } @end @interface RNCryptor.RNCryptor.Decryptor{ NSObject * decryptors; NSObject * buffer; NSObject * decryptor; NSObject * password; } @end ...

Or inspect Objective-C structures using the different properties:

for cls in metadata.classes:
    print(cls.demangled_name)
    for prop in cls.properties:
        print(prop.name)

Contact

Credits

License

iCDump is released under the Apache License, Version 2.0

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub →

This article is auto-generated from romainthomas/iCDump via the GitHub API.Last fetched: 6/14/2026