summaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
2025-10-23Support bitfields in type systemMason Reed
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.
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-22[Rust] Refactor download provider module to allow for custom implementationsMason Reed
2025-10-20[DWARF] Greatly improve handling of typedefsJosh Ferrell
2025-10-18[DWARF] Support parsing struct member offsets from DW_AT_data_bit_offset, ↵Josh Ferrell
fix struct members being put at wrong offset when location fails to be parsed
2025-10-17Fix leaking a BinaryView when loading a sibling DWARF fileJosh Ferrell
2025-10-16Fix recovery of unnamed function parameters from DWARFJosh Ferrell
2025-10-16Apply relocations when parsing DWARFJosh Ferrell
2025-10-16Improve error messages in dwarf_importJosh Ferrell
2025-10-12[WARP] Fix misc sidebar navigation / focus event bugsMason Reed
- 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
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-12Replace calls to unwrap() in dwarf_importJosh Ferrell
2025-10-11Fix demo ifdefsJosh Ferrell
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] Format UI pluginMason Reed
2025-10-07[WARP] Improved fetch dialog UXMason Reed
- Respects views fetch batch size and allowed tags - Saves and loads from the view settings instead of qt settings
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-07[WARP] Fix rendering of constraint matches in sidebarMason Reed
Also makes it so that constraints with an exact offset match are displayed differently.
2025-10-05fix missing rust importJordan Wiens
2025-10-03[WARP] Fix sidebar not refreshing after fetching data from serverMason Reed
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] Add option to reset allowed tags in fetch dialogMason Reed
2025-10-03[WARP] Trim whitespace from server API keyMason Reed
2025-10-02[SVD] Improvements to loading fileMason Reed
- Improve error messages to include what exactly caused the parsing to fail - Relaxed the parsing validation to allow for more files to be parsed - Added a form dialog to improve discoverability of load settings We still need to relax optional fields failing to parse if they have no child, as that is considered an error, even with no validation.
2025-10-02[ObjC] Add support for removing runtime calls that perform retain count ↵Mark Rowe
operations A new activity is added that will remove calls to `objc_retain`, `objc_release`, `objc_autorelease`, and related functions. It is disabled by default due to the fact it changes the semantics of the code. It can be enabled on a per-function basis via the Function Settings context menu or command palette entry. Alternatively, it can be enabled in Open with Options or in user settings if a user would prefer it be on for an entire file or for all files they open. For now the activity is only eligible within arm64 binaries. Supporting x86_64 will require matching some slightly different IL patterns.
2025-10-02Fix Rust formattingMark Rowe
2025-10-02[ObjC] Silence some more unnecessary loggingMark 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-26[ObjC] Don't assume that all calls to objc_msgSend have parametersMark Rowe
2025-09-25[ObjC] Don't log when encountering an objc_msgSendSuper2 call from Swift codeMark Rowe
2025-09-17[ObjC] Propagate type information from calls to `[super init]`Mark Rowe
Calls to `objc_msgSendSuper2` with a selector in the `init` family are detected and their arguments are analyzed to determine the receiver class. A call type adjustment is added to update the return type. This handles most calls to `[super init]` from Objective-C code as the compiler generates a straightforward code sequence for these calls. Some calls from Swift are handled, but the Swift compiler generates more varied code so additional work is needed for complete coverage.
2025-09-15Deprecate some Rust MediumLevelILFunction methods in favor of Function ↵Josh Ferrell
implementations
2025-09-03Fix idb_import invalid offset in EoF hitrbran
2025-09-03Update idb_import idb-rs to 0.1.12rbran
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.
2025-09-03[WARP] Do not show the report in the UI if file is very largeMason Reed
It will just end up freezing the UI for an unreasonable time, just open the generated report in a real web browser or text editor, QTextBrowser falls over and fixing it would be more effort than its worth.
2025-09-03[WARP] Only merge chunks in create from view command if an existing file was ↵Mason Reed
given Fixes the case where we are generating many smaller chunks for a given view and then unintentionally merging them back together, throwing away all data.
2025-09-03[WARP] Refactor variable retrieval to fix eager dependence on the functions MLILMason Reed
It is important that we only retrieve the medium-level IL if the function has any user-defined variables, otherwise, we will possibly be generating MLIL for no reason. For the above reason, we do a filter on user-defined variables first.
2025-09-03[WARP] Fix generating lifted IL when function GUID is already cachedMason Reed
We do not need to consult the lifted IL if we have already cached the function GUID in the function metadata
2025-08-27Rewrite Obj-C workflow in RustMark Rowe
This is functionally equivalent to the previous workflow_objc, with the following changes: 1. It mutates the `core.function.metaAnalysis` workflow rather than registering a new named workflow. The activities now all check for the presence of the Objective-C metadata added by `ObjCProcessor` to determine whether they should do work, rather than relying on `MachoView` to override the function workflow when Objective-C metadata is present. This fixes https://github.com/Vector35/binaryninja-api/issues/6779. 2. The auto-inlining of `objc_msgSend` selector stub functions is performed in a separate activity from the processing of `objc_msgSend` call sites. The selector stub inlining activity is configured so that it does not run in `DSCView` as the shared cache needs different behavior for stub functions more generally that `SharedCacheWorkflow` already provides. 3. The way that types like `id` and `SEL` are referenced is fixed so that they show up as `id` rather than `objc_struct*`. This also replaces the Objective-C portion of the shared cache's workflow, and incorporates several bug fixes that had been applied to it but not the standalone Objective-C workflow.
2025-08-21Add support for automatically loading PDB/DWARF info from sibling files in ↵Josh Ferrell
projects
2025-08-20[Rust] Misc formatting fixesMason Reed
2025-08-20Deprecate Workflow::Instance in favor of Workflow::Get and Workflow::GetOrCreateMark Rowe
Calls to `Workflow::Instance` that were looking up a built-in workflow name are updated to use `Workflow::Get`. Others use `Workflow::GetOrCreate`.