Provide a List of Call Sites That is Free of Synthetic Builtin Functions
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Domain
- api, reverse-engineering
Research direction
Start with the Python binaryninja.function call-site property and the core.BNGetFunctionCallSites(self.handle, count) entry point mentioned in the issue. Trace how .synthetic_builtins and IL traversal currently identify synthetic functions; done means exposing a call-site list that excludes those functions without requiring callers to generate and traverse IL.
Written by the indexing model from the issue text.
Description
What is the feature you'd like to have?
Add a new function property which returns a list of call sites that excludes any function in .synthetic_builtins.
Is your feature request related to a problem?
I have to add code to exclude these synthetic functions from my list of call sites. The only way this can be done is to have one of the ILs that includes the synthetics generated and then to traverse it to exclude synthetics. This is not ideal. I looked at the Python source for binaryninja.function and the list of call sites comes from core.BNGetFunctionCallSites(self.handle, count). It seems like the most optimal place to fix this is to add a flag/parameter to this call that excludes synthetics, but you all can determine the best fix. It probably should happen over the C++ border not in Python.
Are any alternative solutions acceptable?
I have a slow, in Python, cleaner function that traverses IL and excludes synthetics.
- 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
-
Website Doc Typo Open
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
Difficulty 1/5 1-3 hours Newbie friendliness 92/100
autowarefoundation/autoware_universe#13413 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
automated-analysis bug memory-safety
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100