Vector35 / Vector35/binaryninja-api

Add support for static linked `GNU_IFUNC` symbols

Open
#6,865 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component: Core Effort: Low File Format: ELF Impact: High
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

In this case, the var_128 variable should be the argument of j_strlen(), which is proved by seeing the source code, but Binja cannot identify the correct arg. Probably is the function type isn't applied properly?

Image

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 with the issue's GNU_IFUNC example, the attached image, and the referenced j_strlen() call. Compare the source-level argument with Binary Ninja's inferred argument and trace how static-linked GNU_IFUNC symbols are analyzed. Done means the correct var_128 argument is identified for this case and the behavior is covered by a reproducible check.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
reverse-engineering
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.