libTriton  version 1.0 build 1532
Public Member Functions | Protected Attributes | List of all members
triton::arch::arm::aarch64::AArch64Cpu Class Reference

This class is used to describe the ARM (64-bits) spec. More...

#include <aarch64Cpu.hpp>

Inheritance diagram for triton::arch::arm::aarch64::AArch64Cpu:

Public Member Functions

TRITON_EXPORT AArch64Cpu (triton::callbacks::Callbacks *callbacks=nullptr)
 Constructor. More...
 
TRITON_EXPORT AArch64Cpu (const AArch64Cpu &other)
 Constructor. More...
 
virtual TRITON_EXPORT ~AArch64Cpu ()
 Destructor. More...
 
TRITON_EXPORT AArch64Cpuoperator= (const AArch64Cpu &other)
 Copies a AArch64Cpu class. More...
 
TRITON_EXPORT bool isGPR (triton::arch::register_e regId) const
 Returns true if regId is a GRP. More...
 
TRITON_EXPORT bool isScalarRegister (triton::arch::register_e regId) const
 Returns true if regId is a scalar register. More...
 
TRITON_EXPORT bool isFlag (triton::arch::register_e regId) const
 Returns true if the register ID is a flag. More...
 
TRITON_EXPORT bool isRegister (triton::arch::register_e regId) const
 Returns true if the register ID is a register. More...
 
TRITON_EXPORT bool isRegisterValid (triton::arch::register_e regId) const
 Returns true if the register ID is valid. More...
 
TRITON_EXPORT bool isThumb (void) const
 Returns true if the execution mode is Thumb. Only useful for Arm32. More...
 
TRITON_EXPORT bool isMemoryExclusiveAccess (void) const
 Returns true if the exclusive memory access flag is set. Only valid for Arm32. More...
 
TRITON_EXPORT const std::unordered_map< triton::arch::register_e, const triton::arch::Register > & getAllRegisters (void) const
 Returns all registers. More...
 
TRITON_EXPORT const triton::arch::RegistergetParentRegister (const triton::arch::Register &reg) const
 Returns parent register from a given one. More...
 
TRITON_EXPORT const triton::arch::RegistergetParentRegister (triton::arch::register_e id) const
 Returns parent register from a given one. More...
 
TRITON_EXPORT const triton::arch::RegistergetProgramCounter (void) const
 Returns the program counter register. More...
 
TRITON_EXPORT const triton::arch::RegistergetRegister (triton::arch::register_e id) const
 Returns register from id. More...
 
TRITON_EXPORT const triton::arch::RegistergetRegister (const std::string &name) const
 Returns register from name. More...
 
TRITON_EXPORT const triton::arch::RegistergetStackPointer (void) const
 Returns the stack pointer register. More...
 
TRITON_EXPORT std::set< const triton::arch::Register * > getParentRegisters (void) const
 Returns all parent registers. More...
 
TRITON_EXPORT std::vector< triton::uint8getConcreteMemoryAreaValue (triton::uint64 baseAddr, triton::usize size, bool execCallbacks=true) const
 Returns the concrete value of a memory area. More...
 
TRITON_EXPORT triton::arch::endianness_e getEndianness (void) const
 Returns the kind of endianness as triton::arch::endianness_e. More...
 
TRITON_EXPORT triton::uint32 gprBitSize (void) const
 Returns the bit in bit of the General Purpose Registers. More...
 
TRITON_EXPORT triton::uint32 gprSize (void) const
 Returns the bit in byte of the General Purpose Registers. More...
 
TRITON_EXPORT triton::uint32 numberOfRegisters (void) const
 Returns the number of registers according to the CPU architecture. More...
 
TRITON_EXPORT triton::uint512 getConcreteMemoryValue (const triton::arch::MemoryAccess &mem, bool execCallbacks=true) const
 Returns the concrete value of memory cells. More...
 
TRITON_EXPORT triton::uint512 getConcreteRegisterValue (const triton::arch::Register &reg, bool execCallbacks=true) const
 Returns the concrete value of a register. More...
 
TRITON_EXPORT triton::uint8 getConcreteMemoryValue (triton::uint64 addr, bool execCallbacks=true) const
 Returns the concrete value of a memory cell. More...
 
TRITON_EXPORT void clear (void)
 Clears the architecture states (registers and memory). More...
 
TRITON_EXPORT void disassembly (triton::arch::Instruction &inst)
 Disassembles the instruction according to the architecture. More...
 
TRITON_EXPORT void setConcreteMemoryAreaValue (triton::uint64 baseAddr, const std::vector< triton::uint8 > &values)
 [architecture api] - Sets the concrete value of a memory area. More...
 
TRITON_EXPORT void setConcreteMemoryAreaValue (triton::uint64 baseAddr, const triton::uint8 *area, triton::usize size)
 [architecture api] - Sets the concrete value of a memory area. More...
 
TRITON_EXPORT void setConcreteMemoryValue (const triton::arch::MemoryAccess &mem, const triton::uint512 &value)
 [architecture api] - Sets the concrete value of memory cells. More...
 
TRITON_EXPORT void setConcreteMemoryValue (triton::uint64 addr, triton::uint8 value)
 [architecture api] - Sets the concrete value of a memory cell. More...
 
TRITON_EXPORT void setConcreteRegisterValue (const triton::arch::Register &reg, const triton::uint512 &value)
 [architecture api] - Sets the concrete value of a register. More...
 
TRITON_EXPORT void setThumb (bool state)
 Sets CPU state to Thumb mode. More...
 
TRITON_EXPORT void setMemoryExclusiveAccess (bool state)
 Sets exclusive memory access flag. Only valid for Arm32. More...
 
TRITON_EXPORT bool isConcreteMemoryValueDefined (const triton::arch::MemoryAccess &mem) const
 Returns true if memory cells have a defined concrete value. More...
 
TRITON_EXPORT bool isConcreteMemoryValueDefined (triton::uint64 baseAddr, triton::usize size=1) const
 Returns true if memory cells have a defined concrete value. More...
 
TRITON_EXPORT void clearConcreteMemoryValue (const triton::arch::MemoryAccess &mem)
 Clears concrete values assigned to the memory cells. More...
 
TRITON_EXPORT void clearConcreteMemoryValue (triton::uint64 baseAddr, triton::usize size=1)
 Clears concrete values assigned to the memory cells. More...
 
- Public Member Functions inherited from triton::arch::CpuInterface
virtual TRITON_EXPORT ~CpuInterface ()
 Destructor. More...
 
- Public Member Functions inherited from triton::arch::arm::aarch64::AArch64Specifications
TRITON_EXPORT AArch64Specifications (triton::arch::architecture_e)
 Constructor. More...
 
TRITON_EXPORT triton::arch::register_e capstoneRegisterToTritonRegister (triton::uint32 id) const
 Converts a capstone's register id to a triton's register id. More...
 
TRITON_EXPORT triton::arch::arm::shift_e capstoneShiftToTritonShift (triton::uint32 id) const
 Converts a capstone's shift id to a triton's shift id. More...
 
TRITON_EXPORT triton::arch::arm::extend_e capstoneExtendToTritonExtend (triton::uint32 id) const
 Converts a capstone's extend id to a triton's extend id. More...
 
TRITON_EXPORT triton::arch::arm::condition_e capstoneConditionToTritonCondition (triton::uint32 id) const
 Converts a capstone's condition id to a triton's condition id. More...
 
TRITON_EXPORT triton::uint32 capstoneInstructionToTritonInstruction (triton::uint32 id) const
 Converts a capstone's instruction id to a triton's instruction id. More...
 

Protected Attributes

std::unordered_map< triton::uint64, triton::uint8, IdentityHash< triton::uint64 > > memory
 map of address -> concrete value More...
 
triton::uint8 x0 [triton::size::qword]
 Concrete value of x0. More...
 
triton::uint8 x1 [triton::size::qword]
 Concrete value of x1. More...
 
triton::uint8 x2 [triton::size::qword]
 Concrete value of x2. More...
 
triton::uint8 x3 [triton::size::qword]
 Concrete value of x3. More...
 
triton::uint8 x4 [triton::size::qword]
 Concrete value of x4. More...
 
triton::uint8 x5 [triton::size::qword]
 Concrete value of x5. More...
 
triton::uint8 x6 [triton::size::qword]
 Concrete value of x6. More...
 
triton::uint8 x7 [triton::size::qword]
 Concrete value of x7. More...
 
triton::uint8 x8 [triton::size::qword]
 Concrete value of x8. More...
 
triton::uint8 x9 [triton::size::qword]
 Concrete value of x9. More...
 
triton::uint8 x10 [triton::size::qword]
 Concrete value of x10. More...
 
triton::uint8 x11 [triton::size::qword]
 Concrete value of x11. More...
 
triton::uint8 x12 [triton::size::qword]
 Concrete value of x12. More...
 
triton::uint8 x13 [triton::size::qword]
 Concrete value of x13. More...
 
triton::uint8 x14 [triton::size::qword]
 Concrete value of x14. More...
 
triton::uint8 x15 [triton::size::qword]
 Concrete value of x15. More...
 
triton::uint8 x16 [triton::size::qword]
 Concrete value of x16. More...
 
triton::uint8 x17 [triton::size::qword]
 Concrete value of x17. More...
 
triton::uint8 x18 [triton::size::qword]
 Concrete value of x18. More...
 
triton::uint8 x19 [triton::size::qword]
 Concrete value of x19. More...
 
triton::uint8 x20 [triton::size::qword]
 Concrete value of x20. More...
 
triton::uint8 x21 [triton::size::qword]
 Concrete value of x21. More...
 
triton::uint8 x22 [triton::size::qword]
 Concrete value of x22. More...
 
triton::uint8 x23 [triton::size::qword]
 Concrete value of x23. More...
 
triton::uint8 x24 [triton::size::qword]
 Concrete value of x24. More...
 
triton::uint8 x25 [triton::size::qword]
 Concrete value of x25. More...
 
triton::uint8 x26 [triton::size::qword]
 Concrete value of x26. More...
 
triton::uint8 x27 [triton::size::qword]
 Concrete value of x27. More...
 
triton::uint8 x28 [triton::size::qword]
 Concrete value of x28. More...
 
triton::uint8 x29 [triton::size::qword]
 Concrete value of x29. More...
 
triton::uint8 x30 [triton::size::qword]
 Concrete value of x30. More...
 
triton::uint8 q0 [triton::size::dqword]
 Concrete value of q0. More...
 
triton::uint8 q1 [triton::size::dqword]
 Concrete value of q1. More...
 
triton::uint8 q2 [triton::size::dqword]
 Concrete value of q2. More...
 
triton::uint8 q3 [triton::size::dqword]
 Concrete value of q3. More...
 
triton::uint8 q4 [triton::size::dqword]
 Concrete value of q4. More...
 
triton::uint8 q5 [triton::size::dqword]
 Concrete value of q5. More...
 
triton::uint8 q6 [triton::size::dqword]
 Concrete value of q6. More...
 
triton::uint8 q7 [triton::size::dqword]
 Concrete value of q7. More...
 
triton::uint8 q8 [triton::size::dqword]
 Concrete value of q8. More...
 
triton::uint8 q9 [triton::size::dqword]
 Concrete value of q9. More...
 
triton::uint8 q10 [triton::size::dqword]
 Concrete value of q10. More...
 
triton::uint8 q11 [triton::size::dqword]
 Concrete value of q11. More...
 
triton::uint8 q12 [triton::size::dqword]
 Concrete value of q12. More...
 
triton::uint8 q13 [triton::size::dqword]
 Concrete value of q13. More...
 
triton::uint8 q14 [triton::size::dqword]
 Concrete value of q14. More...
 
triton::uint8 q15 [triton::size::dqword]
 Concrete value of q15. More...
 
triton::uint8 q16 [triton::size::dqword]
 Concrete value of q16. More...
 
triton::uint8 q17 [triton::size::dqword]
 Concrete value of q17. More...
 
triton::uint8 q18 [triton::size::dqword]
 Concrete value of q18. More...
 
triton::uint8 q19 [triton::size::dqword]
 Concrete value of q19. More...
 
triton::uint8 q20 [triton::size::dqword]
 Concrete value of q20. More...
 
triton::uint8 q21 [triton::size::dqword]
 Concrete value of q21. More...
 
triton::uint8 q22 [triton::size::dqword]
 Concrete value of q22. More...
 
triton::uint8 q23 [triton::size::dqword]
 Concrete value of q23. More...
 
triton::uint8 q24 [triton::size::dqword]
 Concrete value of q24. More...
 
triton::uint8 q25 [triton::size::dqword]
 Concrete value of q25. More...
 
triton::uint8 q26 [triton::size::dqword]
 Concrete value of q26. More...
 
triton::uint8 q27 [triton::size::dqword]
 Concrete value of q27. More...
 
triton::uint8 q28 [triton::size::dqword]
 Concrete value of q28. More...
 
triton::uint8 q29 [triton::size::dqword]
 Concrete value of q29. More...
 
triton::uint8 q30 [triton::size::dqword]
 Concrete value of q30. More...
 
triton::uint8 q31 [triton::size::dqword]
 Concrete value of q31. More...
 
triton::uint8 sp [triton::size::qword]
 Concrete value of sp. More...
 
triton::uint8 pc [triton::size::qword]
 Concrete value of pc. More...
 
triton::uint8 spsr [triton::size::dword]
 Concrete value of spsr. More...
 
- Protected Attributes inherited from triton::arch::arm::aarch64::AArch64Specifications
std::unordered_map< triton::arch::register_e, const triton::arch::Registerid2reg
 List of registers specification available for this architecture. More...
 
std::unordered_map< std::string, triton::arch::register_ename2id
 

Detailed Description

This class is used to describe the ARM (64-bits) spec.

Definition at line 61 of file aarch64Cpu.hpp.

Constructor & Destructor Documentation

◆ AArch64Cpu() [1/2]

triton::arch::arm::aarch64::AArch64Cpu::AArch64Cpu ( triton::callbacks::Callbacks callbacks = nullptr)

Constructor.

Definition at line 27 of file aarch64Cpu.cpp.

◆ AArch64Cpu() [2/2]

triton::arch::arm::aarch64::AArch64Cpu::AArch64Cpu ( const AArch64Cpu other)

Constructor.

Definition at line 36 of file aarch64Cpu.cpp.

◆ ~AArch64Cpu()

triton::arch::arm::aarch64::AArch64Cpu::~AArch64Cpu ( )
virtual

Destructor.

Definition at line 41 of file aarch64Cpu.cpp.

Member Function Documentation

◆ clear()

void triton::arch::arm::aarch64::AArch64Cpu::clear ( void  )
virtual

Clears the architecture states (registers and memory).

Implements triton::arch::CpuInterface.

Definition at line 134 of file aarch64Cpu.cpp.

◆ clearConcreteMemoryValue() [1/2]

void triton::arch::arm::aarch64::AArch64Cpu::clearConcreteMemoryValue ( const triton::arch::MemoryAccess mem)
virtual

Clears concrete values assigned to the memory cells.

Implements triton::arch::CpuInterface.

Definition at line 1141 of file aarch64Cpu.cpp.

◆ clearConcreteMemoryValue() [2/2]

void triton::arch::arm::aarch64::AArch64Cpu::clearConcreteMemoryValue ( triton::uint64  baseAddr,
triton::usize  size = 1 
)
virtual

Clears concrete values assigned to the memory cells.

Implements triton::arch::CpuInterface.

Definition at line 1146 of file aarch64Cpu.cpp.

◆ disassembly()

void triton::arch::arm::aarch64::AArch64Cpu::disassembly ( triton::arch::Instruction inst)
virtual

Disassembles the instruction according to the architecture.

Implements triton::arch::CpuInterface.

Definition at line 328 of file aarch64Cpu.cpp.

◆ getAllRegisters()

const std::unordered_map< triton::arch::register_e, const triton::arch::Register > & triton::arch::arm::aarch64::AArch64Cpu::getAllRegisters ( void  ) const
virtual

Returns all registers.

Implements triton::arch::CpuInterface.

Definition at line 259 of file aarch64Cpu.cpp.

◆ getConcreteMemoryAreaValue()

std::vector< triton::uint8 > triton::arch::arm::aarch64::AArch64Cpu::getConcreteMemoryAreaValue ( triton::uint64  baseAddr,
triton::usize  size,
bool  execCallbacks = true 
) const
virtual

Returns the concrete value of a memory area.

Implements triton::arch::CpuInterface.

Definition at line 535 of file aarch64Cpu.cpp.

◆ getConcreteMemoryValue() [1/2]

triton::uint512 triton::arch::arm::aarch64::AArch64Cpu::getConcreteMemoryValue ( const triton::arch::MemoryAccess mem,
bool  execCallbacks = true 
) const
virtual

Returns the concrete value of memory cells.

Implements triton::arch::CpuInterface.

Definition at line 514 of file aarch64Cpu.cpp.

◆ getConcreteMemoryValue() [2/2]

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::getConcreteMemoryValue ( triton::uint64  addr,
bool  execCallbacks = true 
) const
virtual

Returns the concrete value of a memory cell.

Implements triton::arch::CpuInterface.

Definition at line 502 of file aarch64Cpu.cpp.

◆ getConcreteRegisterValue()

triton::uint512 triton::arch::arm::aarch64::AArch64Cpu::getConcreteRegisterValue ( const triton::arch::Register reg,
bool  execCallbacks = true 
) const
virtual

Returns the concrete value of a register.

Implements triton::arch::CpuInterface.

Definition at line 545 of file aarch64Cpu.cpp.

◆ getEndianness()

triton::arch::endianness_e triton::arch::arm::aarch64::AArch64Cpu::getEndianness ( void  ) const
virtual

Returns the kind of endianness as triton::arch::endianness_e.

Implements triton::arch::CpuInterface.

Definition at line 214 of file aarch64Cpu.cpp.

◆ getParentRegister() [1/2]

const triton::arch::Register & triton::arch::arm::aarch64::AArch64Cpu::getParentRegister ( const triton::arch::Register reg) const
virtual

Returns parent register from a given one.

Implements triton::arch::CpuInterface.

Definition at line 308 of file aarch64Cpu.cpp.

◆ getParentRegister() [2/2]

const triton::arch::Register & triton::arch::arm::aarch64::AArch64Cpu::getParentRegister ( triton::arch::register_e  id) const
virtual

Returns parent register from a given one.

Implements triton::arch::CpuInterface.

Definition at line 313 of file aarch64Cpu.cpp.

◆ getParentRegisters()

std::set< const triton::arch::Register * > triton::arch::arm::aarch64::AArch64Cpu::getParentRegisters ( void  ) const
virtual

Returns all parent registers.

Implements triton::arch::CpuInterface.

Definition at line 264 of file aarch64Cpu.cpp.

◆ getProgramCounter()

const triton::arch::Register & triton::arch::arm::aarch64::AArch64Cpu::getProgramCounter ( void  ) const
virtual

Returns the program counter register.

Implements triton::arch::CpuInterface.

Definition at line 318 of file aarch64Cpu.cpp.

◆ getRegister() [1/2]

const triton::arch::Register & triton::arch::arm::aarch64::AArch64Cpu::getRegister ( const std::string &  name) const
virtual

Returns register from name.

Implements triton::arch::CpuInterface.

Definition at line 297 of file aarch64Cpu.cpp.

◆ getRegister() [2/2]

const triton::arch::Register & triton::arch::arm::aarch64::AArch64Cpu::getRegister ( triton::arch::register_e  id) const
virtual

Returns register from id.

Implements triton::arch::CpuInterface.

Definition at line 288 of file aarch64Cpu.cpp.

◆ getStackPointer()

const triton::arch::Register & triton::arch::arm::aarch64::AArch64Cpu::getStackPointer ( void  ) const
virtual

Returns the stack pointer register.

Implements triton::arch::CpuInterface.

Definition at line 323 of file aarch64Cpu.cpp.

◆ gprBitSize()

triton::uint32 triton::arch::arm::aarch64::AArch64Cpu::gprBitSize ( void  ) const
virtual

Returns the bit in bit of the General Purpose Registers.

Implements triton::arch::CpuInterface.

Definition at line 254 of file aarch64Cpu.cpp.

◆ gprSize()

triton::uint32 triton::arch::arm::aarch64::AArch64Cpu::gprSize ( void  ) const
virtual

Returns the bit in byte of the General Purpose Registers.

Implements triton::arch::CpuInterface.

Definition at line 249 of file aarch64Cpu.cpp.

◆ isConcreteMemoryValueDefined() [1/2]

bool triton::arch::arm::aarch64::AArch64Cpu::isConcreteMemoryValueDefined ( const triton::arch::MemoryAccess mem) const
virtual

Returns true if memory cells have a defined concrete value.

Implements triton::arch::CpuInterface.

Definition at line 1127 of file aarch64Cpu.cpp.

◆ isConcreteMemoryValueDefined() [2/2]

bool triton::arch::arm::aarch64::AArch64Cpu::isConcreteMemoryValueDefined ( triton::uint64  baseAddr,
triton::usize  size = 1 
) const
virtual

Returns true if memory cells have a defined concrete value.

Implements triton::arch::CpuInterface.

Definition at line 1132 of file aarch64Cpu.cpp.

◆ isFlag()

bool triton::arch::arm::aarch64::AArch64Cpu::isFlag ( triton::arch::register_e  regId) const
virtual

Returns true if the register ID is a flag.

Implements triton::arch::CpuInterface.

Definition at line 219 of file aarch64Cpu.cpp.

◆ isGPR()

bool triton::arch::arm::aarch64::AArch64Cpu::isGPR ( triton::arch::register_e  regId) const

Returns true if regId is a GRP.

Definition at line 234 of file aarch64Cpu.cpp.

◆ isMemoryExclusiveAccess()

bool triton::arch::arm::aarch64::AArch64Cpu::isMemoryExclusiveAccess ( void  ) const
virtual

Returns true if the exclusive memory access flag is set. Only valid for Arm32.

Implements triton::arch::CpuInterface.

Definition at line 1116 of file aarch64Cpu.cpp.

◆ isRegister()

bool triton::arch::arm::aarch64::AArch64Cpu::isRegister ( triton::arch::register_e  regId) const
virtual

Returns true if the register ID is a register.

Implements triton::arch::CpuInterface.

Definition at line 224 of file aarch64Cpu.cpp.

◆ isRegisterValid()

bool triton::arch::arm::aarch64::AArch64Cpu::isRegisterValid ( triton::arch::register_e  regId) const
virtual

Returns true if the register ID is valid.

Implements triton::arch::CpuInterface.

Definition at line 229 of file aarch64Cpu.cpp.

◆ isScalarRegister()

bool triton::arch::arm::aarch64::AArch64Cpu::isScalarRegister ( triton::arch::register_e  regId) const

Returns true if regId is a scalar register.

Definition at line 239 of file aarch64Cpu.cpp.

◆ isThumb()

bool triton::arch::arm::aarch64::AArch64Cpu::isThumb ( void  ) const
virtual

Returns true if the execution mode is Thumb. Only useful for Arm32.

Implements triton::arch::CpuInterface.

Definition at line 1105 of file aarch64Cpu.cpp.

◆ numberOfRegisters()

triton::uint32 triton::arch::arm::aarch64::AArch64Cpu::numberOfRegisters ( void  ) const
virtual

Returns the number of registers according to the CPU architecture.

Implements triton::arch::CpuInterface.

Definition at line 244 of file aarch64Cpu.cpp.

◆ operator=()

AArch64Cpu & triton::arch::arm::aarch64::AArch64Cpu::operator= ( const AArch64Cpu other)

Copies a AArch64Cpu class.

Definition at line 208 of file aarch64Cpu.cpp.

◆ setConcreteMemoryAreaValue() [1/2]

void triton::arch::arm::aarch64::AArch64Cpu::setConcreteMemoryAreaValue ( triton::uint64  baseAddr,
const std::vector< triton::uint8 > &  values 
)
virtual

[architecture api] - Sets the concrete value of a memory area.

Note that by setting a concrete value will probably imply a desynchronization with the symbolic state (if it exists). You should probably use the concretize functions after this.

Implements triton::arch::CpuInterface.

Definition at line 820 of file aarch64Cpu.cpp.

◆ setConcreteMemoryAreaValue() [2/2]

void triton::arch::arm::aarch64::AArch64Cpu::setConcreteMemoryAreaValue ( triton::uint64  baseAddr,
const triton::uint8 area,
triton::usize  size 
)
virtual

[architecture api] - Sets the concrete value of a memory area.

Note that by setting a concrete value will probably imply a desynchronization with the symbolic state (if it exists). You should probably use the concretize functions after this.

Implements triton::arch::CpuInterface.

Definition at line 828 of file aarch64Cpu.cpp.

◆ setConcreteMemoryValue() [1/2]

void triton::arch::arm::aarch64::AArch64Cpu::setConcreteMemoryValue ( const triton::arch::MemoryAccess mem,
const triton::uint512 value 
)
virtual

[architecture api] - Sets the concrete value of memory cells.

Note that by setting a concrete value will probably imply a desynchronization with the symbolic state (if it exists). You should probably use the concretize functions after this.

Implements triton::arch::CpuInterface.

Definition at line 799 of file aarch64Cpu.cpp.

◆ setConcreteMemoryValue() [2/2]

void triton::arch::arm::aarch64::AArch64Cpu::setConcreteMemoryValue ( triton::uint64  addr,
triton::uint8  value 
)
virtual

[architecture api] - Sets the concrete value of a memory cell.

Note that by setting a concrete value will probably imply a desynchronization with the symbolic state (if it exists). You should probably use the concretize functions after this.

Implements triton::arch::CpuInterface.

Definition at line 792 of file aarch64Cpu.cpp.

◆ setConcreteRegisterValue()

void triton::arch::arm::aarch64::AArch64Cpu::setConcreteRegisterValue ( const triton::arch::Register reg,
const triton::uint512 value 
)
virtual

[architecture api] - Sets the concrete value of a register.

Note that by setting a concrete value will probably imply a desynchronization with the symbolic state (if it exists). You should probably use the concretize functions after this.

Implements triton::arch::CpuInterface.

Definition at line 836 of file aarch64Cpu.cpp.

◆ setMemoryExclusiveAccess()

void triton::arch::arm::aarch64::AArch64Cpu::setMemoryExclusiveAccess ( bool  state)
virtual

Sets exclusive memory access flag. Only valid for Arm32.

Implements triton::arch::CpuInterface.

Definition at line 1122 of file aarch64Cpu.cpp.

◆ setThumb()

void triton::arch::arm::aarch64::AArch64Cpu::setThumb ( bool  state)
virtual

Sets CPU state to Thumb mode.

Implements triton::arch::CpuInterface.

Definition at line 1111 of file aarch64Cpu.cpp.

Member Data Documentation

◆ memory

std::unordered_map<triton::uint64, triton::uint8, IdentityHash<triton::uint64> > triton::arch::arm::aarch64::AArch64Cpu::memory
protected

map of address -> concrete value

item1: memory address
item2: concrete value

Definition at line 87 of file aarch64Cpu.hpp.

◆ pc

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::pc[triton::size::qword]
protected

Concrete value of pc.

Definition at line 218 of file aarch64Cpu.hpp.

◆ q0

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q0[triton::size::dqword]
protected

Concrete value of q0.

Definition at line 152 of file aarch64Cpu.hpp.

◆ q1

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q1[triton::size::dqword]
protected

Concrete value of q1.

Definition at line 154 of file aarch64Cpu.hpp.

◆ q10

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q10[triton::size::dqword]
protected

Concrete value of q10.

Definition at line 172 of file aarch64Cpu.hpp.

◆ q11

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q11[triton::size::dqword]
protected

Concrete value of q11.

Definition at line 174 of file aarch64Cpu.hpp.

◆ q12

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q12[triton::size::dqword]
protected

Concrete value of q12.

Definition at line 176 of file aarch64Cpu.hpp.

◆ q13

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q13[triton::size::dqword]
protected

Concrete value of q13.

Definition at line 178 of file aarch64Cpu.hpp.

◆ q14

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q14[triton::size::dqword]
protected

Concrete value of q14.

Definition at line 180 of file aarch64Cpu.hpp.

◆ q15

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q15[triton::size::dqword]
protected

Concrete value of q15.

Definition at line 182 of file aarch64Cpu.hpp.

◆ q16

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q16[triton::size::dqword]
protected

Concrete value of q16.

Definition at line 184 of file aarch64Cpu.hpp.

◆ q17

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q17[triton::size::dqword]
protected

Concrete value of q17.

Definition at line 186 of file aarch64Cpu.hpp.

◆ q18

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q18[triton::size::dqword]
protected

Concrete value of q18.

Definition at line 188 of file aarch64Cpu.hpp.

◆ q19

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q19[triton::size::dqword]
protected

Concrete value of q19.

Definition at line 190 of file aarch64Cpu.hpp.

◆ q2

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q2[triton::size::dqword]
protected

Concrete value of q2.

Definition at line 156 of file aarch64Cpu.hpp.

◆ q20

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q20[triton::size::dqword]
protected

Concrete value of q20.

Definition at line 192 of file aarch64Cpu.hpp.

◆ q21

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q21[triton::size::dqword]
protected

Concrete value of q21.

Definition at line 194 of file aarch64Cpu.hpp.

◆ q22

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q22[triton::size::dqword]
protected

Concrete value of q22.

Definition at line 196 of file aarch64Cpu.hpp.

◆ q23

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q23[triton::size::dqword]
protected

Concrete value of q23.

Definition at line 198 of file aarch64Cpu.hpp.

◆ q24

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q24[triton::size::dqword]
protected

Concrete value of q24.

Definition at line 200 of file aarch64Cpu.hpp.

◆ q25

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q25[triton::size::dqword]
protected

Concrete value of q25.

Definition at line 202 of file aarch64Cpu.hpp.

◆ q26

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q26[triton::size::dqword]
protected

Concrete value of q26.

Definition at line 204 of file aarch64Cpu.hpp.

◆ q27

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q27[triton::size::dqword]
protected

Concrete value of q27.

Definition at line 206 of file aarch64Cpu.hpp.

◆ q28

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q28[triton::size::dqword]
protected

Concrete value of q28.

Definition at line 208 of file aarch64Cpu.hpp.

◆ q29

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q29[triton::size::dqword]
protected

Concrete value of q29.

Definition at line 210 of file aarch64Cpu.hpp.

◆ q3

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q3[triton::size::dqword]
protected

Concrete value of q3.

Definition at line 158 of file aarch64Cpu.hpp.

◆ q30

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q30[triton::size::dqword]
protected

Concrete value of q30.

Definition at line 212 of file aarch64Cpu.hpp.

◆ q31

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q31[triton::size::dqword]
protected

Concrete value of q31.

Definition at line 214 of file aarch64Cpu.hpp.

◆ q4

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q4[triton::size::dqword]
protected

Concrete value of q4.

Definition at line 160 of file aarch64Cpu.hpp.

◆ q5

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q5[triton::size::dqword]
protected

Concrete value of q5.

Definition at line 162 of file aarch64Cpu.hpp.

◆ q6

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q6[triton::size::dqword]
protected

Concrete value of q6.

Definition at line 164 of file aarch64Cpu.hpp.

◆ q7

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q7[triton::size::dqword]
protected

Concrete value of q7.

Definition at line 166 of file aarch64Cpu.hpp.

◆ q8

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q8[triton::size::dqword]
protected

Concrete value of q8.

Definition at line 168 of file aarch64Cpu.hpp.

◆ q9

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::q9[triton::size::dqword]
protected

Concrete value of q9.

Definition at line 170 of file aarch64Cpu.hpp.

◆ sp

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::sp[triton::size::qword]
protected

Concrete value of sp.

Definition at line 216 of file aarch64Cpu.hpp.

◆ spsr

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::spsr[triton::size::dword]
protected

Concrete value of spsr.

Definition at line 220 of file aarch64Cpu.hpp.

◆ x0

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x0[triton::size::qword]
protected

Concrete value of x0.

Definition at line 90 of file aarch64Cpu.hpp.

◆ x1

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x1[triton::size::qword]
protected

Concrete value of x1.

Definition at line 92 of file aarch64Cpu.hpp.

◆ x10

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x10[triton::size::qword]
protected

Concrete value of x10.

Definition at line 110 of file aarch64Cpu.hpp.

◆ x11

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x11[triton::size::qword]
protected

Concrete value of x11.

Definition at line 112 of file aarch64Cpu.hpp.

◆ x12

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x12[triton::size::qword]
protected

Concrete value of x12.

Definition at line 114 of file aarch64Cpu.hpp.

◆ x13

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x13[triton::size::qword]
protected

Concrete value of x13.

Definition at line 116 of file aarch64Cpu.hpp.

◆ x14

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x14[triton::size::qword]
protected

Concrete value of x14.

Definition at line 118 of file aarch64Cpu.hpp.

◆ x15

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x15[triton::size::qword]
protected

Concrete value of x15.

Definition at line 120 of file aarch64Cpu.hpp.

◆ x16

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x16[triton::size::qword]
protected

Concrete value of x16.

Definition at line 122 of file aarch64Cpu.hpp.

◆ x17

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x17[triton::size::qword]
protected

Concrete value of x17.

Definition at line 124 of file aarch64Cpu.hpp.

◆ x18

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x18[triton::size::qword]
protected

Concrete value of x18.

Definition at line 126 of file aarch64Cpu.hpp.

◆ x19

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x19[triton::size::qword]
protected

Concrete value of x19.

Definition at line 128 of file aarch64Cpu.hpp.

◆ x2

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x2[triton::size::qword]
protected

Concrete value of x2.

Definition at line 94 of file aarch64Cpu.hpp.

◆ x20

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x20[triton::size::qword]
protected

Concrete value of x20.

Definition at line 130 of file aarch64Cpu.hpp.

◆ x21

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x21[triton::size::qword]
protected

Concrete value of x21.

Definition at line 132 of file aarch64Cpu.hpp.

◆ x22

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x22[triton::size::qword]
protected

Concrete value of x22.

Definition at line 134 of file aarch64Cpu.hpp.

◆ x23

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x23[triton::size::qword]
protected

Concrete value of x23.

Definition at line 136 of file aarch64Cpu.hpp.

◆ x24

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x24[triton::size::qword]
protected

Concrete value of x24.

Definition at line 138 of file aarch64Cpu.hpp.

◆ x25

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x25[triton::size::qword]
protected

Concrete value of x25.

Definition at line 140 of file aarch64Cpu.hpp.

◆ x26

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x26[triton::size::qword]
protected

Concrete value of x26.

Definition at line 142 of file aarch64Cpu.hpp.

◆ x27

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x27[triton::size::qword]
protected

Concrete value of x27.

Definition at line 144 of file aarch64Cpu.hpp.

◆ x28

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x28[triton::size::qword]
protected

Concrete value of x28.

Definition at line 146 of file aarch64Cpu.hpp.

◆ x29

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x29[triton::size::qword]
protected

Concrete value of x29.

Definition at line 148 of file aarch64Cpu.hpp.

◆ x3

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x3[triton::size::qword]
protected

Concrete value of x3.

Definition at line 96 of file aarch64Cpu.hpp.

◆ x30

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x30[triton::size::qword]
protected

Concrete value of x30.

Definition at line 150 of file aarch64Cpu.hpp.

◆ x4

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x4[triton::size::qword]
protected

Concrete value of x4.

Definition at line 98 of file aarch64Cpu.hpp.

◆ x5

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x5[triton::size::qword]
protected

Concrete value of x5.

Definition at line 100 of file aarch64Cpu.hpp.

◆ x6

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x6[triton::size::qword]
protected

Concrete value of x6.

Definition at line 102 of file aarch64Cpu.hpp.

◆ x7

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x7[triton::size::qword]
protected

Concrete value of x7.

Definition at line 104 of file aarch64Cpu.hpp.

◆ x8

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x8[triton::size::qword]
protected

Concrete value of x8.

Definition at line 106 of file aarch64Cpu.hpp.

◆ x9

triton::uint8 triton::arch::arm::aarch64::AArch64Cpu::x9[triton::size::qword]
protected

Concrete value of x9.

Definition at line 108 of file aarch64Cpu.hpp.


The documentation for this class was generated from the following files: