| Age | Commit message (Collapse) | Author |
|
To keep backwards compatibility for commonly referenced code we re-export them within the architecture module.
Also does some light refactoring of some newly added APIs to keep them more consistent with other parts of the codebase.
|
|
|
|
|
|
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
|
|
|
|
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
|
|
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
|
|
|
|
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.
|
|
|
|
|
|
|
|
Fixes https://github.com/Vector35/binaryninja-api/issues/7646
Also cleaned up and added some more context to the `NamedTypeReference::target` function.
|
|
|
|
When running the command "WARP\\Load File" it will create a new container and add it to the global container list, we need to show this in the UI
|
|
Fixes cases where the user signature directory for some reason has not been created, typically the directory will exist as the sigkit runner will also try and create the directory.
|
|
|
|
|
|
Its not critical, but I still want it to be visible when it fails
|
|
Fixes https://github.com/Vector35/binaryninja-api/issues/7266
|
|
The down and enter keys now preserve an existing selection in the
associated list or table views, rather than unconditionally selecting or
activating the first item.
|
|
Removes the need to book keep on the caller side
|
|
This allows connections to enterprise servers without requiring the default download provider to be switched in settings
|
|
|
|
|
|
Also adds support for parsing bitfields in PDB, DWARF and SVD plugins
WIP: API needs to be considered more, also need to find type related apis that may need to be rethought.
|
|
Adds WARP, DWARF Import and Objective-C plugins to free
|
|
Unfortunately we cannot use reqwest because enterprise servers provide invalid certificates, so we must use the enterprise download provider to bypass certain certificate validations
|
|
|
|
|
|
fix struct members being put at wrong offset when location fails to be parsed
|
|
|
|
|
|
|
|
|
|
- Fixed crash related to pending fetch callback for deleted view frame
- Fixed focus not being kept for tables in the sidebar, as well as focus in general
- Made matched function list navigation require a double click, to fix accidental navigation to other functions
|
|
- Adds Python API to remove matched function
- Adds command + UI actions to remove matched function
- Adds command + UI actions to ignore function in subsequent matches
|
|
|
|
|
|
functions as apart of initial analysis
This is off by default for the obvious reasons, we may also in the future want to expand upon this with a "matched view" such that the first step a user can take after loading is to validate what functions were matched and decide if they want to keep any of that data.
This fetch happens as apart of the initial analysis, such that a headless script will not return from the load function until it has finished fetching. We may want to add a configurable timeout, and/or run the fetch out of band (let load return before fetching finishes).
|
|
|
|
|
|
- Respects views fetch batch size and allowed tags
- Saves and loads from the view settings instead of qt settings
|
|
This then allows us to group the settings into more understandable subgroups such as fetcher & matcher
|
|
This fixes an issue where the commit dialog would not fill in the newly added network source
|