summaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
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-02Fix Objective-C dynamic dispatch setting.Brian Potchik
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-07-01Make StackRenderLayer not wait for IL generationGlenn Smith
2025-06-27[RTTI] Fix itanium vft analysis adding misaligned functions for thumb2Mason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/6959
2025-06-25Fix compiler warnings in PDB type parser.Alexander Taylor
2025-06-25Fix reported `cargo fmt` errors from Rust CI.Alexander Taylor
2025-06-25Update CXX_STANDARD to 20.Alexander Taylor
Also update minimum CMake version.
2025-06-25Remove implicit conversions from Confidence to underlying type, these can ↵Rusty Wagner
cause bugs and also issues with C++20
2025-06-23Move workflow_objc to API repo, remove CFString & relptr rendererskat
2025-06-13[Rust] Fix dwarfdump not buildingMason Reed
2025-06-13[Rust] Misc API additions/docs and formatting fixesMason Reed
2025-06-05Stack Offset render layer: Use AnnotationToken to fix Edit InstructionGlenn Smith
Fixes #6900
2025-06-05Fix running in headless modeMichael Krasnitski
2025-06-05Fix incorrect paths in EFI ResolverMichael Krasnitski
2025-05-27Misc rust formattingMason Reed
2025-05-27update idb_import idb-rs to 0.1.10rbran
2025-05-26Fix crash when exporting DWARF failsJosh Ferrell
2025-05-23Add aliases for the RTTI/VFT analysis activities.Brian Potchik
2025-05-23[RTTI] Fix exception in binary with a erroneous class hierarchy descriptorMason Reed
2025-05-23[RTTI] Fix typo in some log callsMason Reed
2025-05-22[RTTI] Catch uncaught exceptions to let analysis finish in the event of an ↵Mason Reed
thrown exception Probably should have done this sooner, just lets the user continue analysis, rtti exceptions are continuable from the view of analysis.
2025-05-17[RTTI] Fix crash with zeroed base class descriptorMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/6837
2025-05-16Fix crash with invalid vtable info when processing MSVC vftablesMason Reed
Found when a vtable is constrained to a size less than the base vft, indicating a bad base vft associating most likely. Fixes https://github.com/Vector35/binaryninja-api/issues/6840
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] Implement custom interactive handlerrbran
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] Misc clippy lintsMason Reed
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-05-09[RTTI] Loosen section semantic sanity checks in Itanium RTTI processingMason Reed
We need to do this for RTTI info that resides in DefaultSectionSemantic sections, which will happen for some binaries where the data is placed in non-generic sections.
2025-05-09[RTTI] Handle type names emitted by GCC with a leading `*`Mark Rowe
GCC emits a leading `*` to indicate that the type info is internal and its name can be compared via pointer equality. It is not part of the type name. This was only being handled when followed with `N`, but it can apply to any mangled name. Additionally, this updates some `std::string::find(...) == 0` calls in the adjacent code to use `std::string::rfind(..., 0) == 0` as that bails out of the string comparison as soon as the prefix does not match, rather than continuing to search the entire string.
2025-05-09[RTTI] Handle cxxabi vtables being referenced via RELOC_COPYMark Rowe
32-bit ELF binaries that are dynamically linked to the C++ runtime may use a copy relocation for the vtable. The vtable itself will be defined in the `.bss` section, and the copy relocation will cause the dynamic linker to populate it at load time from the C++ runtime library. Detect this by looking for a symbol pointing to the start of the vtable data, two pointers before the vtable address.
2025-05-08Implement EFI resolver as a module workflowBrandon Miller
2025-05-07[Rust] Fix a pre-existing formatting issue CI is complaining aboutMark Rowe
2025-05-04Add a setting to disable creating a backing memory region for SVD regionsMason Reed
This is apart of https://github.com/Vector35/binaryninja-api/issues/6678
2025-05-02Add core decompiler loop as a dependency of VFT analysis to ensure newly ↵Brian Potchik
introduced analysis is processed before pipeline completion.
2025-04-26Fix some RTTI information being overwritten by empty class infoMason Reed
Finish verifying VMI base class info before applying data variable and symbol
2025-04-26Demangle more types in Itanium RTTIMason Reed
2025-04-25Fix misc rust formattingMason Reed
2025-04-25Fix Itanium RTTI skipping type info with stripped root type info objectMason Reed
2025-04-23Various DWARF fixesJosh Ferrell
- Do not add binary base to function address twice when a symbol with that function's raw name already exists - Load eh_frame/debug_frame from base bv instead of debug bv and make calculated cie offset ranges relative to bv start - Fix dwarf raw name resolution not resolving specification - Try to load eh_frame/debug_frame from both raw and normal views in dwarf import
2025-04-23Fix Stack Render Layer availability in Free editionGlenn Smith