summaryrefslogtreecommitdiff
path: root/plugins/warp/src
AgeCommit message (Collapse)Author
2026-05-26[WARP] Fix crash when no default calling convention is registeredMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/8181
2026-05-22Refactor calling conventions to support correct representation of structuresRusty Wagner
2026-05-10[Rust] Refactor `binary_view` moduleMason Reed
- Remove the "viral" `BinaryViewExt` trait and its blanket impl - Split up the binary view type from the custom trait impl - Simplify and fix bugs regarding custom binary view initialization - Rewrite Minidump binary view example, parses the PE headers to create proper sections now - Add some extra documentation - Add unit test for custom binary view
2026-04-13types: fragment type API support (C++, Python)Ryan Snyder
2026-03-24[WARP] Sanitize server URLsMason Reed
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] 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-02-23Add global plugin command typeMason Reed
Register plugins which are available outside the context of a binary view
2026-02-23[Rust] Misc documentation and cleanupMason 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-22[WARP] Allow containers to be constructed programmatically (#7952)Mason 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.
2025-12-15[WARP] Allow multi-round matching to resolve matching function dependenciesMason Reed
Fixes some possible nondeterminism due to parallelized matching
2025-12-15[WARP] Misc cleanupMason Reed
2025-12-15[WARP] Skip non-defined function symbols when collecting constraintsMason Reed
Reduces the size of constraints, reducing the size of chunks.
2025-12-15[Rust] Add `Function::defined_symbol` to use when getting the default ↵Mason Reed
function symbol is not warranted
2025-12-15[WARP] Deduplicate matched functions within the matcher implicitlyMason Reed
Avoids having to coalesce function objects from multiple sources when enumerating for matched functions.
2025-12-05[Rust] Fix misc clippy lints and warningsMason Reed
These are introduced after changing to Rust 1.91.1
2025-12-01[WARP] Consult type library function objects when matched function has no ↵Mason Reed
explicit type Helps with windows functions where we had previously defined the signature
2025-11-25[WARP] Stop propagating skipped file error when processing archivesMason Reed
Should have the same behavior as doing it on a directory
2025-11-25[WARP] Fix leaking binary view on empty viewsMason Reed
Can be triggered by trying to run the processor on a file with no functions. Found this while doing misc performance testing on windows.
2025-11-16[WARP] Fix unused rerun matcher checkbox when loading file on diskMason Reed
2025-11-16[WARP] Explicitly create user signature directory on plugin initMason Reed
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.
2025-11-05[WARP] Demote server disconnect failure to warningMason Reed
Its not critical, but I still want it to be visible when it fails
2025-11-04[WARP] Add number of matched functions to the ending log message for matchingMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/7266
2025-11-04[WARP] Return existing source id when adding a file to a disk containerMason Reed
Removes the need to book keep on the caller side
2025-11-04[WARP] Use enterprise download provider when availableMason Reed
This allows connections to enterprise servers without requiring the default download provider to be switched in settings
2025-10-22Add more plugins to freeMason Reed
Adds WARP, DWARF Import and Objective-C plugins to free
2025-10-22[WARP] Use download provider API instead of reqwestMason Reed
Unfortunately we cannot use reqwest because enterprise servers provide invalid certificates, so we must use the enterprise download provider to bypass certain certificate validations
2025-10-12[WARP] Improve UX surrounding removal of matched functionsMason Reed
- 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
2025-10-07[WARP] Add optional `analysis.warp.fetcher` activity to run fetch networked ↵Mason Reed
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).
2025-10-07[WARP] Misc `cloned()` -> `copied()` fixupMason Reed
2025-10-07[WARP] Move WARP settings to own setting groupMason Reed
This then allows us to group the settings into more understandable subgroups such as fetcher & matcher
2025-10-07[WARP] Implicitly make newly added network sources writableMason Reed
This fixes an issue where the commit dialog would not fill in the newly added network source
2025-10-07[WARP] Let BNDB processing optionally skip analysis updatesMason Reed
This helps when you have analyzed large binaries and want to create signatures after-the-fact, skipping analysis. This can speed up the time to create large datasets drastically.
2025-10-07[Rust] Fix save file dialog not respecting default file pathMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/7268
2025-10-05fix missing rust importJordan Wiens
2025-10-03[WARP] Push added functions and types to network containers cacheMason Reed
This makes them immediately available, and works around the issue of invalidating the entire cache to allow for retrieving of locally pushed data
2025-10-03[WARP] Trim whitespace from server API keyMason Reed
2025-10-02Fix Rust formattingMark Rowe
2025-10-01[WARP] Enhanced network supportMason Reed
2025-09-29Fix Rust LowLevelILFunction owner function methodBrandon Miller
LowLevelILFunction objects can be constructed without a owner function. BNGetLowLevelILOwnerFunction can return NULL and must be checked before creating a Function object.
2025-09-15Deprecate some Rust MediumLevelILFunction methods in favor of Function ↵Josh Ferrell
implementations
2025-09-03[WARP] Improve matcher speed and add fast fail for pathological casesMason Reed
Improves the speed by moving chunks of functions into worker threads, because of how the functions and possible functions are gathered we have many locations to insert fast fails, which is also partially addressed by this commit (see `maximum_possible_functions`).
2025-09-03[WARP] Fix very large binaries from being prevented from creating WARP files ↵Mason Reed
of all the functions This was caused by the internal flatbuffer verifier reaching the max number of tables, this is fine and the solution is to split the large chunk into smaller ones, effectively creating more flatbuffer "views" of tables. This is fine from a performance perspective because we already have optimized for many small chunks (e.g. we have a lookup table stored next to each chunk). I left some comments for future improvements but this should be good now. Also alongside this change we improved generating performance by 2x on some pathological binaries.