Closed rssor closed 3 months 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.
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...
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.
Need the ability to add _start type information to a platform.
Initial implementation of BNCustomPlatform was merged to dev several weeks ago, with support for
Is the new functionality documented or exposed in the Python API?
Platform objects are better suited to take over certain roles, such as:
r2
/r30
on ppc)We also need additional expressiveness in the form of:
fs
andgs
will be used to access very different structures between usermode/kernelmode, meaning we need to have different platforms not only for usermode vs kernelmode code, but also different versions of NT)BNRegisterArchitectureForViewType
/BNGetArchitectureForViewType
and itsBNPlatform
variants)