Improve Labeling API
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Domain
- compilers, reverse-engineering
Research direction
Start with LowLevelILFunction.mark_label() and the labeling usage in examples/workflows/inliner/inliner.cpp. Compare how LowLevelILInstruction targets are represented and determine the API or documentation scope needed for arbitrary goto targets. Done means callers can create jumps to arbitrary instructions without manual label manipulation or ctypes knowledge.
Written by the indexing model from the issue text.
Description
What is the feature you'd like to have?
The "labeling" API is currently undocumented and convoluted. It is necessary for many tasks when creating workflows.
Currently, labels must be manually modified manually (which is cumbersome and requires ctypes knowledge in Python), even in the official examples
Is your feature request related to a problem?
When modifying LowLevelIL and trying to insert goto/jump instructions, one needs to create a label in order to specify the target. In order to create these, the normal API is LowLevelILFunction.mark_label(). This API is inadequate because it is only capable of targeting the next added instruction (which is also undocumented, by the way). Instead, an API needs to be exposed to allow selecting label targets based on LowLevelILInstructions or another flexible mechanism.
Are any alternative solutions acceptable?
Provide/document an additional API for creating goto instructions pointing to arbitrary instructions.
- 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