Vector35 / Vector35/binaryninja-api

[Objective-C] Rewrite external method calls with stubs

Open
#5,590 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Component: Objective-C Workflow
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

Calls to Objective-C methods defined outside the binary—e.g. NSString methods, etc.—currently can't be rewritten because there is no function inside the binary to replace the call destination with. Creating stub functions in a fake section for imported methods might allow for clearer decompilation.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how external Objective-C method calls, such as NSString methods, are represented and where call destinations are rewritten. Investigate how stubs in a fake section could provide an in-binary destination, and define tests showing that imported method calls can be rewritten and produce clearer decompilation.

Written by the indexing model from the issue text.

Assessment

Tech stack
objective-c
Domain
reverse-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.