{"id":13797117,"url":"https://github.com/poomsmart/idaobjctypes","last_synced_at":"2025-05-16T06:05:43.714Z","repository":{"id":46577339,"uuid":"163808386","full_name":"PoomSmart/IDAObjcTypes","owner":"PoomSmart","description":"A collection of types \u0026 functions definitions useful for iOS/macOS binaries analysis.","archived":false,"fork":false,"pushed_at":"2025-03-15T06:35:40.000Z","size":2234,"stargazers_count":350,"open_issues_count":1,"forks_count":36,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-08T16:08:11.860Z","etag":null,"topics":["analysis","binaries","definitions","functions","ghidra","headers","ida-pro","objc","types"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PoomSmart.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"Security/Security.h","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-02T07:26:08.000Z","updated_at":"2025-04-01T06:07:57.000Z","dependencies_parsed_at":"2024-01-20T09:25:09.813Z","dependency_job_id":"67531e2c-ced2-495f-82ab-bb85ab7a69ce","html_url":"https://github.com/PoomSmart/IDAObjcTypes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PoomSmart%2FIDAObjcTypes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PoomSmart%2FIDAObjcTypes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PoomSmart%2FIDAObjcTypes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PoomSmart%2FIDAObjcTypes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PoomSmart","download_url":"https://codeload.github.com/PoomSmart/IDAObjcTypes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478188,"owners_count":22077676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analysis","binaries","definitions","functions","ghidra","headers","ida-pro","objc","types"],"created_at":"2024-08-03T23:01:22.717Z","updated_at":"2025-05-16T06:05:38.703Z","avatar_url":"https://github.com/PoomSmart.png","language":"Objective-C","readme":"# IDAObjcTypes\nA collection of (public and private) types and functions definitions useful for iOS/macOS binaries analysis.\n\n## Why even?\nWould you rather re-define the same functions or types over and over as you work with different binaries?\n\n## Usage (IDA Pro 8+)\n\n1. Go to `File \u003e Load file \u003e Parse C header file` then choose `IDA.h` to import everything at once. Or, run this IDA command: `idaapi.idc_parse_types(\"/path/to/IDAObjcTypes/IDA.h\", idc.PT_FILE)`.\n2. Copy `IDA.til` and `IDA32.til` to `til` folder inside IDA application directory.\n3. In IDA Pro, open `Type Libraries` window via `View \u003e Open subviews \u003e Type libraries` or press `Shift + F11`.\n4. Right-click the type list and select `Load type library...`.\n5. Select `IDA` (or `IDA32` if you target 32-bit binaries) and click `OK` button.\n\nTIL created via this command:\n\n```bash\ntilib -c -hIDA.h IDA.til -D__EA64__ -P -tIDAObjcTypes\ntilib -c -hIDA.h IDA32.til -P -tIDAObjcTypes32\n```\n\n## Usage (IDA Pro 7)\nGo to `File \u003e Load file \u003e Parse C header file` then choose `IDA.h` to import everything at once.\n\nOr, run this IDA command: `idaapi.idc_parse_types(\"/path/to/IDAObjcTypes/IDA.h\", idc.PT_FILE)`\n\n## Usage (Binary Ninja)\n1. Go to `Analysis \u003e Import Header File...`.\n2. In `Header File(s)`, browse for `IDA.h` in this project.\n3. In `Compiler Flag(s)`, add `-D__EA64__ -D__BINJA__`.\n4. Click `Import` button.\n\n## Usage (Ghidra)\n1. Go to `File \u003e Parse C Source`.\n2. (Go to 6. if it's not the first time you do this) Clone `objc_mac_carbon.prf` profile into a new profile, called `OBJC.prf`, for example.\n3. Remove everything in `Source files to parse`, and add `IDA.h` in this project to the list.\n4. Add two additional flags: `-D__EA64__ -DGHIDRA` to Parse Options.\n5. Save `OBJC.prf` profile as you might use it later.\n6. Click `Parse to Program`, click `Proceed` if anything pops up.\n7. Check `Data Type Manager` window (at bottom-left), (long) right-click at `\u003cyour-binary-name\u003e` and select `Apply Function Data Types`.\n\n### Ghidra limitation\nYou have to manually specify the size of enum members if what you get is incorrect.\n\n## iOS version-specific analysis\n\nUncomment `// #define IOS14` inside `IDA.h` before you import it if you are reversing iOS 14 or lower binaries.\n\n## Included Frameworks/Libraries\nMore to be added as the owner reverses more binaries.\n- AppSupport\n- AssetsLibraryServices\n- AudioToolbox\n- AVFCapture\n- AVFoundation\n- CommonCrypto\n- CoreAnimation\n- CoreAudio\n- CoreFoundation\n- CoreGraphics\n- CoreMedia\n- CoreServices\n- CoreText\n- CoreVideo\n- CydiaSubstrate (if you ever want to RE tweaks)\n- Darwin\n- Foundation\n- GraphicsServices\n- IOMobileFramebuffer\n- IOKit\n- IOSurface\n- Kernel\n- MediaRemote\n- MobileGestalt\n- PowerLog\n- Security\n- SoftLinking\n- SpringBoard\n- SpringBoardHome\n- Swift (WIP, PRs welcome)\n- System (libSystem)\n- SystemConfiguration\n- UIKit\n- dyld\n- icu\n- objc\n- os\n- pthread\n- sandbox\n- sqlite\n- xpc\n- fishhook","funding_links":[],"categories":["\u003ca id=\"8c5a692b5d26527ef346687e047c5c21\"\u003e\u003c/a\u003e收集"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoomsmart%2Fidaobjctypes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpoomsmart%2Fidaobjctypes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoomsmart%2Fidaobjctypes/lists"}