Vector35 / Vector35/binaryninja-api

Enhance the automatic naming of string variables upon loading PDB

Open
#4,978 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component: DebugInfo DebugInfo: PDB Effort: Medium Impact: Low
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

Version and Platform (required):

  • Binary Ninja Version: 3.6.4802-dev, 87e27dc3
  • OS: Windows
  • OS Version: 11
  • CPU Architecture: x86_64

Bug Description:
When loading a binary with a PDB file, BN employs unconventional variable names for string variables. These names could be enhanced for improved readability, as the current naming often blurs the distinction between variable names and variable types, leading to confusion. Additionally, this behavior makes it more challenging to copy code from the decompiler to plain C code.

Steps To Reproduce:

  1. Load a binary that have a PDB file
  2. Examine various string variables within the BNDB

Expected Behavior:
I expect BN to give those variables more simpler names. For the example above it could be sTotalAnimals. Essentially, BN could remove any characters from the variable names except for digits and alphabet letters, resulting in clearer naming.

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

Reproduce the naming behavior by loading a binary with a PDB file and examining string variables in the BNDB and decompiler output. Trace the code responsible for imported PDB variable names; done means string variable names are simpler and preserve only letters and digits, such as sTotalAnimals, without harming other names.

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
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.