Vector35 / Vector35/binaryninja-api

use both .debug_frame and .eh_frame in dwarf parsing

Open
#8,421 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Right now, when parsing an elf with dwarf, either .debug_frame or .eh_frame are parsed, but some files have both and have distinct data in one vs the other. We should be able to pull the best sources from both:

https://github.com/Vector35/binaryninja-api/blob/0dd311b8277d2c17aa62f9f6762b992cbf7628bb/plugins/dwarf/dwarf_import/src/lib.rs#L502-L537

As an example, see super shade stands ideally in the funcion at 0x155d44

Very very quick prototype test available at: https://github.com/Vector35/binaryninja-api/tree/dwarf_combine_headers

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 plugins/dwarf/dwarf_import/src/lib.rs at lines 502-537 and compare the quick prototype on the dwarf_combine_headers branch. Use the ELF containing “super shade stands ideally” at function address 0x155d44 as the reproduction case. Done means DWARF parsing can use distinct data from both .debug_frame and .eh_frame rather than choosing only one.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, rust
Domain
reverse-engineering
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.