summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-04-13types: fragment type API support (C++, Python)Ryan Snyder
2026-04-13[RTTI] Fix Itanium RTTI scan failing to symbolize objects with extern typeinfoMason Reed
The issue stems from the gnu3 demangler changing in https://github.com/Vector35/binaryninja-api/commit/260ca61d94134b6743807e29f64b5ce4f6918d73 Fixes https://github.com/Vector35/binaryninja-api/issues/8080
2026-04-08Fix crash with native architecture hooksBrandon Miller
2026-04-08Fix exception with Python architecture hooksBrandon Miller
2026-04-08add missing container trainsforms to the docsJordan Wiens
2026-04-08[ObjC] Don't undefine / redefine symbols and types that already exist in the ↵Mark Rowe
view This can cause functions to be reanalyzed unnecessarily when the view is loaded from a bndb. Fixes https://github.com/Vector35/binaryninja-api/issues/8051.
2026-04-08compress container browser previewJordan Wiens
2026-04-08update container browser previewJordan Wiens
2026-04-02add sentry open source licenseJordan Wiens
2026-04-02[Rust] Update open source licenses for 5.3Mason Reed
2026-04-01update settings for 5.3Jordan Wiens
2026-03-31[Python] Fix BinaryView.get_modification failing when passing a lengthMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/8046
2026-03-31Prevent a crash whenever readLEB128 is passed a nullptr0cyn
2026-03-30[DSC] Process Objective-C metadata when loading view from .bndbMark Rowe
The processed Objective-C metadata is not saved to the .bdnb. It must be recomputed when the view is loaded. Fixes https://github.com/Vector35/binaryninja-api/issues/8030.
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-30[ObjC] Set return type on objc_msgSend calls that send an init message to a ↵Mark Rowe
known class
2026-03-30[ObjC] Propagate types from objc_alloc_init and friendsMark Rowe
2026-03-30Fix compiler warnings seen with Clang 21Mark Rowe
2026-03-30This reverts commit 7228ba0b889765bc3474fbd5475870e24efc79ca.Brian Potchik
2026-03-29[PDB Import] Fix headless being prompted with an interaction for mismatched PDBMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/7836
2026-03-29[SVD Import] Fix misc mapper issuesMason Reed
- Fix unordered register fields causing spurious __offset fields to be rendered for the structure - Fix registers overlayed onto an alternate register not being treated as a union Fixes https://github.com/Vector35/binaryninja-api/issues/7918
2026-03-29[SVD Import] Remove "add bitfield" settingMason Reed
We unconditionally add them now that bitfields are represented correctly in the type system
2026-03-27Fix crash in settings viewJosh Ferrell
2026-03-27Add VariableList::updateCrossReferences declarationPeter LaFosse
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27Ensure rounding flag is properly emitted on some x86 floating point instructionsPeter LaFosse
2026-03-27GNU3 Demangler: fix undefined evaluation order in expression buildersPeter LaFosse
Sequence reader-advancing calls into named locals before concatenating to avoid undefined evaluation order in operator+ chains (caused wrong output on MSVC/x86_64 GCC where operands evaluated right-to-left). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26GNU3 Demangler: fix float literal decoding to be platform-independentPeter LaFosse
Decode big-endian hex via union type-punning instead of casting bytes into native floats. Falls back to raw hex for NaN/Inf, long double, and __float128. Remove unused HexToDec helper. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26GNU3 Demangler: fix substitution tracking, expressions, and type namesPeter LaFosse
Substitution table and scoping: - Fix generic lambda auto parameters: save/replace m_templateSubstitute with 'auto' placeholders for lambda-local T_/T0_/T1_ resolution - Fix local-name template scoping with m_inLocalName flag - Fix substitution table off-by-one for all-type template args - Fix pointer-to-member type (case 'M'): set substitute=true per ABI - Fix multi-character seq-id parsing (S10_, S11_, etc.) - Fix DemangleUnresolvedType decltype (DT/Dt) prefix consumption - Add forward template ref support for cv conversion operators - Fix sr qualifier-list PushType and conditional E handling - Fix multi-level sr scope resolution without N prefix - Fix sr + unscoped template substitution table tracking - Fix I...E argument pack handling (GCC I...E vs J...E) - Fix Dp pack expansion to show '...' for concrete types Expression formatting: - Fix L_Z embedded mangled name template scope isolation - Handle LZ<encoding>E function address template args - cl expression: callable(args) format with function substitute tracking - dt/pt expressions: obj.member and obj->member directly - fp_/fp<N>_ placeholders in decltype return types - Fix fL function-param scope validation - Fix DemangleBaseUnresolvedName 'on' prefix consumption Type names (Itanium ABI spec compliance): - x/y: "long long"/"unsigned long long" - a: "signed char" (distinct from 'c' = "char") - n/o: "__int128"/"unsigned __int128" - g: "__float128" via FloatType altName - Dd/Df/De: "decimal64"/"decimal32"/"decimal128" - Dh: "_Float16" - Dp: always show "..." for pack expansion - Fix 'n' literal: __int128 not __uint128 - Fix dot extension spacing Cleanup: - Remove unused NextIsOneOf, ReadUntil, DemangleInitializer - Guard GetRaw/GetTemplateType/PrintTables behind GNUDEMANGLE_DEBUG - Remove unreachable GetNameType C/D cases - Remove dead BinaryExpression "." check Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26GNU3 Demangler: implement new construct supportPeter LaFosse
New special-name and type demangling: - GTt/GTn: GCC transaction clone symbols - TH/TW: TLS init and wrapper functions - Tc: covariant return thunks with dual call-offset parsing - Demangle _block_invoke symbols (Clang/Apple block invocations) - Intel Vector Function ABI (_ZGV) with ISA, mask, vlen, parameter kind parsing; z/Z guard variable disambiguation - Vendor-extended type (U <source-name>) for Objective-C block pointers - Lowercase vendor type (u <source-name>) for __remove_cvref etc. - GR <object name> reference temporary demangling - macOS $tlv$init thread-local variable initializer suffix - Fix typeinfo rendering to avoid duplicated name in output New operator and constructor support: - ABI tag (B <source-name>) consumption in DemangleUnqualifiedName, DemangleNestedName, and DemangleFunction - CI1/CI2 inheriting constructors with m_lastName save/restore - M data-member-prefix in DemangleNestedName for lambdas in data member initializers - operator<=> (spaceship) in GetOperator and DemangleUnqualifiedName Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26Rewrite GNU3 demangler for performance using DemangledTypeNodePeter LaFosse
Replace the TypeBuilder-based demangling path with a lightweight DemangledTypeNode representation that defers type object construction until the symbol is fully parsed. This avoids repeated heap allocation and ref-count churn during recursive descent. Key changes: - Add DemangledTypeNode / demangled_type_node.{h,cpp}: a compact IR that mirrors the type grammar without allocating BN Type objects - Use a thread_local demangler instance to amortize vector allocations across calls - Also commonize some of the demangled string length calculations. Result: ~3x throughput improvement on a 180K-symbol corpus with 97.7% success rate (matching the previous implementation). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26[IDB Import] Update documentationMason Reed
2026-03-26[WARP] More documentation updates and python examplesMason Reed
2026-03-25[Rust] Remove unneeded deployments for CI testsMason Reed
This used to be required when using scoped secrets from an environment but recently changed this month. https://github.blog/changelog/2026-03-19-github-actions-late-march-2026-updates/
2026-03-25[IDB Import] Fix some misc bugsMason Reed
- In certain IDBs the loading base is zeroed but the info is not relative, in this case we now fallback to rebasing based off the lowest section address specified by `min_ea`. - In certain IDBs the info is relative, we ignore both the loading base and `min_ea` and compute the absolute address using the base address in the binary view - Fixed data exports being recognized as functions - Retrieve post, pre comments from dirtree - Fix mapping in extern section (which is tool specific in how it is setup) - Properly mark exported data as global binding
2026-03-25[IDB Import] Fix file dialog filter separating out each extensionMason Reed
Caused the resulting dialog to have a drop down that you must select to get to *.i64, which is an extra unneeded step
2026-03-24[WARP] Sanitize server URLsMason Reed
2026-03-24[BNTL] Fix misc doc comments missingMason Reed
2026-03-24[WARP] Do a partial update of the sidebar UI when navigating instead of a ↵Mason Reed
full update Reduces unnecessary work
2026-03-24[Python] Update function signatures of some type library APIsMason Reed
2026-03-24[Rust] Misc project module cleanupMason Reed
2026-03-24[WARP] Update docsMason Reed
2026-03-24[WARP] Warn when matching with relocatable regions in low address spaceMason Reed
The heuristics will check if a constant is within the relocatable regions and mask. If we are in a low address space we might be masking regular constants like 0x10.
2026-03-24[WARP] Improved UX and APIMason Reed
- Exposes WARP type objects directly - Adds processor API (for generating warp files directly) - Adds file and chunk API - Misc cleanup - Simplified the amount of commands - Replaced the "Create" commands with a purpose built processor dialog - Added a native QT viewer for WARP files - Simplified committing to a remote with a purpose built commit dialog
2026-03-24[Rust] More appropriate impls for `PartialEq` and `Hash` for `FileMetadata`Mason Reed
Utilize the unique `session_id` of the `FileMetadata` on comparisons and when hashing.
2026-03-24[Rust] Impl `BinaryViewEventHandler` for `Fn(&BinaryView)`Mason Reed
So you can pass a closure to the register function
2026-03-24[Rust] Move `ObjectDestructor` to own module and add some extra documentationMason Reed
2026-03-24[Rust] Impl `PartialEq`, `Eq` and `Hash` for `Project`Mason Reed
2026-03-24[Rust] Impl `PartialEq`, `Eq` and `Hash` for `ProjectFile`Mason Reed
2026-03-24[Rust] Misc docsMason Reed
2026-03-24[WARP] Fix relocatable region selection failing to fallback to section ↵Mason Reed
collection Previously we only selected relocatable regions from the list of sections, now that we use the segment list we need a way to fallback to the section list of the segment information is problematic (e.g. based at zero), that fallback has not been triggering as there is a segment for the synthetic sections. Now when a user opens a firmware with only a single zero based segment it should fallback to the sections _and_ alert the user that they should fill out the section map (since that job is left to the user)