Arion 1.0.2-alpha
A high-performance C++ framework for emulating executable binaries.
 
Loading...
Searching...
No Matches
arion_lnx_x86 Namespace Reference

Classes

class  ArchManagerLinuxX86
 Linux x86 architecture manager class for Arion. More...
 
struct  elf_prstatus
 Structure for a process status ELF note (NT_PRSTATUS) for x86 (32-bit), containing general registers. More...
 
struct  user_i387_struct
 
struct  user_regs_struct
 Structure representing the x86 (32-bit) general-purpose registers as saved by the Linux kernel on the stack. More...
 

Typedefs

typedef arion_lnx_type::elf_greg_t elf_gregset_t[ELF_NGREG]
 Definition of the general-purpose register set type for ELF notes (NT_PRSTATUS).
 
typedef struct user_i387_struct elf_fpregset_t
 Definition of the floating-point register set type for ELF notes (NT_FPREGSET).
 

Variables

std::vector< arion::REGuc_user_regs
 A vector mapping the user_regs_struct fields to ARION's universal register enumeration (arion::REG).
 
const size_t ELF_NGREG = (sizeof(struct user_regs_struct) / sizeof(arion_lnx_type::elf_greg_t))
 The number of 32-bit words (general registers) in the user_regs_struct, used for ELF notes.
 
std::vector< arion::REGuc_st_space_regs
 A vector mapping the FPU stack register space (st_space) to ARION's universal register enumeration.
 

Typedef Documentation

◆ elf_fpregset_t

Definition of the floating-point register set type for ELF notes (NT_FPREGSET).

◆ elf_gregset_t

typedef arion_lnx_type::elf_greg_t arion_lnx_x86::elf_gregset_t[ELF_NGREG]

Definition of the general-purpose register set type for ELF notes (NT_PRSTATUS).

Variable Documentation

◆ ELF_NGREG

const size_t arion_lnx_x86::ELF_NGREG = (sizeof(struct user_regs_struct) / sizeof(arion_lnx_type::elf_greg_t))

The number of 32-bit words (general registers) in the user_regs_struct, used for ELF notes.

◆ uc_st_space_regs

std::vector<arion::REG> arion_lnx_x86::uc_st_space_regs
inline
Initial value:
= {UC_X86_REG_FP0, UC_X86_REG_FP1, UC_X86_REG_FP2, UC_X86_REG_FP3,
UC_X86_REG_FP4, UC_X86_REG_FP5, UC_X86_REG_FP6, UC_X86_REG_FP7}

A vector mapping the FPU stack register space (st_space) to ARION's universal register enumeration.

◆ uc_user_regs

std::vector<arion::REG> arion_lnx_x86::uc_user_regs
inline
Initial value:
= {
UC_X86_REG_EBX, UC_X86_REG_ECX, UC_X86_REG_EDX, UC_X86_REG_ESI, UC_X86_REG_EDI, UC_X86_REG_EBP,
UC_X86_REG_EAX, UC_X86_REG_DS, UC_X86_REG_ES, UC_X86_REG_FS, UC_X86_REG_GS, UC_X86_REG_INVALID,
UC_X86_REG_EIP, UC_X86_REG_CS, UC_X86_REG_EFLAGS, UC_X86_REG_ESP, UC_X86_REG_SS}

A vector mapping the user_regs_struct fields to ARION's universal register enumeration (arion::REG).