Vector35 / Vector35/binaryninja-api

Should binding stubs exist in `view-macho` or in `platform-mac`?

Open
#4,049 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component: Platform Effort: Low File Format: Mach-O Impact: Low
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

So now that mach-o is OSS, a feature that should be built is the parsing of stubs to their symbolic name. The stubs section starts with a generic "thunk" and each successive function is a stub function, followed by an immediate constant value which is the index into the DYLD Tries that binds the symbol. By iterating over each stub/thunk we can correctly name these functions as __stub_binder_thunk$LIBRARY$SYMBOL

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

Compare the responsibilities of view-macho and platform-mac for Mach-O stub parsing. Start by tracing how the stubs section and DYLD Tries are represented, then determine which component should iterate over each thunk and bind it to a symbolic name. Done means the ownership decision is resolved and the proposed parsing behavior is specified.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
reverse-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.