summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-03-26[IDB Import] Update documentationMason Reed
2026-03-26[WARP] More documentation updates and python examplesMason Reed
2026-03-25[Rust] Remove unneeded deployments for CI testsMason Reed
This used to be required when using scoped secrets from an environment but recently changed this month. https://github.blog/changelog/2026-03-19-github-actions-late-march-2026-updates/
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[Python] Update function signatures of some type library APIsMason Reed
2026-03-24[Rust] Misc project module cleanupMason Reed
2026-03-24[WARP] Update docsMason 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] More appropriate impls for `PartialEq` and `Hash` for `FileMetadata`Mason Reed
Utilize the unique `session_id` of the `FileMetadata` on comparisons and when hashing.
2026-03-24[Rust] Impl `BinaryViewEventHandler` for `Fn(&BinaryView)`Mason Reed
So you can pass a closure to the register function
2026-03-24[Rust] Move `ObjectDestructor` to own module and add some extra documentationMason Reed
2026-03-24[Rust] Impl `PartialEq`, `Eq` and `Hash` for `Project`Mason Reed
2026-03-24[Rust] Impl `PartialEq`, `Eq` and `Hash` for `ProjectFile`Mason Reed
2026-03-24[Rust] Misc docsMason 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[Rust] Add `TypeBuilder::function` and `TypeBuilder::function_with_opts`Mason Reed
Temporary, we will likely deprecate in favor of a separate function builder later
2026-03-23[Rust] Add `Platform::address_size`Mason Reed
2026-03-23[Rust] impl Send and Sync to CoreLanguageRepresentationFunctionType (#8012)Rubens Brandão
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-03-23[MachO] Apply the correct calling convention for objc_retain_xN / ↵Mark Rowe
objc_release_xN The type library for the Objective-C runtime does not apply the custom calling conventions these functions use. Detect these functions when creating symbols for imported functions and apply the custom calling convention to them. Fixes https://github.com/Vector35/binaryninja-api/issues/8031.
2026-03-20Fix improper variable cast in databasesync.pyAlexander Taylor
2026-03-20Fix copypasta in error message.Alexander Taylor
2026-03-20Do not retry http requests if we are shutting downJosh Ferrell
2026-03-20Wrap LogTrace FV/F functions with BN_ENABLE_LOG_TRACE guardPeter LaFosse
The *FV and *F variants were unconditionally calling fmt::vformat (allocating/formatting strings) even when trace logging was compiled out, since only the underlying LogTrace* callees were guarded. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20Update bindgen version to support clang 22Josh Ferrell
2026-03-20Add option to disable dedicated Universal architecture picker and use ↵Brian Potchik
Container Browser Add the ui.files.universal.dedicatedPicker setting, allowing users to choose between the dedicated architecture picker dialog and the standard container browser for opening Universal (fat) Mach-O binaries. Previously the dedicated picker was always used with no way to opt out. Implementing this required restructuring how Universal binaries are handled during file open. The previous approach intercepted Universal binaries during container processing, bypassing the container browser's normal pipeline with dedicated routing logic. This tightly coupled Universal-specific behavior into the container system, prevented the container browser from handling Universal binaries natively, and introduced several bugs around exclusion settings, nested containers, and multi-child container hierarchies. Bug fixes: - The previous implementation always intercepted Universal binaries during container processing with its own routing logic, bypassing the container browser entirely. There was no way for the container browser to handle Universal binaries natively, even when that was the desired behavior. - Universal binaries inside multi-child containers were not detected. The previous implementation only traversed single-child paths in the container hierarchy, silently ignoring Universal binaries that appeared as siblings among multiple children. - Nested containers (e.g., archives) inside Universal slices were not handled. The previous implementation intercepted Universal binaries at the transform routing level before the container browser could perform recursive delayering. When the dedicated picker is disabled, the container browser now processes the full hierarchy including Universal slices and any containers within them. - Reverted incorrect IsInteractive to IsUIEnabled change in UniversalTransform. The previous change conflated headless mode with non-interactive processing. The UI can be enabled while still performing a non-interactive auto-open (e.g., container browser auto-resolving with a preferred architecture). The IsInteractive() flag captures the actual intent and enables the transform to produce only the preferred architecture child for non-interactive sessions, avoiding unnecessary BinaryView construction for all slices.
2026-03-19Add nodiscard attribute to ↵Mark Rowe
Structure{,Builder}::{GetMemberByName,GetMemberByOffset} Failing to check the return value is almost always a bug.
2026-03-19cargo fmtMark Rowe
2026-03-19refactor licenses in documentation to be separate linkable pagesJordan Wiens
2026-03-19Add TransformSession constructor that adopts an existing TransformContext.Brian Potchik
2026-03-19Fix operand list iterators being validated when appending new instructionsMark Rowe
The iterators now store an offset into the operand storage, rather than a pointer. Deferencing the iterator retrieves the value at that offset from the IL function. This issue existed prior to the operand list storage refactor, but became easier to hit after that change. The separate operand list vector is smaller and thus more likely to reallocate when a new instruction is appended.
2026-03-18document windows python work-aroundJordan Wiens
2026-03-17Bump ABI versions after change to operand list representationMark Rowe
2026-03-16Use a dedicated architecture picker when opening Universal Mach-O filesMark Rowe
2026-03-16Refactor where architecture selection is performed for universal binariesMark Rowe
Responsibility for selecting an architecture is moved out of `UniversalTransform` and into a new `ContainerOpenRequest` class. `UniversalTransform` still handles architecture selection in headless operation (for now).
2026-03-16Represent operand lists and label maps more efficiently within IL instructionsMark Rowe
Rather than using chains of `UNDEF` instructions, the contents of these lists are in a vector alongside the instructions. The instruction itself stores the entry count and offset into this second vector at which the associated items can be found. This improves analysis performance by around 2% and decreases memory usage by around 5%.
2026-03-14fix missing newline in docsJordan Wiens