Vector35 / binaryninja-api

Public API, examples, documentation and issues for Binary Ninja
https://binary.ninja/
MIT License
928 stars 210 forks source link

smart patching (right/click patching) #27

Open psifertex opened 9 years ago

psifertex commented 9 years ago

Ability to appropriately resize or find 'dead' space, insert jumps, copy existing code, integrate patches with existing relative offsets and symbols and then add new functionality to patch on the fly.

Needs support for:

CryptXor commented 8 years ago

Could you add an option to "preview" the changes before they are added to that thought.

plafosse commented 8 years ago

Since you can use undo do you feel a preview is really necessary?

CryptXor commented 8 years ago

Yes, as it would be easy to see if there are any bugs with over-writing/inserting. Perhaps such options could be added as "debug" options enabled via the prefs?

psifertex commented 6 years ago

Note that BNHook implements this functionality as a plugin for ELF: https://github.com/orndorffgrant/bnhook

xusheng6 commented 1 week ago

Just wish to update this that now that we have the ability to create a new segment not backed by file and write to it, it seems better to just write to there rather than trying to find empty spaces in the executable. That said, my suggested approach would only do good for analysis, if one wants the code to execute the patch, we still need to change the section/segment headers for it