Changing a name shouldn't cause a whole function re-analysis
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- cpp
- Domain
- reverse-engineering
Research direction
Start by tracing how variable and struct-field renames from the HLIL view trigger function analysis and how the updated decompilation output is produced. Compare the current full-function reanalysis path with a name-only substitution approach; done means renaming a name updates the displayed output without reanalyzing the entire function, including for large functions.
Written by the indexing model from the issue text.
Description
Is your feature request related to a problem?
In Binary Ninja 2.5.3127-dev, If I rename a variable or struct field from within the HLIL view, it reanalyzes the entire function I'm looking at in order to display the new name. For large functions this can be rather slow.
What is the feature you'd like to have?
Since a name change is guaranteed to have a shallow effect on the decompilation output, Binary Ninja should just substitute the name in the output rather than redoing everything.
Are any alternative solutions acceptable?
Hypothetically, it would be even better to have a full-fledged incremental decompilation feature that can account for type changes and other semantic changes without reanalyzing the whole function. But that would probably be orders of magnitude harder to implement.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Vector35/binaryninja-api
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
Vector35/binaryninja-api#8540 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Vector35/binaryninja-api#8516 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Vector35/binaryninja-api#8503 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Vector35/binaryninja-api#8446 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Vector35/binaryninja-api#8444 ·
All issues in Vector35/binaryninja-api
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
gazebosim/gz-sensors#662 · 1 comment ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
LadybirdBrowser/ladybird#12123 ·