Introduction
============
This project aims at providing a cross-platform utility to dump Objective-C and Swift metadata
from 64-bits Mach-O binaries.
Getting Started
===============
.. code-block:: python
import icdump
metadata = icdump.objc.parse("./RNCryptor.bin")
# Iterate over all the Objective-C interfaces (classes)
for cls in metadata.classes:
print(cls.demangled_name)
.. code-block:: console
PodsDummy_RNCryptor_iOS
RNCryptor.RNCryptor.Encryptor
RNCryptor.RNCryptor.Decryptor
RNCryptor.RNCryptor.FormatV3
RNCryptor.RNCryptor.EncryptorV3
RNCryptor.RNCryptor.DecryptorV3
RNCryptor.Engine
RNCryptor.(DecryptorEngineV3 in _FFCD8353248C1C3EE416689E2680CC5C)
RNCryptor.(HMACV3 in _FFCD8353248C1C3EE416689E2680CC5C)
RNCryptor.OverflowingBuffer
.. code-block:: python
# Dump the metadata as a header declaration
print(metadata.to_decl())
.. code-block:: console
@interface RNCryptor.RNCryptor.Encryptor{
NSObject * encryptor;
}
@end
@interface RNCryptor.RNCryptor.Decryptor{
NSObject * decryptors;
NSObject * buffer;
NSObject * decryptor;
NSObject * password;
}
@end
...
Raw data
{
"_id": null,
"home_page": "https://github.com/romainthomas/iCDump",
"name": "icdump",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "reverse-engineering,objective-c",
"author": "Romain Thomas",
"author_email": "me@romainthomas.fr",
"download_url": "",
"platform": null,
"description": "Introduction\n============\n\nThis project aims at providing a cross-platform utility to dump Objective-C and Swift metadata\nfrom 64-bits Mach-O binaries.\n\nGetting Started\n===============\n\n.. code-block:: python\n\n import icdump\n metadata = icdump.objc.parse(\"./RNCryptor.bin\")\n\n # Iterate over all the Objective-C interfaces (classes)\n for cls in metadata.classes:\n print(cls.demangled_name)\n\n.. code-block:: console\n\n PodsDummy_RNCryptor_iOS\n RNCryptor.RNCryptor.Encryptor\n RNCryptor.RNCryptor.Decryptor\n RNCryptor.RNCryptor.FormatV3\n RNCryptor.RNCryptor.EncryptorV3\n RNCryptor.RNCryptor.DecryptorV3\n RNCryptor.Engine\n RNCryptor.(DecryptorEngineV3 in _FFCD8353248C1C3EE416689E2680CC5C)\n RNCryptor.(HMACV3 in _FFCD8353248C1C3EE416689E2680CC5C)\n RNCryptor.OverflowingBuffer\n\n.. code-block:: python\n\n # Dump the metadata as a header declaration\n print(metadata.to_decl())\n\n.. code-block:: console\n\n @interface RNCryptor.RNCryptor.Encryptor{\n NSObject * encryptor;\n }\n @end\n @interface RNCryptor.RNCryptor.Decryptor{\n NSObject * decryptors;\n NSObject * buffer;\n NSObject * decryptor;\n NSObject * password;\n }\n @end\n ...\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "A modern Objective-C class dump",
"version": "1.1.0",
"split_keywords": [
"reverse-engineering",
"objective-c"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a8117544b04d9b31fd27910e273b8ba105945effff76d69fa58c55c1a039d99b",
"md5": "7055c39cc76b236c9f0ea9227c09e4b6",
"sha256": "6961409be06da102c62a044f580023ce238fc94b69cf252bf08499a8f88576fa"
},
"downloads": -1,
"filename": "icdump-1.1.0-cp310-cp310-macosx_12_0_arm64.whl",
"has_sig": false,
"md5_digest": "7055c39cc76b236c9f0ea9227c09e4b6",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 11915667,
"upload_time": "2023-01-04T09:31:47",
"upload_time_iso_8601": "2023-01-04T09:31:47.413468Z",
"url": "https://files.pythonhosted.org/packages/a8/11/7544b04d9b31fd27910e273b8ba105945effff76d69fa58c55c1a039d99b/icdump-1.1.0-cp310-cp310-macosx_12_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "01d952194054e23a377426d0e6bbd03bb04a770a63ed9306ba319e01c9fb5e58",
"md5": "890b7d8f0a8102f803a0048bc9530e66",
"sha256": "ff00a9a74f74a676a6d63586d50fdb6c7732415d44576618f5b929bc3b868bd7"
},
"downloads": -1,
"filename": "icdump-1.1.0-cp310-cp310-macosx_12_0_x86_64.whl",
"has_sig": false,
"md5_digest": "890b7d8f0a8102f803a0048bc9530e66",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 12899228,
"upload_time": "2023-01-04T09:31:55",
"upload_time_iso_8601": "2023-01-04T09:31:55.757209Z",
"url": "https://files.pythonhosted.org/packages/01/d9/52194054e23a377426d0e6bbd03bb04a770a63ed9306ba319e01c9fb5e58/icdump-1.1.0-cp310-cp310-macosx_12_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "464e401c8ea11a0ed5372e58b04fe766b170f47fea6be0f019531963debde3e1",
"md5": "7e544b8819bbf5e7ff7cb8996d64bb70",
"sha256": "a0bd377f6177e3515bf207659e5712c9ccfcb47842e5ad6ad90cc6c61eae595a"
},
"downloads": -1,
"filename": "icdump-1.1.0-cp310-cp310-manylinux_2_27_x86_64.whl",
"has_sig": false,
"md5_digest": "7e544b8819bbf5e7ff7cb8996d64bb70",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 9416663,
"upload_time": "2023-01-04T09:32:01",
"upload_time_iso_8601": "2023-01-04T09:32:01.049863Z",
"url": "https://files.pythonhosted.org/packages/46/4e/401c8ea11a0ed5372e58b04fe766b170f47fea6be0f019531963debde3e1/icdump-1.1.0-cp310-cp310-manylinux_2_27_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "92812c9a2e2801d727fad01f94641448fb324c3d794f6e96bc8fb138e550b32c",
"md5": "b01352c3bf4a7b471986afaf02b6f66f",
"sha256": "01b58952ad86affdfdfdc1a54877bff109fbab01a0837b9230ee83715c4b76f5"
},
"downloads": -1,
"filename": "icdump-1.1.0-cp311-cp311-macosx_12_0_arm64.whl",
"has_sig": false,
"md5_digest": "b01352c3bf4a7b471986afaf02b6f66f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 11914893,
"upload_time": "2023-01-04T09:32:07",
"upload_time_iso_8601": "2023-01-04T09:32:07.513163Z",
"url": "https://files.pythonhosted.org/packages/92/81/2c9a2e2801d727fad01f94641448fb324c3d794f6e96bc8fb138e550b32c/icdump-1.1.0-cp311-cp311-macosx_12_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "deb6d4eb697309b397e8ca5a4e6f0b236daf8c470b2090b8e21100f5d7813cf4",
"md5": "a540fe39df60831085f5b9001b4c4077",
"sha256": "7fff6ba1399fb8417ca632425be367b45b6682408a34631ae12402ffef38f0e9"
},
"downloads": -1,
"filename": "icdump-1.1.0-cp311-cp311-macosx_12_0_x86_64.whl",
"has_sig": false,
"md5_digest": "a540fe39df60831085f5b9001b4c4077",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 12899097,
"upload_time": "2023-01-04T09:32:14",
"upload_time_iso_8601": "2023-01-04T09:32:14.897009Z",
"url": "https://files.pythonhosted.org/packages/de/b6/d4eb697309b397e8ca5a4e6f0b236daf8c470b2090b8e21100f5d7813cf4/icdump-1.1.0-cp311-cp311-macosx_12_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3cae6ec6f4db0b1bad86f06faf4670074b76ffb8a4f02bd98f802c2efedfc92d",
"md5": "1ee729637bb0f2e8f246e5d80d7b14a8",
"sha256": "cd43706e0fe1e3e32c2e6a0b0e66581ad9327e9d28f9c61eeb866c3eff6d2117"
},
"downloads": -1,
"filename": "icdump-1.1.0-cp311-cp311-manylinux_2_27_x86_64.whl",
"has_sig": false,
"md5_digest": "1ee729637bb0f2e8f246e5d80d7b14a8",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 9416622,
"upload_time": "2023-01-04T09:32:20",
"upload_time_iso_8601": "2023-01-04T09:32:20.419445Z",
"url": "https://files.pythonhosted.org/packages/3c/ae/6ec6f4db0b1bad86f06faf4670074b76ffb8a4f02bd98f802c2efedfc92d/icdump-1.1.0-cp311-cp311-manylinux_2_27_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cea34cc3947454bd8e509916c59553e54f8e76e364182adcb13a8c23cfe06a8c",
"md5": "ba466b44b80aed9d3138e6059bd6d4c8",
"sha256": "539e77c3ba916635a93dc57247446befc49938c37a2c9cdb19622cb9ba7f10c0"
},
"downloads": -1,
"filename": "icdump-1.1.0-cp38-cp38-macosx_12_0_arm64.whl",
"has_sig": false,
"md5_digest": "ba466b44b80aed9d3138e6059bd6d4c8",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 11914504,
"upload_time": "2023-01-04T09:32:26",
"upload_time_iso_8601": "2023-01-04T09:32:26.747921Z",
"url": "https://files.pythonhosted.org/packages/ce/a3/4cc3947454bd8e509916c59553e54f8e76e364182adcb13a8c23cfe06a8c/icdump-1.1.0-cp38-cp38-macosx_12_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fc0707a616516d7a52f844d6006af01e56ffc5ffece088adc30aaf32cb5da98e",
"md5": "60dbdd4611e3d0fc0bb1c1e02ca1e7d6",
"sha256": "78c41f0a9a0e3e596c003aca3ed5bff210b0af21f751ba67d988723ba0bfc35a"
},
"downloads": -1,
"filename": "icdump-1.1.0-cp38-cp38-macosx_12_0_x86_64.whl",
"has_sig": false,
"md5_digest": "60dbdd4611e3d0fc0bb1c1e02ca1e7d6",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 12899368,
"upload_time": "2023-01-04T09:32:32",
"upload_time_iso_8601": "2023-01-04T09:32:32.412572Z",
"url": "https://files.pythonhosted.org/packages/fc/07/07a616516d7a52f844d6006af01e56ffc5ffece088adc30aaf32cb5da98e/icdump-1.1.0-cp38-cp38-macosx_12_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "91c49e8f23e957d83135a8290678caa1ede7e94fc84a4b03d66bb471380b60cc",
"md5": "168bfe206cdef4180ffeeb1c33048579",
"sha256": "5f740b5f6aa430b117acab66226c5382ef81593824b9aec5af0c5aa71acd29e1"
},
"downloads": -1,
"filename": "icdump-1.1.0-cp38-cp38-manylinux_2_27_x86_64.whl",
"has_sig": false,
"md5_digest": "168bfe206cdef4180ffeeb1c33048579",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 9417572,
"upload_time": "2023-01-04T09:32:39",
"upload_time_iso_8601": "2023-01-04T09:32:39.130500Z",
"url": "https://files.pythonhosted.org/packages/91/c4/9e8f23e957d83135a8290678caa1ede7e94fc84a4b03d66bb471380b60cc/icdump-1.1.0-cp38-cp38-manylinux_2_27_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2254f9fd3cae77b93a65414ab6405a88c49566b4f67737ba0e5a2d7e16bb9c97",
"md5": "6cf727c532c7aa0cc9e6f7f34c09d761",
"sha256": "2263e6714d8cdaf76c666b060a475a2f5ac2b1eb37df8a45c3f8aca07c1ed930"
},
"downloads": -1,
"filename": "icdump-1.1.0-cp39-cp39-macosx_12_0_arm64.whl",
"has_sig": false,
"md5_digest": "6cf727c532c7aa0cc9e6f7f34c09d761",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 11915624,
"upload_time": "2023-01-04T09:32:46",
"upload_time_iso_8601": "2023-01-04T09:32:46.417016Z",
"url": "https://files.pythonhosted.org/packages/22/54/f9fd3cae77b93a65414ab6405a88c49566b4f67737ba0e5a2d7e16bb9c97/icdump-1.1.0-cp39-cp39-macosx_12_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "00f85486b8e03ba2debd30e34ee62fe9cc857d0be0148190324410ac804375e4",
"md5": "01cd9d47c5cd9e05c6b585f31fd47e76",
"sha256": "ea4ca2ec840cb84a529be0dcee780ec70052fad53c7b5e63fdbdd097d3ee1210"
},
"downloads": -1,
"filename": "icdump-1.1.0-cp39-cp39-macosx_12_0_x86_64.whl",
"has_sig": false,
"md5_digest": "01cd9d47c5cd9e05c6b585f31fd47e76",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 12899196,
"upload_time": "2023-01-04T09:32:52",
"upload_time_iso_8601": "2023-01-04T09:32:52.363352Z",
"url": "https://files.pythonhosted.org/packages/00/f8/5486b8e03ba2debd30e34ee62fe9cc857d0be0148190324410ac804375e4/icdump-1.1.0-cp39-cp39-macosx_12_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0cc121a3370417234a6df5f66d91608a1784a925571b3449ae90e049ef59555e",
"md5": "5c62ab640da2238264860a61b74d677c",
"sha256": "7ba55a8ba1d53b0e62fe797cd86cd6be72eb670efe326731cc71b9ee100e93de"
},
"downloads": -1,
"filename": "icdump-1.1.0-cp39-cp39-manylinux_2_27_x86_64.whl",
"has_sig": false,
"md5_digest": "5c62ab640da2238264860a61b74d677c",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 9416507,
"upload_time": "2023-01-04T09:32:56",
"upload_time_iso_8601": "2023-01-04T09:32:56.800171Z",
"url": "https://files.pythonhosted.org/packages/0c/c1/21a3370417234a6df5f66d91608a1784a925571b3449ae90e049ef59555e/icdump-1.1.0-cp39-cp39-manylinux_2_27_x86_64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-01-04 09:31:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "romainthomas",
"github_project": "iCDump",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "icdump"
}