diff options
| author | Jon Palmisciano <jp@jonpalmisc.com> | 2022-07-08 11:29:20 -0400 |
|---|---|---|
| committer | Jon Palmisciano <jp@jonpalmisc.com> | 2022-07-08 11:29:20 -0400 |
| commit | cee57f523fa1606cbb804d54bd0fc250b3a2c4cc (patch) | |
| tree | cb9a29aa492f7dcb1992813d152c7f0252724422 | |
| parent | b9c6552982ab353c57259a577b91cff986646566 (diff) | |
Add docs for official Objective-C plugin
| -rw-r--r-- | docs/guide/objectivec.md | 44 | ||||
| -rw-r--r-- | docs/img/objc_analyze_action.png | bin | 0 -> 107944 bytes | |||
| -rw-r--r-- | docs/img/objc_workflow_selected.png | bin | 0 -> 37469 bytes | |||
| -rw-r--r-- | mkdocs.yml | 1 |
4 files changed, 45 insertions, 0 deletions
diff --git a/docs/guide/objectivec.md b/docs/guide/objectivec.md new file mode 100644 index 00000000..ab2a3160 --- /dev/null +++ b/docs/guide/objectivec.md @@ -0,0 +1,44 @@ +# Objective-C (Beta) + +Recent version of Binary Ninja ship with [an additional plugin](https://github.com/Vector35/workflow_objc) +for assisting with Objective-C analysis. It provides both a [workflow](https://docs.binary.ninja/dev/workflows.html) +and a plugin command for enhancing Objective-C binary 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 you are analyzing for the first time, or one +you are returning to, you can run the "Objective-C — Analyze Structures" action +from the command palette or plugins menu to perform Objective-C structure +analysis. _If you have already marked up Objective-C structures or modified +function types yourself, be aware that they may be overwritten when this action +is run._ + + + +### Workflow + +To utilize function call cleanup, the workflows feature must be enabled, and the +Objective-C workflow must be chosen when loading a binary for analysis. + + + +This will automatically apply strucutre analysis as the binary is analyzed and +also translate `objc_msgSend` calls to direct method calls, where possible. diff --git a/docs/img/objc_analyze_action.png b/docs/img/objc_analyze_action.png Binary files differnew file mode 100644 index 00000000..2e486778 --- /dev/null +++ b/docs/img/objc_analyze_action.png diff --git a/docs/img/objc_workflow_selected.png b/docs/img/objc_workflow_selected.png Binary files differnew file mode 100644 index 00000000..51ecef4f --- /dev/null +++ b/docs/img/objc_workflow_selected.png @@ -36,6 +36,7 @@ nav: - Plugins: 'guide/plugins.md' - Types: 'guide/type.md' - Debugger (Beta): 'guide/debugger.md' + - Objective-C (Beta): 'guide/objectivec.md' - Troubleshooting: 'guide/troubleshooting.md' - Developer Guide: - API: 'dev/api.md' |
