Vector35 / Vector35/binaryninja-api
Ability to hide VFT member of class when calling member functions
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
I appreciate the current implementation, which displays the VFT member itself when accessing member functions of the class, as demonstrated in the example below:
However, I prefer this behavior only if I haven't fully understood the class that I'm reversing. When I feel confident in my understanding of the class, I prefer not to see calls to member functions through the VFT member (e.g. cat_vtable). Instead, I would like to see member function calls directly on the class itself. For example, instead of cat->cat_vtable->introduce(cat), I want to see cat->introduce(cat). This provides a clearer and more concise representation of the code so saving space.
Perhaps we could inform BN to hide the VFT member with an option, or we could adopt a similar approach to IDA. If I remember correctly, IDA hides it when we name the VFT pointer and VFT name according to certain rules. Personally, I would prefer this approach.
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.
Research direction
Start by reviewing how Binary Ninja renders member-function calls through a VFT member, using the cat_vtable example in the issue as the expected comparison. Investigate whether the behavior should be controlled by an option or by naming rules like IDA; done means confidently identified behavior and an agreed implementation scope for hiding the VFT member.
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
- 35/100