Vector35 / Vector35/binaryninja-api
Support custom transformation by providing a textual transformation rule
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
We have several built-in transformations that are very useful, but from time to time we need custom transformations beyond those. We do support custom transformations, however, many of these are only useful maybe for once, so it can be inconvenient to write a plugin for it
I propose that we support a new type of transformation that takes e.g., a byte, and calculate the output based on a rule, and then generate the output. Suppose someone provide the rule as "byte - 0x10 ^ 0x45", then the transformation will calculate each byte accordingly
This is inspired by https://github.com/DidierStevens/DidierStevensSuite/blob/master/translate.py
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 the existing built-in and custom transformation support in the Binary Ninja API, then compare the proposed rule syntax with the referenced DidierStevensSuite translate.py implementation. Done would mean a supported textual rule can transform each byte, including the example rule "byte - 0x10 ^ 0x45", without requiring a plugin.
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
- Needs clarification
- Newbie friendliness
- 25/100