Vector35 / Vector35/binaryninja-api

Support custom transformation by providing a textual transformation rule

Open
#6,758 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Component: Core Effort: Low Impact: Low
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.