Expand description
C++ RTTI, vtable, and architecture-aware ABI inference.
Depend on this crate directly for C++ structure recovery without the macho
façade: build a VtableIndex or build_typeinfo_index from a
macho_core::MachoFile or a borrowed byte source.
Re-exports§
pub use error::CppError;pub use error::CppErrorKind;pub use error::Result;pub use typeinfo::build_typeinfo_index;pub use typeinfo::build_typeinfo_index_from_source;pub use types::CppBaseClass;pub use types::CppConfidence;pub use types::CppEvidence;pub use types::CppEvidenceKind;pub use types::CppTypeInfoKind;pub use types::CppTypeInfoNode;pub use vtable::SlotTarget;pub use vtable::VtableEntry;pub use vtable::VtableIndex;pub use vtable::VtableSlot;
Modules§
- abi
- C++ function body analysis for ABI heuristics.
- error
- The error module.
- format
- The format module.
- model
- The model module.
- typeinfo
- The typeinfo module.
- types
- The types module.
- vtable
- The vtable module.
Structs§
- CppBody
Analysis - The CppBodyAnalysis type.
- Itanium
Base Record - One direct base entry in ABI declaration order.
- Itanium
Pointee Record - Pointee and optional member-owner links for pbase families.
- Itanium
Type Info Record - Strict file-backed typeinfo object.
- Itanium
Vtable Address Point Record - One ABI address point and its structural header.
- Itanium
Vtable Ambiguous Word Record - Words between address points whose slot/offset ownership requires graph context.
- Itanium
Vtable Group Record - Strict complete or construction virtual-table group.
- Itanium
Vtable Offset Record - One word before an address-point header.
- Itanium
Vtable Slot Record - One function-entry candidate after an address point.
- Itanium
VttEntry Record - One pointer entry in a VTT array.
- Itanium
VttRecord - Strict VTT array.
- Strict
Pointer Observation - Full pointer observation including raw storage and resolution provenance.
- Strict
Rtti Batch - Closed strict RTTI decode batch.
- Strict
Rtti Conservation - Exact conservation ledger for symbol-table RTTI candidates.
- Strict
Rtti Gap - One failed candidate or batch-wide structural rejection.
- Strict
Rtti Limits - Structural limits for one strict Itanium RTTI decode.
- Strict
Rtti Observation - One exact file-backed observation.
- Strict
Vtable Batch - Closed strict vtable/VTT decode batch.
- Strict
Vtable Limits - Structural limits for one strict Itanium virtual-table decode.
Enums§
- Argument
Type Hint - The ArgumentTypeHint type.
- CppBody
Kind - The CppBodyKind type.
- CppReturn
Channel - The CppReturnChannel type.
- Itanium
Thunk Adjustment - One encoded thunk adjustment.
- Itanium
Type Info Family - Complete admitted Itanium
type_infoimplementation family. - Itanium
Vtable Address Point Source - Structural authority that located one address-point header.
- Itanium
Vtable Extent Source - Authority used to bound a Mach-O symbol that has no encoded size.
- Itanium
Vtable Offset Role - Best leaf-level role for a pre-address-point offset component.
- Itanium
Vtable Slot Role - Function-slot semantic role proven by its exact target symbol.
- Itanium
Vtable Symbol Kind - ABI role of one special-name symbol.
- Strict
Pointer Authentication - Pointer-authentication state retained independently from target resolution.
- Strict
Pointer Encoding - Pointer encoding or fixup mechanism used by one field.
- Strict
Pointer Target - Resolved target of one pointer-valued RTTI field.
- Strict
Rtti GapCode - Closed strict-decoder gap registry.
- Strict
Rtti Observation Kind - Kind of byte range retained as strict evidence.
- Strict
Rtti Outcome - Terminal state of a strict RTTI batch.
- Strict
Rtti Record - One included strict RTTI record.
- Strict
Vtable Record - One included strict virtual-table record.
Functions§
- decode_
strict_ rtti - Decode one selected thin Mach-O into strict Itanium RTTI leaf records.
- decode_
strict_ rtti_ from_ source - Decode strict Itanium RTTI from a borrowed thin-image byte source.
- decode_
strict_ vtables - Decode one selected thin Mach-O into strict absolute-pointer vtable records.
- decode_
strict_ vtables_ from_ source - Decode strict vtables from one borrowed thin-image byte source.