summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-01-30Improve filename handling for container files.Brian Potchik
2026-01-29[Rust] Update allowed licensesMason Reed
2026-01-29Add missing LowLevelILFunction::AddOverFlow API (#7788)Scott Lagler
2026-01-29[Rust] Make TagReference optionally take architecture and function (#7899)Rubens Brandão
2026-01-29[Rust API] Fix load_view_with_progress when options is NoneJosh Ferrell
2026-01-29Add support for ephemeral session-time settings for TransformSession.Brian Potchik
2026-01-29Fix Python exception in FunctionLifterContextBrandon Miller
2026-01-28[CMake] Allow flexible user plugin install locationEric Kilmer
Create a cache variable of the same name as the previous normal variable that users can set to a specific path for user plugin installation destination. This is primarily to help with CI builds to make it easier to find where the final plugin is located before uploading as a release.
2026-01-28Fix a fundamental problem with TypeBuilder.handle by deleting itPeter LaFosse
TypeBuilder.handle creates an immutable_type gets the handle and then deletes the object to which the handle belonged to. This was fundamentally a UAF. immutable_copy is an error prone api as its very easy to misuse. We should consider a re-architecture of this API. `TypeBuilder.immutable_copy().<anything>` or `Type.mutable_copy().<anything>` should be considered sketchy and immutable_copy().handle is just a straight up UAF. Prior to this commit the following would cause a crash: current_data_variable.type = PointerBuilder.create(FunctionType.create())
2026-01-28pressing enter on the base field in the create structure dialog should add ↵Jordan Wiens
instead of accept the whole dialog
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-26Improve initial layout of the container browser dialog.Brian Potchik
2026-01-23Add missing x86_64 relocations.Alexander Taylor
2026-01-23Lifted new PPC insns, MIPS reloc fix.Alexander Taylor
2026-01-23Implement R_386_IRELATIVE relocation handling.Alexander Taylor
Closes #7851.
2026-01-22[ELF] Fix reading dynamic string tables at large offsetsJosh Ferrell
2026-01-22[Mach-O] Improve how section types are identifiedwanghaiwei
1. A section's `flags` are masked with `SECTION_TYPE` before being compared. This prevents misclassifying a section when its low bits are shared with other section types. 2. `__mod_init_func` and `__init_offsets` are identified by section type flags, rather than by name. There's no documented reason why these were being matched by name. 3. A fallback is added to detect `__got` sections by name. This is necessary as some kext bundles that have their `__got` sections as `S_REGULAR` rather than `S_NON_LAZY_SYMBOL_POINTERS`. This fixes https://github.com/Vector35/binaryninja-api/issues/7891. Thanks to @WHW0x455 for these fixes.
2026-01-22[Python] Support MLIL_SEPARATE_PARAM_LIST and MLIL_SHARED_PARAM_SLOT in ↵Mark Rowe
copy_expr_to
2026-01-22architecturePreference description updateJordan Wiens
2026-01-21update checkdoc script to support globbingJordan Wiens
2026-01-21Command Palette: Score fast items on main threadGlenn Smith
2026-01-20[Rust] Fix UB for basic block analysis context out params (#7908)Mason Reed
2026-01-20swap order for some ppc floating point that were backwardJordan Wiens
2026-01-20Update container transform docs.Brian Potchik
2026-01-20Other changes related to handling null strings.Alexander Taylor
This fixes the incorrect type hint and the other instance of the function. It also looks like type parsing could have the same issue, so I've updated that as well.
2026-01-20handle None cases when empty strings are returned from the core and fix ↵Jordan Wiens
associated coreversion usage
2026-01-18fix syntax for note section of newly added api docsJordan Wiens
2026-01-17exclude examples folder from rst validationJordan Wiens
2026-01-17add fallback method for pydoc parsing with regexJordan Wiens
2026-01-16fix pydoc formatting for recent metadata API changesJordan Wiens
2026-01-16Update x86 arch README to remove outdated info.Alexander Taylor
2026-01-16Added Ultimate edition NDS32 architecture support.Alexander Taylor
2026-01-16Add get_metadata() method and make query_metadata() raise KeyError consistentlyPeter 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-15Make 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-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-13[Rust] Fix misc doc comments missingMason Reed
2026-01-13[RTTI] Improve virtual function discoveryMason 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-13Command Palette: User guide docsGlenn Smith
2026-01-13Command Palette enhancementsGlenn Smith
2026-01-13[Rust API] Add BinaryViewExt::{tags_all_scopes, tag_types, tags_by_type}Josh Ferrell
2026-01-13Hopefully fix macOS documentation build error.Alexander Taylor
System Python on macOS is still 3.9, so match/case doesn't exist.
2026-01-12better handling of modules with bare functions not inside a class in docs ↵Jordan Wiens
generation
2026-01-12Add module workflow hello world example.Malware Utkonos
2026-01-12Add language about workflow ephemerality. (skip-ci)Brian Potchik
2026-01-12Fix(ppcvle): Correct si_split16 immediate decoding for I16A-form instructionschedahub
2026-01-11[DWARF] Fix misc missing imports from `log` => `tracing`Mason Reed
2026-01-11[Rust] More session scoped logsMason 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 APIMason Reed
Would be really nice if we consolidated this somewhere so this does not keep happening