Skip to content

Objective-C

Binary Ninja ships with an additional plugin for assisting with Objective-C analysis. A brief summary of the features offered is as follows:

  • Function Call Cleanup. When using the Objective-C workflow, calls to objc_msgSend can be replaced with direct calls to the relevant function's implementation.

  • Name and Type Recovery. Using runtime information embedded in the binary, Binary Ninja can automatically apply names and type information to Objective-C functions.

  • Structure Markup. Data variables are automatically created for Objective-C structures such as classes and method lists to enable easy navigation.

  • Data Renderers. Formatting of Objective-C types such as tagged and/or (image-)relative pointers is improved via custom data renderers.

  • CFString Handling. Data variables are automatically created for all CFString instances present in the binary.

Usage

If you have an Objective-C binary opening in Binary Ninja should automatically process the information. This is handled by the view, e.g. MACH-O & Shared Cache.

Workflow

To utilize function call cleanup, the Objective-C workflow must be chosen when loading a binary for analysis.

This will automatically apply structure analysis as the binary is analyzed and also translate objc_msgSend calls to direct method calls, where possible.