| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-01-16 | fix pydoc formatting for recent metadata API changes | Jordan Wiens | |
| 2026-01-16 | Update x86 arch README to remove outdated info. | Alexander Taylor | |
| 2026-01-16 | Added Ultimate edition NDS32 architecture support. | Alexander Taylor | |
| 2026-01-16 | Add get_metadata() method and make query_metadata() raise KeyError consistently | Peter LaFosse | |
| Introduces a Pythonic get_metadata() method to BinaryView, Function, Project, TypeArchive, and TypeLibrary classes. This method behaves like dict.get(), returning a default value (None by default) when a key doesn't exist, instead of raising a KeyError. Additionally, updates query_metadata() in TypeArchive and TypeLibrary to raise KeyError when a key is not found, making them consistent with BinaryView, Function, and Project. Previously these two classes returned None on missing keys. This breaking change is documented in the method docstrings. This provides a more consistent and Pythonic API for querying metadata across all metadata-supporting classes. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | |||
| 2026-01-15 | Make add_user/auto_segments/sections more pythonic. | Peter LaFosse | |
| This introduces two new dataclasses SegmentInfo and SectionInfo which hold information about their respective objects. These are used for specifying information to a BinaryView while class Segment and Section are still the objects used after registration. Additionally I've created two helper functions in Segment/Section which return the respective Info structure which could be useful if you wanted to modify existing Segments/Sections Currently these two APIs are only used by the add_segments/add_sections APIs but maybe more useful in the future. | |||
| 2026-01-14 | Allow controlling which address is used for instructions created when ↵ | Mark Rowe | |
| inlining during analysis Previously the address of the instruction in the function being inlined was used as the new instruction's address when copying it during inlining. Now there is an additional option: use the address of the call instruction that is being replaced as the new instruction's address. This new mode is useful when inlining thunks or stub functions, but care must be taken if using it beyond that. The benefit is that it ensures that when a function contains multiple calls to the same stub function, each inlined copy ends up with distinct addresses. This ensures that call type adjustments and other overrides that are stored on the function and keyed by address can be applied independently to each callsite that was inlined. The trade-off is that if the function being inlined contains non-trivial logic, all of the inlined instructions sharing an address will limit what type of adjustments can be applied to them. The Objective-C and shared cache workflows are updated to take advantage of this new mode when they enable inlining of stub functions. This will make it possible for multiple calls to the same runtime function within a single function to have separate call type adjustments applied in the future. | |||
| 2026-01-13 | [Rust] Fix misc doc comments missing | Mason Reed | |
| 2026-01-13 | [RTTI] Improve virtual function discovery | Mason Reed | |
| - Allow extern functions to show up in a MSVC vtable - Fix https://github.com/Vector35/binaryninja-api/issues/7871 - Share code between itanium and msvc vft analysis, it is the same logic basically | |||
| 2026-01-13 | Command Palette: User guide docs | Glenn Smith | |
| 2026-01-13 | Command Palette enhancements | Glenn Smith | |
| 2026-01-13 | [Rust API] Add BinaryViewExt::{tags_all_scopes, tag_types, tags_by_type} | Josh Ferrell | |
| 2026-01-13 | Hopefully fix macOS documentation build error. | Alexander Taylor | |
| System Python on macOS is still 3.9, so match/case doesn't exist. | |||
| 2026-01-12 | better handling of modules with bare functions not inside a class in docs ↵ | Jordan Wiens | |
| generation | |||
| 2026-01-12 | Add module workflow hello world example. | Malware Utkonos | |
| 2026-01-12 | Add language about workflow ephemerality. (skip-ci) | Brian Potchik | |
| 2026-01-12 | Fix(ppcvle): Correct si_split16 immediate decoding for I16A-form instructions | chedahub | |
| 2026-01-11 | [DWARF] Fix misc missing imports from `log` => `tracing` | Mason Reed | |
| 2026-01-11 | [Rust] More session scoped logs | Mason Reed | |
| Assign the `session_id` span field before calling into the relocation handler so logs get scoped to the specific view. | |||
| 2026-01-11 | [Rust] Add top level documentation to `tracing` and `logger` | Mason Reed | |
| 2026-01-11 | [Rust] Fix old rust toolchain version being used when checking Rust API | Mason Reed | |
| Would be really nice if we consolidated this somewhere so this does not keep happening | |||
| 2026-01-11 | [Rust] Update examples to use tracing | 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. | |||
| 2026-01-08 | [DWARF Import] Fix potential hang when encountering some unhandled ↵ | Josh Ferrell | |
| DW_AT_location variants for a DW_TAG_variable | |||
| 2026-01-07 | Fix Windows build | Xusheng | |
| 2026-01-01 | update copyrights for 2026 | Jordan Wiens | |
| 2026-01-01 | manually update formatting of some copyrights | Jordan Wiens | |
| 2026-01-01 | add whole-file entropy calculation to triage | Jordan Wiens | |
| 2025-12-30 | Perf: Make canMakeString way faster | Glenn Smith | |
| 2025-12-29 | Add `ProjectFile` type annotation to python `load` function (#7839) | utkonos | |
| 2025-12-29 | Use session scoped logger instance for unhandled relocation information | Mason Reed | |
| Ran into this when running over certain object files on ppc, we can do it for all of them though. | |||
| 2025-12-29 | [PDB] Remove `QualifiedName` state | Mason Reed | |
| Apart of fixes for https://github.com/Vector35/binaryninja-api/issues/7827 This also makes vtable type names refer to base class vtable type name, this was the original behavior, but it should be revisited later. | |||
| 2025-12-29 | Fix vtable type name parsing | Truman Kilen | |
| 2025-12-29 | Fix QualifiedName::default() incorrectly creating QualifiedName with empty ↵ | Truman Kilen | |
| separator | |||
| 2025-12-25 | [Rust API] Add TypeBuilder::set_signed | Josh Ferrell | |
| 2025-12-24 | [Rust] Fix `BinaryViewExt::address_comments` leaking and refactor | Mason Reed | |
| 2025-12-24 | [Rust API] Add BinaryViewExt.address_comments | Josh Ferrell | |
| 2025-12-24 | Improve performance of incremental python api doc builds | Josh Ferrell | |
| 2025-12-24 | Fix crash when displaying variable with null type in pseudo-c and pseudo-rust | Josh Ferrell | |
| 2025-12-24 | Update description for ui.recentFileLimit | Josh Ferrell | |
| 2025-12-20 | Fix many of the warnings that show up when compiling with GCC 15.2 | Mark Rowe | |
| 2025-12-20 | fix regression that broke feature map navigation from triage view | Jordan Wiens | |
| 2025-12-20 | fix regression that prevented backing up from triage view | Jordan Wiens | |
| 2025-12-19 | update section list in triage when section list changes | Jordan Wiens | |
| 2025-12-19 | only show libraries in triage if appropriate | Jordan Wiens | |
| 2025-12-19 | fix strings missing race condition | Jordan Wiens | |
| 2025-12-19 | triage view responsive layout | Jordan Wiens | |
| 2025-12-19 | make remaining triage header items use copylabel | Jordan Wiens | |
| 2025-12-19 | differentiate between 0x0 entry and no entry | Jordan Wiens | |
| 2025-12-19 | skip bndb in triage file picker | Jordan Wiens | |
