| Age | Commit message (Collapse) | Author |
|
This change consists of two parts:
1. Updating the system register enumeration and names based on the
latest data from ARM.
2. Removing register names that conflict with the official names from
ARM.
The conflicting register names came a data set of Apple-specific system
register names. These would ideally not be baked into the AArch64
disassembler at all, but would be added by Binary Ninja's Apple
platform. The exact mechanism for doing that is still TBD.
Fixes https://github.com/Vector35/binaryninja-api/issues/7664.
|
|
Fixes https://github.com/Vector35/binaryninja-api/issues/7666.
Correctly managing the state of bulk symbol modifications via
`BeginBulkModifySymbols` / `EndBulkModifySymbols` is error-prone in the
face of exceptions and early returns. Leaking a bulk symbol modification
can leave the view in a state where no further changes to symbols will
be applied.
All users of the C++ API are encouraged to move from
`BeginBulkModifySymbols` / `EndBulkModifySymbols` to the new
`BulkSymbolModification` class.
|
|
|
|
|
|
|
|
We already do this for a number of plugins / crates, this commit goes over the rest to make sure that they all do this.
We keep cleaning binaryninjacore-sys as we want to generate the core bindings immediately on changes to binaryninjacore.h
|
|
These are introduced after changing to Rust 1.91.1
|
|
|
|
|
|
unbacked regions
Fixes https://github.com/Vector35/binaryninja-api/issues/7724
|
|
Co-authored-by: Mason Reed <mason@vector35.com>
|
|
directly for better performance in presence of many sections.
|
|
shared cache
Dataflow is now used to determine call targets when detecting calls to
reference counting runtime functions. The previous approach of matching
on specific instructions missed some patterns that are common in the
shared cache.
|
|
explicit type
Helps with windows functions where we had previously defined the signature
|
|
|
|
Seems we forgot to expose this one
|
|
Fixes https://github.com/Vector35/binaryninja-api/issues/7705
RTTI processing with malformed sections can still cause prolonged analysis, in extreme cases like the binary in the issue needing the user to stop the RTTI processing once it gets to the Itanium RTTI pass. More work to be done, I would like to solve this with some section heuristics using the sections/segments entropy.
|
|
the previous pass
|
|
|
|
|
|
|
|
This ensures they do not overlap with any images that may later be loaded from the shared cache.
|
|
This ensures they do not overlap with any images that may later be loaded from the kernel cache.
Fixes https://github.com/Vector35/binaryninja-api/issues/7634.
|
|
Should have the same behavior as doing it on a directory
|
|
Can be triggered by trying to run the processor on a file with no functions.
Found this while doing misc performance testing on windows.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Now that we have more duplicate API's we need to clarify and cross link between them to help alleviate the confusion for readers.
|
|
|
|
consistent, lock-free AnalysisContext queries.
|
|
Fixes: https://github.com/Vector35/binaryninja-api/issues/7588
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Python has the get_functions_by_name method on binary views that is
useful for finding a function by name. This adds that same method to
the rust implementation for binary views.
The implementation is essentially the same as the python version apart
from the ordering of the symbols. Python will order functions defined
in the binary before functions defined outside of the binary. The rust
implementation of `symbols_by_name` does not take an ordering for the
symbols so that is currently left out here.
|
|
This fixes an error when a constant is being loaded into a flag.
The constants associated with a flag value have their size set to zero.
That causes the mask for the constant value to be all zeros. Due to that,
getting the value of a zero sized constant will always return 0 even if
it should be 1.
This commit special cases the size of zero to create a mask of 1 which
will correctly mask off the lowest byte and return that as the constant.
|