| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-02-06 | Add FileMetadata::GetDisplayName API to convey synthesized filenames for ↵ | Brian Potchik | |
| container file entries. | |||
| 2026-01-30 | Improve filename handling for container files. | Brian Potchik | |
| 2026-01-28 | Add session settings override support to Transform system and clean up ↵ | Brian Potchik | |
| documentation. | |||
| 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-15 | Add PossibleValueSet operation APIs and fixes to PVS python API | Josh Ferrell | |
| 2025-12-12 | Generator: Detect flag enums and use IntFlag instead | Glenn Smith | |
| Made possible by the new attributes in binja's type system. | |||
| 2025-12-11 | Specify fixed underlying types for enums exposed by core | Mark Rowe | |
| This allows a few widely-used enums to be shrunk from 4 bytes to 1 byte, improving packing when they're used as struct members. To remain compatible with C, we follow CoreFoundation's approach and use a macro when defining the enum: ``` #if defined(__cplusplus) || __has_extension(c_fixed_enum) #define BN_ENUM(type, name) enum name : type #else #define BN_ENUM(type, name) typedef type name; enum #endif BN_ENUM(uint8_t, SomeEnum) { ... } ``` In C++ and C23 this will expand to an enum with a fixed underlying type. In older C language versions, this will result in the enum type being a typedef of the underlying type, with an unnamed enum providing the enum values. Minor changes were needed within the Python bindings to update places that made assumptions about the underlying type of the enums. | |||
| 2025-11-25 | Add SectionMap with bulk operations and batch section APIs. | Brian Potchik | |
| 2025-11-24 | Add APIs for getting files in a project folder | Josh Ferrell | |
| 2025-11-24 | Add AnalysisContext FFI for SectionMap queries. | Brian Potchik | |
| 2025-11-23 | Add IsOffsetReadOnlySemantics API. | Brian Potchik | |
| 2025-11-23 | Unify SettingsCache and MemoryMap access under immutable snapshots for ↵ | Brian Potchik | |
| consistent, lock-free AnalysisContext queries. | |||
| 2025-11-04 | Add auto downloading of project file dependencies, clean up download APIs | Josh Ferrell | |
| 2025-11-04 | Add project file dependencies | Josh Ferrell | |
| 2025-11-04 | Remove indenting APIs from Logger. These are thread unsafe by design. | Rusty Wagner | |
| Loggers are not owned by a specific thread and many are used by multiple threads. The indenting APIs could not be made to be thread safe in any way as they exist, so they have been removed. The data races caused by the indenting APIs are actually an important stability issue that could cause the indentation level to go out of bounds and crash the product. If you were using the indentation APIs, you will need to rewrite the usage to manually manage the indentation level in a thread safe way. | |||
| 2025-11-03 | Revert "Refactor Plugin Load/Management to support upcoming changes" | 0cyn | |
| This reverts commit 72fcf44f3731ade3cf1310da55f633f1cb9069ce. | |||
| 2025-10-31 | Add optional display name field for memory regions. | Brian Potchik | |
| 2025-10-29 | Add ZipPython transform as a reference container example. | Brian Potchik | |
| 2025-10-29 | Refactor Plugin Load/Management to support upcoming changes | 0cyn | |
| 2025-10-28 | Add transform override support to the container browswer. | Brian Potchik | |
| 2025-10-23 | Fix lost type attributes in TypeBulider Python API | Rusty Wagner | |
| 2025-10-23 | Bump core ABI | Mason Reed | |
| 2025-10-23 | Support bitfields in type system | Mason 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-22 | Add API to dereference named type references | Rusty Wagner | |
| 2025-10-22 | Add interactive mode support to the container browser. | Brian Potchik | |
| 2025-10-22 | Add Type::SetIgnored API | Peter LaFosse | |
| 2025-10-21 | Add derived strings and string recognizer API | Rusty Wagner | |
| 2025-10-21 | Add constant renderer API | Rusty Wagner | |
| 2025-10-16 | Add GetTypeCount API | Peter LaFosse | |
| Add note about type_names not being sorted anymore | |||
| 2025-10-16 | Add BNRunUnitTests API | Peter LaFosse | |
| 2025-10-15 | Required API changes for Enterprise find files. | Alexander Taylor | |
| 2025-10-12 | Improve error handling in project apis | Josh Ferrell | |
| 2025-10-10 | Add password prompting for encrypted containers in Container Browser. | Brian Potchik | |
| 2025-10-06 | Add type attribute APIs | Rusty Wagner | |
| 2025-10-03 | Add zero-copy data pointer access for BinaryData objects for API-side ↵ | Brian Potchik | |
| container transforms. | |||
| 2025-10-03 | Add DecodeWithContext method to Transform API layers. | Brian Potchik | |
| 2025-09-30 | Initial support for opening container formats. | Brian Potchik | |
| 2025-09-29 | Add a new line disassembly text token | Brandon Miller | |
| 2025-09-29 | Rust bindings for custom basic block analysis | Brandon Miller | |
| 2025-09-11 | Added new IL attribute ILTransparentCopy | Hongyu Chen | |
| 2025-09-03 | Add disassembly setting for block labels | Mason Reed | |
| 2025-08-29 | Add theme color for panes with keyboard focus | Rusty Wagner | |
| 2025-08-29 | Added additional theming for sidebar icons | Rusty Wagner | |
| 2025-08-20 | Deprecate Workflow::Instance in favor of Workflow::Get and Workflow::GetOrCreate | Mark Rowe | |
| Calls to `Workflow::Instance` that were looking up a built-in workflow name are updated to use `Workflow::Get`. Others use `Workflow::GetOrCreate`. | |||
| 2025-08-14 | Bump CURRENT_CORE_ABI_VERSION for GetFilePathInProject | Alexander Khosrowshahi | |
| 2025-08-14 | Expose GetFilePathInProject API for context menu | Alexander Khosrowshahi | |
| 2025-08-01 | Add LogForException APIs to pass stack trace information separate from the ↵ | Rusty Wagner | |
| message | |||
| 2025-07-29 | add inverted character constant integer display type | Jordan Wiens | |
