|
| | ArchManagerARM64 () |
| |
| ks_engine * | curr_ks () override |
| |
| csh * | curr_cs () override |
| |
| arion::ADDR | dump_tls () override |
| |
| void | load_tls (arion::ADDR new_tls) override |
| |
| virtual | ~ArchManager ()=default |
| |
| std::shared_ptr< ARCH_ATTRIBUTES > | get_attrs () |
| |
| bool | does_hook_intr () |
| |
| std::string | get_name_by_syscall_no (uint64_t syscall_no) |
| |
| bool | has_syscall_with_name (std::string name) |
| |
| uint64_t | get_syscall_no_by_name (std::string name) |
| |
| std::vector< REG > | get_context_regs () |
| |
| std::unique_ptr< std::map< REG, RVAL > > | dump_regs () |
| |
| void | load_regs (std::unique_ptr< std::map< REG, RVAL > > regs) |
| |
| bool | has_idt_entry (uint64_t intno) |
| |
| CPU_INTR | get_idt_entry (uint64_t intno) |
| |
| std::unique_ptr< std::map< REG, RVAL > > | init_thread_regs (ADDR pc, ADDR sp) |
| |
| virtual void | prerun_hook (ADDR &start) |
| |
| template<typename T > |
| T | read_reg (REG reg) |
| |
| template<typename T > |
| T | read_reg (std::string reg_name) |
| |
| uint64_t | read_arch_reg (REG reg) |
| |
| template<typename T > |
| void | write_reg (REG reg, T val) |
| |
| template<typename T > |
| void | write_reg (std::string reg_name, T val) |
| |
| void | write_arch_reg (REG reg, uint64_t val) |
| |
| std::unique_ptr< PARSED_COREDUMP_THREAD > | parse_coredump_thread (std::shared_ptr< Arion > arion, std::unique_ptr< ELF_COREDUMP_THREAD > thread, std::shared_ptr< ElfParser > prog_parser) |
| |
| static std::unique_ptr< ArchManager > | initialize (std::weak_ptr< Arion > arion, CPU_ARCH arch, PLATFORM platform=PLATFORM::UNKNOWN_PLATFORM) |
| |
| static int | get_signal_from_intr (CPU_INTR intr) |
| |
| | ArchManager (std::shared_ptr< ARCH_ATTRIBUTES > attrs, std::map< std::string, REG > arch_regs, std::map< REG, uint8_t > arch_regs_sz, std::vector< REG > ctxt_regs, std::map< uint64_t, CPU_INTR > cpu_idt, bool hooks_intr) |
| |
| std::weak_ptr< Arion > | arion |
| | The Arion instanced associated to this instance.
|
| |
| uc_engine * | uc |
| | The Unicorn engine associated with this instance.
|
| |
| std::vector< ks_engine * > | ks |
| | The Keystone engine associated with this instance.
|
| |
| std::vector< csh * > | cs |
| | The Capstone engine associated with this instance.
|
| |
| std::shared_ptr< ARCH_ATTRIBUTES > | attrs |
| | Multiple architecture specific attributes, grouped in a structure for genericity purpose.
|
| |
| std::map< std::string, REG > | arch_regs |
| | Unicorn registers by their name.
|
| |
| std::map< REG, uint8_t > | arch_regs_sz |
| | Unicorn registers sizes.
|
| |
| std::vector< REG > | ctxt_regs |
| | Unicorn registers making up the context to save and restore.
|
| |
| std::map< uint64_t, CPU_INTR > | cpu_idt |
| | Interrupt Descriptor Table for the CPU.
|
| |
| bool | hooks_intr |
| | True if the ArchManager subclass uses hook_intr to intercept syscalls.
|
| |
Linux AArch64 architecture manager class for Arion.