Skip to main content

Crate macho_cpp

Crate macho_cpp 

Source
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§

CppBodyAnalysis
The CppBodyAnalysis type.
ItaniumBaseRecord
One direct base entry in ABI declaration order.
ItaniumPointeeRecord
Pointee and optional member-owner links for pbase families.
ItaniumTypeInfoRecord
Strict file-backed typeinfo object.
ItaniumVtableAddressPointRecord
One ABI address point and its structural header.
ItaniumVtableAmbiguousWordRecord
Words between address points whose slot/offset ownership requires graph context.
ItaniumVtableGroupRecord
Strict complete or construction virtual-table group.
ItaniumVtableOffsetRecord
One word before an address-point header.
ItaniumVtableSlotRecord
One function-entry candidate after an address point.
ItaniumVttEntryRecord
One pointer entry in a VTT array.
ItaniumVttRecord
Strict VTT array.
StrictPointerObservation
Full pointer observation including raw storage and resolution provenance.
StrictRttiBatch
Closed strict RTTI decode batch.
StrictRttiConservation
Exact conservation ledger for symbol-table RTTI candidates.
StrictRttiGap
One failed candidate or batch-wide structural rejection.
StrictRttiLimits
Structural limits for one strict Itanium RTTI decode.
StrictRttiObservation
One exact file-backed observation.
StrictVtableBatch
Closed strict vtable/VTT decode batch.
StrictVtableLimits
Structural limits for one strict Itanium virtual-table decode.

Enums§

ArgumentTypeHint
The ArgumentTypeHint type.
CppBodyKind
The CppBodyKind type.
CppReturnChannel
The CppReturnChannel type.
ItaniumThunkAdjustment
One encoded thunk adjustment.
ItaniumTypeInfoFamily
Complete admitted Itanium type_info implementation family.
ItaniumVtableAddressPointSource
Structural authority that located one address-point header.
ItaniumVtableExtentSource
Authority used to bound a Mach-O symbol that has no encoded size.
ItaniumVtableOffsetRole
Best leaf-level role for a pre-address-point offset component.
ItaniumVtableSlotRole
Function-slot semantic role proven by its exact target symbol.
ItaniumVtableSymbolKind
ABI role of one special-name symbol.
StrictPointerAuthentication
Pointer-authentication state retained independently from target resolution.
StrictPointerEncoding
Pointer encoding or fixup mechanism used by one field.
StrictPointerTarget
Resolved target of one pointer-valued RTTI field.
StrictRttiGapCode
Closed strict-decoder gap registry.
StrictRttiObservationKind
Kind of byte range retained as strict evidence.
StrictRttiOutcome
Terminal state of a strict RTTI batch.
StrictRttiRecord
One included strict RTTI record.
StrictVtableRecord
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.