| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-06-02 | Add support for multiple global pointer registers | Brandon Miller | |
| 2026-05-22 | Refactor calling conventions to support correct representation of structures | Rusty Wagner | |
| 2026-05-20 | Sort switch blocks in graph view by case number | Glenn Smith | |
| 2026-01-27 | Perform function lifting and inlining in arch plugins | Brandon Miller | |
| This change allows architecture plugins to override the LiftFunction callback to iterate a function's basic block list and lift entire functions at once. This is required for architectures such as TMS320 C6x, which have non-traditional "delay slots" in that branches, loads, and other instructions take multiple cycles to complete, and branch instructions can reside within the delay slots of other branches. | |||
| 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-01 | update copyrights for 2026 | Jordan Wiens | |
| 2025-12-16 | Add missing std::vector reserve calls | Scott Lagler | |
| # Conflicts: # function.cpp | |||
| 2025-12-15 | Add PossibleValueSet operation APIs and fixes to PVS python API | Josh Ferrell | |
| 2025-11-03 | Add helpers for whether a function is exported. | Alexander Taylor | |
| 2025-10-22 | Move implementations of key functions on Variable and SSAVariable to headers | Mark Rowe | |
| These types are heavily used as map keys so allowing the compiler to inline these functions makes map lookups cheaper. | |||
| 2025-07-15 | Finish guided analysis feature and add unit tests. | Brian Potchik | |
| 2025-07-15 | Move LLIL instruction retrieval into the LLIL function where it belongs | Mason Reed | |
| The python API was kept the same seeing as we are close to the release, will likely start deprecating some of those API's soon. | |||
| 2025-07-08 | Various improvements for guided disassembly mode. | Brian Potchik | |
| 2025-07-03 | Reduce number of refreshes and memory usage of cross references widget. | Rusty Wagner | |
| * Generates IL for cross references only when visible instead of all at once. * Releases memory for IL after the cross references retrieves the tokens. * Much faster algorithm for updating IL when functions change. * Don't refresh cross references at all if the widget isn't visible. Retreiving the new set of cross references is deferred until the widget becomes visible again. * Don't redo the query for the list of cross references when anything in the entire UI changes, even the window layout. Only recompute the list when an event for a new cross reference selection comes in. | |||
| 2025-07-03 | api: indirect branch inlining support | Ryan Snyder | |
| 2025-06-29 | Fix invalid memory free for ArchAndAddr list in C++ API. | Brian Potchik | |
| 2025-06-25 | Remove implicit conversions from Confidence to underlying type, these can ↵ | Rusty Wagner | |
| cause bugs and also issues with C++20 | |||
| 2025-06-25 | Initial support for guided disassembly. | Brian Potchik | |
| 2025-06-23 | abb: minor refactor | Ryan Snyder | |
| 2025-06-23 | Perform BB analysis from Architecture C++ API | Brandon Miller | |
| This commit moves AnalyzeBasicBlocks from the binary ninja core to the API and allows architecture plugins to optionally override AnalyzeBasicBlocks for a custom implementation Supply ABB inputs in BNBasicBlockAnalysisContext Register default analyze basic blocks callback This allows the nanomips and rust core architecture plugins to work again while using the C++ API DefaultAnalyzeBasicBlocks Use default ABB from Python plugins Fix bug in API ArchAndAddr operator overload Python APIs for basic block analysis | |||
| 2025-06-11 | API to create immediate function graphs | Glenn Smith | |
| 2025-06-11 | Expose Function::CheckForDebugReport | Glenn Smith | |
| 2025-06-10 | Add UI action and API to control switch recovery in HLIL | Rusty Wagner | |
| 2025-06-03 | Add UI action and API to control early returns in HLIL | Rusty Wagner | |
| 2025-06-03 | Add UI action and API to flip conditions during HLIL restructuring | Rusty Wagner | |
| 2025-05-23 | Add UI action and API to control expression folding | Rusty Wagner | |
| 2025-05-19 | Implement function level metadata | Brandon Miller | |
| 2025-04-23 | Add Function::Analyze API to perform on-demand function analysis. | Brian Potchik | |
| 2025-03-28 | missed the older dates! | Jordan Wiens | |
| 2025-03-17 | core: initial union support with C++ API | Ryan Snyder | |
| 2025-02-14 | uidf refactor | Ryan Snyder | |
| 2025-02-11 | Fix partial initialization of `DisassemblyTextLine` | Mason Reed | |
| The usage of `DisassemblyTextLine` in the FFI was unsound, we would forget to initialize some fields causing a myriad of issues where round-tripping through the FFI was losing information. | |||
| 2025-02-06 | Add After variants for looking up variables at instructions | Glenn Smith | |
| Fixes #6397 | |||
| 2025-02-02 | Fix QualifiedName being leaked in function UserTypeReference related functions | Mason Reed | |
| 2024-10-24 | Initial implementation of the module-level analysis workflow. | Brian Potchik | |
| 2024-10-23 | Linear view function regions collapse | Peter LaFosse | |
| Update collapse code to support PseudoC | |||
| 2024-10-21 | Allow multiple high level representations for display, add Pseudo Rust and a ↵ | Rusty Wagner | |
| Pseudo Python example plugin | |||
| 2024-08-02 | Support setting user global pointer value | Xusheng | |
| 2024-07-09 | Expose Function::UsesIncomingGlobalPointer through the API. Fix ↵ | Xusheng | |
| https://github.com/Vector35/binaryninja-api/issues/5686 | |||
| 2024-05-24 | platform: initial BNCustomPlatform support | Ryan Snyder | |
| 2024-02-10 | Use TypeID for serializing enum types, replace set_int_enum_display_typeid ↵ | kat | |
| with set_int_display_type, add get_int_display_type_and_typeid, bump ABI | |||
| 2024-01-08 | update copyright year | Jordan Wiens | |
| 2023-11-14 | Fix a number of leaks and bad uses of free in the api | Glenn Smith | |
| See https://github.com/Vector35/binaryninja-api/issues/4751 | |||
| 2023-11-06 | Allow setting UIDF on any mlil/hlil usage | Josh Ferrell | |
| 2023-07-07 | Expose function "pure" flag to api and typesystem | Glenn Smith | |
| 2023-02-20 | Allow DataVariables to be added to Components | kat | |
| 2023-02-08 | Add boolean for Function.user_type to indicate if a user type has been set | Peter LaFosse | |
| 2023-02-05 | Add IsConstantData to the C++ RegisterValue API. | Brian Potchik | |
| 2023-02-04 | Initial support for constant data expressions. | Brian Potchik | |
| 2023-01-30 | Fix Type object leaks | Rusty Wagner | |
