summaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
2026-04-15[bntl] Fix rpaths to not include an absolute path into the build directory ↵Mark Rowe
on macOS
2026-04-14Plugin Manifest V2 Support0cyn
2026-04-13types: fragment type API support (C++, Python)Ryan Snyder
2026-04-13[RTTI] Fix Itanium RTTI scan failing to symbolize objects with extern typeinfoMason Reed
The issue stems from the gnu3 demangler changing in https://github.com/Vector35/binaryninja-api/commit/260ca61d94134b6743807e29f64b5ce4f6918d73 Fixes https://github.com/Vector35/binaryninja-api/issues/8080
2026-03-30[ObjC] Set return type on objc_msgSend calls that send an init message to a ↵Mark Rowe
known class
2026-03-30[ObjC] Propagate types from objc_alloc_init and friendsMark Rowe
2026-03-29[PDB Import] Fix headless being prompted with an interaction for mismatched PDBMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/7836
2026-03-29[SVD Import] Fix misc mapper issuesMason Reed
- Fix unordered register fields causing spurious __offset fields to be rendered for the structure - Fix registers overlayed onto an alternate register not being treated as a union Fixes https://github.com/Vector35/binaryninja-api/issues/7918
2026-03-29[SVD Import] Remove "add bitfield" settingMason Reed
We unconditionally add them now that bitfields are represented correctly in the type system
2026-03-26[WARP] More documentation updates and python examplesMason Reed
2026-03-25[IDB Import] Fix some misc bugsMason Reed
- In certain IDBs the loading base is zeroed but the info is not relative, in this case we now fallback to rebasing based off the lowest section address specified by `min_ea`. - In certain IDBs the info is relative, we ignore both the loading base and `min_ea` and compute the absolute address using the base address in the binary view - Fixed data exports being recognized as functions - Retrieve post, pre comments from dirtree - Fix mapping in extern section (which is tool specific in how it is setup) - Properly mark exported data as global binding
2026-03-25[IDB Import] Fix file dialog filter separating out each extensionMason Reed
Caused the resulting dialog to have a drop down that you must select to get to *.i64, which is an extra unneeded step
2026-03-24[WARP] Sanitize server URLsMason Reed
2026-03-24[BNTL] Fix misc doc comments missingMason Reed
2026-03-24[WARP] Do a partial update of the sidebar UI when navigating instead of a ↵Mason Reed
full update Reduces unnecessary work
2026-03-24[WARP] Warn when matching with relocatable regions in low address spaceMason Reed
The heuristics will check if a constant is within the relocatable regions and mask. If we are in a low address space we might be masking regular constants like 0x10.
2026-03-24[WARP] Improved UX and APIMason Reed
- Exposes WARP type objects directly - Adds processor API (for generating warp files directly) - Adds file and chunk API - Misc cleanup - Simplified the amount of commands - Replaced the "Create" commands with a purpose built processor dialog - Added a native QT viewer for WARP files - Simplified committing to a remote with a purpose built commit dialog
2026-03-24[Rust] Move `ObjectDestructor` to own module and add some extra documentationMason Reed
2026-03-24[WARP] Fix relocatable region selection failing to fallback to section ↵Mason Reed
collection Previously we only selected relocatable regions from the list of sections, now that we use the segment list we need a way to fallback to the section list of the segment information is problematic (e.g. based at zero), that fallback has not been triggering as there is a segment for the synthetic sections. Now when a user opens a firmware with only a single zero based segment it should fallback to the sections _and_ alert the user that they should fill out the section map (since that job is left to the user)
2026-03-24[WARP] Add a spinner to the possible matches widget while fetching from networkMason Reed
A little extra pizzaz
2026-03-24[WARP] Update the selected sidebar function when refocusingMason Reed
Should fix issue where opening the sidebar for the first time will not show anything in the selected function until the user clicks in the view frame
2026-03-24[WARP] Server-side constraint matchingMason Reed
Reduce networked functions by constraining on the returned set of functions on the server
2026-03-24[WARP] Demote locking surrounding container function fetchingMason Reed
By demoting the containers lock to read only for fetching we can prevent blocking the main ui thread while waiting for the network requests to finish
2026-03-23IDB Import refactorMason Reed
2026-03-23[Swift] Add arm64 calling conventionsMark Rowe
The Swift ABI repurposes three callee-saved registers for implicit parameters (self, error, and async context). Supporting the various combinations of these requires registering several different calling conventions. The demangler is taught to explicitly apply these calling conventions to functions that need them.
2026-03-23[Swift] Add support for applying parameter and return types during demanglingMark Rowe
This is disabled by default due to a current limitation where core is not able to represent parameters that are small structs being passed across multiple registers. `analysis.swift.extractTypesFromMangledNames` can be enabled to test this.
2026-03-23[Swift] Initial demangling supportMark Rowe
2026-03-23[Swift] Initial skeleton of a plug-in for Swift supportMark Rowe
2026-02-26[DWARF Import] Do not wrap function parameter types in named type referencesJosh Ferrell
2026-02-23[RTTI] Scope loggers to the associated viewMason Reed
2026-02-23[BNTL] Fix misc unused warningsMason Reed
2026-02-23Add global plugin command typeMason Reed
Register plugins which are available outside the context of a binary view
2026-02-23[BNTL] Misc improvementsMason Reed
2026-02-23[Rust] Misc documentation and cleanupMason Reed
2026-02-23[BNTL] Misc improvementsMason Reed
2026-02-23[BNTL Utils] Fix misc clippy lintsMason Reed
2026-02-23Add BNTL utility pluginMason Reed
Allow users to easily create, diff, dump and validate type libraries Supports the following formats: - C header files (via core type parsers) - Binary files (collects exported and imported functions) - WinMD files (via `windows-metadata` crate) - Existing type library files (for easy fixups) - Apiset files (to resolve through forwarded windows dlls) Can be invoked as a regular plugin via UI commands or via CLI. Processing of type libraries inherently requires external linking, processing will automatically merge and deduplicate colliding type libraries so prefer to use inside a project or a directory and process all information (for a given platform) at once, rather than smaller invocations.
2026-02-23[Python] Add missing `TypeLibrary.duplicate` APIMason Reed
2026-02-23[Rust] Refactor `FileMetadata` file informationMason Reed
- Rename and retype `FileMetadata::filename` and make the assignment required to happen at time of construction. - Add `FileMetadata::display_name` which is only to be used for presentation purposes. - Add `FileMetadata::virtual_path` for containers. - Rename `FileMetadata::modified` to `FileMetadata::is_modified` to be more consistent across codebase. - Add some missing documentation. - Add `BinaryView::from_metadata` with accompanying documentation.
2026-02-23[Rust] Fix plugins being referenced in `cargo about` outputMason Reed
2026-02-22[WARP] Allow containers to be constructed programmatically (#7952)Mason Reed
2026-02-10Fix rpath of workflow_objc on macOSMark Rowe
2026-02-06Add regex and case sensitivity options to FilterEditJosh Ferrell
2026-02-06[DWARF Import] Do not wrap pointer types in named type referencesJosh Ferrell
2026-01-14Allow controlling which address is used for instructions created when ↵Mark Rowe
inlining during analysis Previously the address of the instruction in the function being inlined was used as the new instruction's address when copying it during inlining. Now there is an additional option: use the address of the call instruction that is being replaced as the new instruction's address. This new mode is useful when inlining thunks or stub functions, but care must be taken if using it beyond that. The benefit is that it ensures that when a function contains multiple calls to the same stub function, each inlined copy ends up with distinct addresses. This ensures that call type adjustments and other overrides that are stored on the function and keyed by address can be applied independently to each callsite that was inlined. The trade-off is that if the function being inlined contains non-trivial logic, all of the inlined instructions sharing an address will limit what type of adjustments can be applied to them. The Objective-C and shared cache workflows are updated to take advantage of this new mode when they enable inlining of stub functions. This will make it possible for multiple calls to the same runtime function within a single function to have separate call type adjustments applied in the future.
2026-01-13[RTTI] Improve virtual function discoveryMason Reed
- Allow extern functions to show up in a MSVC vtable - Fix https://github.com/Vector35/binaryninja-api/issues/7871 - Share code between itanium and msvc vft analysis, it is the same logic basically
2026-01-11[DWARF] Fix misc missing imports from `log` => `tracing`Mason Reed
2026-01-11[Rust] Update examples to use tracingMason Reed
2026-01-11[Rust] Enter more session scoped tracing spans for debug info and binary ↵Mason Reed
view callbacks
2026-01-11[Rust] Replace `log` with `tracing`Mason Reed
- Added more documentation - Replaced global named logger for plugins, fixing the issue when the CU has multiple (e.g. statically linked demo) - Simplified some misc code This is a breaking change, but I believe there is no better time to make it, we cannot continue to use the `log` crate, it is too limited for our needs.