summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
AgeCommit message (Collapse)Author
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
2025-11-04Add project file dependenciesJosh Ferrell
2025-11-04Remove 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-03Revert "Refactor Plugin Load/Management to support upcoming changes"0cyn
This reverts commit 72fcf44f3731ade3cf1310da55f633f1cb9069ce.
2025-11-03Add helpers for whether a function is exported.Alexander Taylor
2025-10-31Add optional display name field for memory regions.Brian Potchik
2025-10-29Add ZipPython transform as a reference container example.Brian Potchik
2025-10-29Refactor Plugin Load/Management to support upcoming changes0cyn
2025-10-28Add transform override support to the container browswer.Brian Potchik
2025-10-27Add documentation to the constant renderer and string recognizer APIsRusty Wagner
2025-10-23Support bitfields in type systemMason 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-22Add API to dereference named type referencesRusty Wagner
2025-10-22Add interactive mode support to the container browser.Brian Potchik
2025-10-22Move implementations of key functions on Variable and SSAVariable to headersMark Rowe
These types are heavily used as map keys so allowing the compiler to inline these functions makes map lookups cheaper.
2025-10-22Add Type::SetIgnored APIPeter LaFosse
2025-10-21Add derived strings and string recognizer APIRusty Wagner
2025-10-21Add constant renderer APIRusty Wagner
2025-10-16Add GetTypeCount APIPeter LaFosse
Add note about type_names not being sorted anymore
2025-10-15Required API changes for Enterprise find files.Alexander Taylor
2025-10-12Improve error handling in project apisJosh Ferrell
2025-10-10Add password prompting for encrypted containers in Container Browser.Brian Potchik
2025-10-06Add type attribute APIsRusty Wagner
2025-10-03Add zero-copy data pointer access for BinaryData objects for API-side ↵Brian Potchik
container transforms.
2025-10-03Update IMG4 transform to use DecodeWithContext and synthesize a filename for ↵Brian Potchik
the payload.
2025-10-03Add DecodeWithContext method to Transform API layers.Brian Potchik
2025-09-30Initial support for opening container formats.Brian Potchik
2025-09-05Ensure that auto call type adjustments don't overwrite user call type ↵Mark Rowe
adjustments of the same confidence A call type adjustment set via `SetAutoCallTypeAdjustment` will only take effect if any existing call type adjustment, automatic or user-defined, is of a lower confidence level. This ensures that user call type adjustments with full confidence will not be overridden by a workflow. Similar changes have been made to `SetAutoCallStackAdjustment`, `SetAutoInlinedDuringAnalysis` and the overload of `SetAutoCallRegisterStackAdjustment` that adjusts a single register stack.
2025-09-03Add disassembly setting for block labelsMason Reed
2025-08-27Revise the documentation on how multiple symbols at the same address are handledMark Rowe
To avoid non-determinism and provide consistent behavior in all cases, now only confidence, symbol type, and name are considered when disambiguating multiple symbols at the same address. The previously documented behavior was not what was implemented. While recency was considered in some cases for disambiguating symbols at the same address, respecting it consistetly results in non-deterministic behavior when symbols are being added concurrently by multiple sources.
2025-08-27Revert "Clarify the documentation on how multiple symbols at the same ↵Mark Rowe
address are handled" This reverts commit 6293afcb4e10997838f94c38430feba9742bea75.
2025-08-27Clarify the documentation on how multiple symbols at the same address are ↵Mark Rowe
handled