Vector35 / binaryninja-api

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

Platform API Refactor #1977

Closed rssor closed 3 months ago

rssor commented 4 years ago

Platform objects are better suited to take over certain roles, such as:

We also need additional expressiveness in the form of:

whitequark commented 3 years ago
  • The ability for Platforms to be used to interpret constant loads for the purposes of dataflow loads with read-only semantics. This allows handling of arbitrary endianess as in #1934, as well as properly rendering datavars on certain architecture/toolchain combinations.

Another motivation for this feature is rendering uleb128 fields, e.g. in Dalvik bytecode, or perhaps in DWARF.

yrp604 commented 3 years ago

One thing to explicitly highlight -- this ticket would allow much easier identification main in Windows binaries. This sounds trivial, but is a reliably annoying papercut that I hit frequently...

plafosse commented 2 years ago

This would allow us to disable linearsweep if not relevant for a given BinaryView. For instance LC_FUNCTION_STARTS in MachO and binaries linked with CFG/XFG info.

psifertex commented 1 year ago

Need the ability to add _start type information to a platform.

rssor commented 3 months ago

Initial implementation of BNCustomPlatform was merged to dev several weeks ago, with support for

whitequark commented 3 months ago

Is the new functionality documented or exposed in the Python API?