Skip to content

ruoyi/iCDump

 
 

Repository files navigation


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:

import icdump
metadata = icdump.objc.parse("./RNCryptor.bin")

print(metadata.to_decl())
@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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.4%
  • Other 0.6%