summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
AgeCommit message (Collapse)Author
2026-06-05Add abs, min, and max instructionsMark Rowe
2026-06-04Add bswap, popcnt, clz, ctz, cls, and rbit instructionsMark Rowe
2026-06-02Add support for multiple global pointer registersBrandon Miller
2026-05-22Update documentation for calling convention changesRusty Wagner
2026-05-22Initial support for Go and Pascal calling conventionsRusty Wagner
2026-05-22Refactor calling conventions to support correct representation of structuresRusty Wagner
2026-05-22Extend MLIL call instruction outputs to be expressionsRusty Wagner
2026-05-20Sort switch blocks in graph view by case numberGlenn Smith
2026-05-19Add static DataRendererContainer::RenderLinesForDataMark Rowe
This is a replacement for the `DataRenderer::RenderLinesForData` member function as it is impossible to use without leaking memory.
2026-05-19Fix incorrect reference counting in C++ APIMark Rowe
2026-05-18Argument Assist Popup0cyn
2026-05-14Refine FileMetadata display name APIs and update UI consumers.Brian Potchik
2026-05-13Changes related to display as/type toggling.Alexander Taylor
2026-05-07Make Metadata::operator== constGlenn Smith
2026-05-05Change enterprise server version from string to VersionInfo structJosh Ferrell
2026-05-05Switch collaboration permission checks to using User objectsJosh Ferrell
2026-05-05Expose 'is_paid' Extension field in API0cyn
2026-05-04Re-add license text field to API0cyn
2026-04-22Always show the triage view when opening a shared cache or kernel cacheMark Rowe
BinaryViewType gains a HasNoInitialContent function that views can use to suppress layout restoration when opening a file. The layout will still be restored when the view is loaded from a saved database. Fixes https://github.com/Vector35/binaryninja-api/issues/8083.
2026-04-22Expose all version-specific info for extensions in API0cyn
2026-04-17Add RecognizeConstantData to StringRecognizer APIBrian Potchik
Adds a new recognize_constant_data method to the StringRecognizer API, enabling plugins to decode constant data expressions (HLIL_CONST_DATA) recovered by the outline resolver. The recognizer receives the full instruction, giving access to the data buffer and builtin type via the constant_data accessor. Also fixes a pre-existing ctypes mismatch in get_constant_data_and_builtin where BNBuiltinType (uint8_t) was incorrectly passed as c_int.
2026-04-14Plugin Manifest V2 Support0cyn
2026-04-13types: fragment type API support (C++, Python)Ryan Snyder
2026-03-30Add a hook to allow BinaryView subclasses to run code after snapshot data is ↵Mark Rowe
applied Snapshot data is applied when loading from a database, rebasing the view, etc.
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-19Add nodiscard attribute to ↵Mark Rowe
Structure{,Builder}::{GetMemberByName,GetMemberByOffset} Failing to check the return value is almost always a bug.
2026-03-19Add TransformSession constructor that adopts an existing TransformContext.Brian Potchik
2026-03-11Enhance MemoryMap bindings and add support to re-enable disabled regions in ↵Brian Potchik
the UI.
2026-03-04Add TypeLibrary::Register, to allow loading type libraries from scriptGlenn Smith
2026-02-23Add global plugin command typeMason Reed
Register plugins which are available outside the context of a binary view
2026-02-23[BNTL] Allow decompressing standalone TypeLibrary objectsMason Reed
Previously you must have written the type library to disk
2026-02-20Allow calling conventions to specify a list of registers that are required ↵Rusty Wagner
to be considered for heuristic calling convention detection
2026-02-16Share context between BB recovery, lifing, and disassemblyBrandon Miller
Adds a GetInstructionTextWithContext callback to the architecture class that can be used to pass data from AnalyzeBasicBlocks. This same context is also supplied to LiftFunction and allows for supplying shared function and/or binary view level information across basic block analysis, function lifting, and disassembly text rendering
2026-02-06Add FileMetadata::GetDisplayName API to convey synthesized filenames for ↵Brian Potchik
container file entries.
2026-02-02Annotate deprecated C++ APIsMark Rowe
A `BN_DEPRECATED` macro is introduced that expands to a `[[deprecated(msg)]]` attribute. Using functions that are annotated as deprecated will generate a compiler warning. This should help make users aware that they should migrate to replacement APIs.
2026-01-30Improve filename handling for container files.Brian Potchik
2026-01-29Add missing LowLevelILFunction::AddOverFlow API (#7788)Scott Lagler
2026-01-28Add session settings override support to Transform system and clean up ↵Brian Potchik
documentation.
2026-01-27Perform function lifting and inlining in arch pluginsBrandon 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-14Allow 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-01update copyrights for 2026Jordan Wiens
2025-12-15Add PossibleValueSet operation APIs and fixes to PVS python APIJosh Ferrell
2025-12-08Introduce an RAII type for managing bulk symbol modificationsMark Rowe
Fixes https://github.com/Vector35/binaryninja-api/issues/7666. Correctly managing the state of bulk symbol modifications via `BeginBulkModifySymbols` / `EndBulkModifySymbols` is error-prone in the face of exceptions and early returns. Leaking a bulk symbol modification can leave the view in a state where no further changes to symbols will be applied. All users of the C++ API are encouraged to move from `BeginBulkModifySymbols` / `EndBulkModifySymbols` to the new `BulkSymbolModification` class.
2025-11-25Add SectionMap with bulk operations and batch section APIs.Brian Potchik
2025-11-24Add APIs for getting files in a project folderJosh Ferrell
2025-11-24Add AnalysisContext FFI for SectionMap queries.Brian Potchik
2025-11-23Add IsOffsetReadOnlySemantics API.Brian Potchik
2025-11-23Unify SettingsCache and MemoryMap access under immutable snapshots for ↵Brian Potchik
consistent, lock-free AnalysisContext queries.
2025-11-06simplify CSS, light/dark switch on auto, fix RST tables to be htmlJordan Wiens
2025-11-04Add auto downloading of project file dependencies, clean up download APIsJosh Ferrell