summaryrefslogtreecommitdiff
path: root/plugins/warp
AgeCommit message (Collapse)Author
2025-08-03[Rust] Misc formattingMason Reed
2025-07-30Add dependency tracking to the Python code generationMark Rowe
This ensures that the Python source files are only generated and copied into the output directory if inputs have changed, rather than being done unconditionally.
2025-07-30[CMake] Specify CONFIGURE_DEPENDS for all file(GLOB ..)Mark Rowe
This ensures that CMake detects when files that match the glob are added or removed.
2025-07-29Add support for declarative downstream dependencies to workflow system.Brian Potchik
2025-07-28[Rust] Misc formattingMason Reed
2025-07-28[WARP] Fix user annotations being overriden by WARP annotationsMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/7194
2025-07-28[WARP] Update snapshots following regression fixMason Reed
Forgot to update these after the guid regression fix, there is no cause for alarm :)
2025-07-23[WARP] Generate function guids for mach-o objective-c binariesMason Reed
Previously we only added the warp function activities to the meta workflow, however objective-c plugin currently registers its own workflow that we must add the activities to as well. Fixes https://github.com/Vector35/binaryninja-api/issues/7172
2025-07-21[WARP] Misc formatting fixesMason Reed
2025-07-21[WARP] Fix sidebar run matcher icon not resetting to idleMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/7116
2025-07-21[WARP] Fix UI hanging when matched function sidebar updates with >50k ↵Mason Reed
matched functions One day I will get the QT incantations correct
2025-07-21[WARP] Add warning if trying to run matcher on database with no function ↵Mason Reed
guids generated Just a sanity check so we can alert the user, they can just reanalyze their functions and the guid will be constructed
2025-07-21[WARP] Fix garbage jumps from being included in the variant instruction maskingMason Reed
We emit jumps at the end of some blocks that the architecture is not aware of, they are not actually apart of the functions instructions rather they are used in our analysis... somehow, I have not figured out what they are supposed to be used for but regardless, they should be ignored by WARP. This was just a case where the filtering was including jumps in non start instructions, where we actually wanted the opposite.
2025-07-21[WARP] Consult segments unconditionally when constructing relocatable regionsMason Reed
This removes more barriers for those working with firmware to use WARP, previously if you had defined any sections (such as a vector interrupt table) then backed segments would end up being marked non-relocatable. This, combined with the use of ELF intermediate object files created inconsistent GUID's, using the segments backing the real functions fixes this.
2025-07-21Add _warpcore.py to .gitignoreMason Reed
2025-07-17[WARP] Make the sidebar highlights not blindingMason Reed
It is apparently "too bright" and I need to get "my eyes checked"
2025-07-17[WARP] Update snapshots following plural lifted IL retrieval fixesMason Reed
2025-07-17[WARP] Construct a minimal version of the function object when user only ↵Mason Reed
wants the symbol We were previously constructing the function type, comments and variables to just throw away, wasting precious cpu cycles!
2025-07-17[WARP] Add adjustable thread pool for project signature creationMason Reed
Will also adjust the worker thread count so that there is enough for view destruction and what not. The default will be filled as well for the user.
2025-07-17[WARP] Stop showing the time it took to match if it is under a secondMason Reed
Just added noise to the logs, probably should do this for rtti as well
2025-07-17[WARP] Fix function comment retrieval in python APIMason Reed
2025-07-17[WARP] Fix skipping warp files in projectsMason Reed
2025-07-15[WARP] Misc improvementsMason Reed
- Fix project file filter not blacklisting warp files - Fix project name not being used for default file save name - Prevent adding the same file to the available sources
2025-07-15[WARP] Fallback to using segment information for relocatable rangesMason Reed
This previously was not allowed as the information would sometimes include a zero based segment, however this is still preferable in the case of firmware, where sections will not be available by default. This improves the usability of WARP with firmware by removing the requirement of filling section information prior to function analysis.
2025-07-15[WARP] Add network containerMason Reed
This is going to be disabled by default on this upcoming stable, however users may enable it once we deploy the public server. The data from the server is done through `Container::fetch_functions` independent of the nonblocking function lookup functions. The sidebar has been updated to drive fetching so that when users navigate to a new function the fetcher will kick off. This fetcher operates on a separate thread, in the event of a user navigating to many functions before the current fetch has completed they all will be batched together in a single fetch. Networked container currently is limited to just function prototypes, other type information separate from the function object will be omitted.
2025-07-15[WARP] Add more options to creating signatures in projectsMason Reed
2025-07-15[WARP] Add example of creating signatures headlessly in pythonMason Reed
2025-07-15[Rust] Misc formattingMason Reed
2025-07-15[WARP] Add `IsInstructionComputedVariant` APIMason Reed
Was previously not exposed, we want it for unit tests.
2025-07-15[WARP] Filter out LLIL_JUMP artifacts in lifted ILMason Reed
With the new instruction retrieval we are getting the instructions at the end of the lifted function which are not really apart of the function, but they share the address of the last ret/jump.
2025-07-06[WARP] Fix tag type creation marking the view as modifiedMason Reed
2025-07-06[WARP] Recover register variables and re-add tags to matched functionsMason Reed
2025-07-04[WARP] Fix possible skipped instructions when multiple IL expressions are ↵Mason Reed
appended for a given instruction
2025-07-04[WARP] Remove warning about missing sections for Raw viewMason Reed
2025-07-03Temporarily disable tags for WARP functions tag types are not thread safeMason Reed
Another set of bugs caused by undo and main thread actions, when will it end
2025-07-02[WARP] Fix rpath for warp UI on linuxMason Reed
Was not able to find the core plugin in the plugins directory
2025-07-02[WARP] Make plugin commands more discoverableMason Reed
Removing the nesting because we now scope view plugin commands out of the context menu
2025-07-02[WARP] Fix headless builds depending on binaryninjauiMason Reed
2025-07-02WARP 1.0Mason Reed
- Added FFI - Added a sidebar to the UI - Added project, directory and archive processing - Added generic `Container` interface for extensible stores of WARP data - Fixed type references being constructed and pulled incorrectly - Added HTML, Markdown and JSON report generation - Made the WARP information added as an analysis activity - Flattened the signatures directory, the target information is stored in the file now - Matched function information is stored as function metadata in the database to reliably persist, alongside the function GUID - Split the matching out from the application, allowing you to match on a given function without applying it - Added more/better tests - Added support for binaries with multiple architectures, the functions are now also queried based off the Target, see WARP spec for more details - Greatly improved support for RISC architectures, see WARP spec for more details - Greatly improved UX when loading files after the fact, will now sanely rerun the matcher - Omitted the function type if not a user type, this greatly reduces file size - Improved support for functions that reference a page aligned base pointer, see WARP spec for more details - Removed some extra cache structures that were causing erroneous behavior - Fixed edge-case in LLIL traversal missing some constant pointers, this was a bug in the Rust bindings - Added support for function comments - Made long running tasks, such as generating, matching and loading signatures, cancellable where possible - Made function constraints more versatile, allowing for easy extensions in the future, see WARP spec for details - Added options to signature generation, such as what data to store, and whether to compress the data or not - Made all long running tasks prompt the user for required information before the task starts, allowing users to "set it and forget it" and not have to baby sit the finalization of the task - Myriad of other changes to the actual WARP format that impact performance, file size and general feature set, see https://github.com/Vector35/warp for more details
2025-07-02Add highlight render layer to WARPMason Reed
Highlights all variant instructions and blacklisted instructions Variant instructions are highlighted red, blacklisted will be orange.
2025-07-02Move instruction filters out of `basic_block_guid` and make them publicMason Reed
Need to do this for exposing to FFI and things like render layers
2025-06-25Update CXX_STANDARD to 20.Alexander Taylor
Also update minimum CMake version.
2025-05-13[CMake] Report compatibility with 3.15 to silence deprecation warningsGlenn Smith
2025-05-12[Rust] Remove `NonSSAVariant` bound from `LowLevelILFunction`Mason Reed
We don't do enough with the lifted il != non lifted il to justify the bound. This makes modifying IL much less work as the historical lifted il bound is gone.
2025-05-12[Rust] Reduce usage of `IntoCStr` in function signaturesMason Reed
This is being done to reduce complexity in function signatures, specifically many of the strings we are passing ultimately should be new types themselves instead of "just strings", things such as type ids. Another place which was confusing was dealing with filesystem related APIs, this commit turns most of those params into a stricter `Path` type. This is bringing the rust api more inline with both python and C++, where the wrapper eagerly converts the string into the languages standard string type. Special consideration must be made for symbols or other possible non utf-8 objects. This commit will be followed up with one that adds the `IntoCStr` bound on API's we want to keep as invalid utf-8 so we can for example, get section by name on a section with invalid utf-8.
2025-05-12[Rust] More cleanup regarding `BnString`Mason Reed
- Removed `to_string` shortcut from `BnString`. - Misc formatting
2025-05-12[Rust] Return `String` instead of `BnString` for cases where lossy ↵Mason Reed
conversion can be tolerated Still need to go and audit all usage, but realistically the most important places to give the user control are with symbols, where the data can come from non utf8 sources This is still incomplete, I just looked for usage of -> BnString so any other variant was omitted.
2025-05-12[Rust] Remove Architecture trait bound on LLIL related structuresMason Reed
2025-04-08Fix workflow Rust API not returning refcounted objectsMason Reed
IDK why this was not done prior, leaking the returned core activity and workflow object.
2025-02-25Misc Rust formattingMason Reed