A collection of (public and private) types and functions definitions useful for iOS/macOS binaries analysis.
Would you rather re-define the same functions or types over and over as you work with different binaries?
- Go to
File > Load file > Parse C header filethen chooseIDA.hto import everything at once. Or, run this IDA command:idaapi.idc_parse_types("/path/to/IDAObjcTypes/IDA.h", idc.PT_FILE). - Copy
IDA.tilandIDA32.tiltotilfolder inside IDA application directory. - In IDA Pro, open
Type Librarieswindow viaView > Open subviews > Type librariesor pressShift + F11. - Right-click the type list and select
Load type library.... - Select
IDA(orIDA32if you target 32-bit binaries) and clickOKbutton.
TIL created via this command:
tilib -c -hIDA.h IDA.til -D__EA64__ -P -tIDAObjcTypes
tilib -c -hIDA.h IDA32.til -P -tIDAObjcTypes32Go to File > Load file > 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)
- Go to
Analysis > Import Header File.... - In
Header File(s), browse forIDA.hin this project. - In
Compiler Flag(s), add-D__EA64__ -D__BINJA__. - Click
Importbutton.
- Go to
File > Parse C Source. - (Go to 6. if it's not the first time you do this) Clone
objc_mac_carbon.prfprofile into a new profile, calledOBJC.prf, for example. - Remove everything in
Source files to parse, and addIDA.hin this project to the list. - Add two additional flags:
-D__EA64__ -DGHIDRAto Parse Options. - Save
OBJC.prfprofile as you might use it later. - Click
Parse to Program, clickProceedif anything pops up. - Check
Data Type Managerwindow (at bottom-left), (long) right-click at<your-binary-name>and selectApply Function Data Types.
You have to manually specify the size of enum members if what you get is incorrect.
Uncomment // #define IOS14 inside IDA.h before you import it if you are reversing iOS 14 or lower binaries.
More to be added as the owner reverses more binaries.
- AppSupport
- AssetsLibraryServices
- AudioToolbox
- AVFCapture
- AVFoundation
- CommonCrypto
- CoreAnimation
- CoreAudio
- CoreFoundation
- CoreGraphics
- CoreMedia
- CoreServices
- CoreText
- CoreVideo
- CydiaSubstrate (if you ever want to RE tweaks)
- Darwin
- Foundation
- GraphicsServices
- IOMobileFramebuffer
- IOKit
- IOSurface
- Kernel
- MediaRemote
- MobileGestalt
- PowerLog
- Security
- SoftLinking
- SpringBoard
- SpringBoardHome
- Swift (WIP, PRs welcome)
- System (libSystem)
- SystemConfiguration
- UIKit
- dyld
- icu
- objc
- os
- pthread
- sandbox
- sqlite
- xpc
- fishhook