summaryrefslogtreecommitdiff
path: root/python/types.py
AgeCommit message (Collapse)Author
2026-05-22Refactor calling conventions to support correct representation of structuresRusty Wagner
2026-05-13Changes related to display as/type toggling.Alexander Taylor
2026-04-13types: fragment type API support (C++, Python)Ryan Snyder
2026-02-26Fix QualifiedName join from ffi and also support NameSpace joinGlenn Smith
2026-02-26Python: QName separator is actually called join by C++Glenn Smith
2026-02-26Pass separator to qname ctorGlenn Smith
2026-02-26fix[python]: relax type children passed into factoriesnullableVoidPtr
2026-02-26feat[python]: QualifiedName.separatornullableVoidPtr
2026-02-17Add setters for NamedTypeReferenceBuilder propertiesPeter LaFosse
Add Python API setters for NamedTypeReferenceBuilder: - name setter: Sets the qualified name using BNSetNamedTypeReferenceBuilderName - type_id setter: Sets the type ID using BNSetNamedTypeReferenceBuilderTypeId - named_type_class setter: Sets the type class using BNSetNamedTypeReferenceBuilderTypeClass These setters enable modifying type reference builders after creation, which is useful for workflows that progressively refine type metadata during analysis or type recovery. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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-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-11-19Improve python api type hintsJosh Ferrell
2025-11-04[Python] Add virtual `bit_offset` member to the `StructureMember` and ↵Mason Reed
clarify `bit_position` This is a helper because it is likely one dealing with bitfields knows the bit offset, rather than the bit position, so this can be used instead.
2025-10-23allow types.get_types to take str or QualifedNameJordan Wiens
2025-10-23Rename Type.finalized to Type._finalizedRusty Wagner
This returns a raw FFI handle and should only be used internally or in special FFI handling code
2025-10-23Fix Type object leaks in the Python type APIRusty Wagner
2025-10-23Fix lost type attributes in TypeBulider Python APIRusty 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-06Add type attribute APIsRusty Wagner
2025-07-14Change return type of parse_types_from_string to BasicTypeParserResultAlexander Khosrowshahi
2025-06-24abb: temp workaround pending binding updateRyan Snyder
2025-06-24Add comment on Pointer.offset being uselessPeter LaFosse
2025-04-29Fix memory leak in python Enumeration classPeter LaFosse
2025-03-28missed the older dates!Jordan Wiens
2024-10-21Allow multiple high level representations for display, add Pseudo Rust and a ↵Rusty Wagner
Pseudo Python example plugin
2024-06-21Fix some type hintsJosh Ferrell
2024-05-23Docs for type attributesGlenn Smith
2024-05-23Based pointersGlenn Smith
2024-05-23Expose Type::PointerSuffixGlenn Smith
2024-05-23Add TypeBuilder::SetWidth and TypeBuilder::SetAlignmentGlenn Smith
2024-04-11Change default paddingCols value to 64Glenn Smith
80 would have made sense if it were characters, but blocks of 0x50 bytes just look plain weird
2024-04-11Rename lineWidth -> paddingCols in GetTypeLines()Glenn Smith
This is a more accurate name for what the parameter actually does. Documentation was improved as well.
2024-02-08Revert "Convert some assertions to raise ValueError in NTR creation"Peter LaFosse
This reverts commit bae3056d1bed0331a466ea19dedfca68bc023232.
2024-02-08Convert some assertions to raise ValueError in NTR creationPeter LaFosse
2024-01-12Add some helpers for reading guid/uuidsPeter LaFosse
2024-01-08update copyright yearJordan Wiens
2024-01-04Add local label symbol type to always prioritize normal local symbols over ↵Rusty Wagner
compiler generated labels
2023-11-24Add Symbolic symbols type.Brian Potchik
2023-11-06Type BrowserGlenn Smith
2023-11-06Type ContainersGlenn Smith
2023-11-03Fix 'Type.with_replaced_*' APIsPeter LaFosse
2023-11-03Add some guardrails around creating NamedTypeReferencesPeter LaFosse
2023-11-02Ensure Type objects are created correctly everywhere and add guardrailPeter LaFosse
2023-09-28correct LibraryFunctionSymbol documentationJordan Wiens
2023-08-03Add an API to get structure member including inherited ones. Fix auto ↵Xusheng
structure creation overwrites inherited fields. Close https://github.com/Vector35/binaryninja-api/issues/4540
2023-07-07Expose function "pure" flag to api and typesystemGlenn Smith
2023-05-26Add some missing type annotationsMaja Kądziołka
2023-04-18Fix deserialization of EnumerationMember valuesPeter LaFosse