ICDump
A modern Objective-C class dump based on LIEF and LLVM.
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.
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:
pythonimport 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
- Romain Thomas: @rh0main -
me@romainthomas.fr
Credits
License
iCDump is released under the Apache License, Version 2.0
Contributors
Showing top 1 contributor by commit count.
