angr.analyses.typehoon.typeconsts

All type constants used in type inference. They can be mapped, translated, or rewritten to C-style types.

angr.analyses.typehoon.typeconsts.memoize(f)
class angr.analyses.typehoon.typeconsts.TypeConstant

Bases: object

SIZE = None
__init__(name=None)
Parameters:

name (str | None)

pp_str(mapping)
Return type:

str

property size: int
replace(mapping, memo=None)
Return type:

TypeConstant

Parameters:
class angr.analyses.typehoon.typeconsts.TopType

Bases: TypeConstant

SIZE = 1
class angr.analyses.typehoon.typeconsts.BottomType

Bases: TypeConstant

SIZE = 1
class angr.analyses.typehoon.typeconsts.Int

Bases: TypeConstant

class angr.analyses.typehoon.typeconsts.Int1

Bases: Int

SIZE = 1
class angr.analyses.typehoon.typeconsts.Int8

Bases: Int

SIZE = 1
class angr.analyses.typehoon.typeconsts.Int16

Bases: Int

SIZE = 2
class angr.analyses.typehoon.typeconsts.Int32

Bases: Int

SIZE = 4
class angr.analyses.typehoon.typeconsts.Fd

Bases: Int

SIZE = 4
class angr.analyses.typehoon.typeconsts.Int64

Bases: Int

SIZE = 8
class angr.analyses.typehoon.typeconsts.SInt8

Bases: Int8

class angr.analyses.typehoon.typeconsts.UInt8

Bases: Int8

class angr.analyses.typehoon.typeconsts.SInt16

Bases: Int16

class angr.analyses.typehoon.typeconsts.UInt16

Bases: Int16

class angr.analyses.typehoon.typeconsts.SInt32

Bases: Int32

class angr.analyses.typehoon.typeconsts.UInt32

Bases: Int32

class angr.analyses.typehoon.typeconsts.SInt64

Bases: Int64

class angr.analyses.typehoon.typeconsts.UInt64

Bases: Int64

class angr.analyses.typehoon.typeconsts.Int128

Bases: Int

SIZE = 16
class angr.analyses.typehoon.typeconsts.Int256

Bases: Int

SIZE = 32
class angr.analyses.typehoon.typeconsts.Int512

Bases: Int

SIZE = 32
class angr.analyses.typehoon.typeconsts.IntVar

Bases: Int

__init__(size, name=None)
Parameters:

name (str | None)

property size: int
class angr.analyses.typehoon.typeconsts.Float

Bases: TypeConstant

class angr.analyses.typehoon.typeconsts.Float32

Bases: Float

SIZE = 4
class angr.analyses.typehoon.typeconsts.Float64

Bases: Float

SIZE = 8
class angr.analyses.typehoon.typeconsts.Pointer

Bases: TypeConstant

__init__(basetype, name=None)
Parameters:
basetype: TypeConstant | None
new(basetype, name=None)
Parameters:

name (str | None)

replace(mapping, memo=None)
Return type:

TypeConstant

Parameters:
class angr.analyses.typehoon.typeconsts.Pointer32

Bases: Pointer, Int32

32-bit pointers.

__init__(basetype=None, name=None)
Parameters:

name (str | None)

class angr.analyses.typehoon.typeconsts.Pointer64

Bases: Pointer, Int64

64-bit pointers.

__init__(basetype=None, name=None)
Parameters:

name (str | None)

class angr.analyses.typehoon.typeconsts.Array

Bases: TypeConstant

__init__(element=None, count=None, name=None)
Parameters:

name (str | None)

element: TypeConstant | None
count: int | None
property size: int
replace(mapping, memo=None)
Return type:

TypeConstant

Parameters:
class angr.analyses.typehoon.typeconsts.Struct

Bases: TypeConstant

__init__(fields=None, name=None, field_names=None, is_cppclass=False, idx=-1)
Parameters:
property size: int
class angr.analyses.typehoon.typeconsts.EnumVariant

Bases: object

__init__(name, fields, discriminant, discriminant_size, size)
fields: list[tuple[TypeConstant, str | None]]
class angr.analyses.typehoon.typeconsts.RustEnum

Bases: TypeConstant

__init__(name=None, variants=None)
get_variant(name)
Return type:

EnumVariant | None

property size: int
replace(mapping, memo=None)
Return type:

TypeConstant

Parameters:
class angr.analyses.typehoon.typeconsts.Enum

Bases: TypeConstant

Enum type constant for type inference.

Variables:
  • members (dict[str, int]) – Mapping of enum member names to their integer values

  • base_type – The underlying type constant (defaults to Int32)

  • idx – Unique identifier for this enum

__init__(members=None, base_type=None, name=None, idx=-1)
Parameters:
members: dict[str, int]
property size: int

Return the size of the enum in bytes.

replace(mapping, memo=None)
Return type:

TypeConstant

Parameters:
class angr.analyses.typehoon.typeconsts.Function

Bases: TypeConstant

__init__(params, outputs, name=None)
Parameters:
replace(mapping, memo=None)
Return type:

TypeConstant

Parameters:
class angr.analyses.typehoon.typeconsts.TypeVariableReference

Bases: TypeConstant

__init__(typevar, name=None)
Parameters:

name (str | None)

angr.analyses.typehoon.typeconsts.int_type(bits)
Return type:

Int

Parameters:

bits (int)

angr.analyses.typehoon.typeconsts.signed_int_type(bits)
Return type:

Int

Parameters:

bits (int)

angr.analyses.typehoon.typeconsts.unsigned_int_type(bits)
Return type:

Int

Parameters:

bits (int)

angr.analyses.typehoon.typeconsts.float_type(bits)
Return type:

Float | None

Parameters:

bits (int)