Arion 1.0.2-alpha
A high-performance C++ framework for emulating executable binaries.
 
Loading...
Searching...
No Matches
lnx_arch_manager.hpp
Go to the documentation of this file.
1#ifndef ARION_LNX_ARCH_MANAGER_HPP
2#define ARION_LNX_ARCH_MANAGER_HPP
3
6#include <memory>
7#include <vector>
8
9namespace arion
10{
11
14{
16 std::unique_ptr<ELF_COREDUMP_THREAD> thread;
18 std::map<REG, RVAL> regs;
19
24};
25
28{
29 private:
36 virtual std::map<REG, RVAL> prstatus_to_regs(std::vector<BYTE> prstatus) = 0;
43 virtual std::map<REG, RVAL> fpregset_to_regs(std::vector<BYTE> fpregset) = 0;
44
45 public:
53 std::unique_ptr<PARSED_COREDUMP_THREAD> parse_coredump_thread(std::shared_ptr<Arion> arion,
54 std::unique_ptr<ELF_COREDUMP_THREAD> thread,
55 std::shared_ptr<ElfParser> prog_parser);
56};
57
58}; // namespace arion
59
60#endif // ARION_LNX_ARCH_MANAGER_HPP
Abstract base class for managing Linux architecture-specific details, particularly for core dump pars...
Definition lnx_arch_manager.hpp:28
virtual std::map< REG, RVAL > prstatus_to_regs(std::vector< BYTE > prstatus)=0
virtual std::map< REG, RVAL > fpregset_to_regs(std::vector< BYTE > fpregset)=0
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)
Definition arch_x86-64.hpp:11
Structure holding the fully parsed register state for a thread retrieved from a core dump.
Definition lnx_arch_manager.hpp:14
PARSED_COREDUMP_THREAD()
Definition lnx_arch_manager.hpp:23
std::map< REG, RVAL > regs
Map of Arion universal register IDs to their decoded register values.
Definition lnx_arch_manager.hpp:18
std::unique_ptr< ELF_COREDUMP_THREAD > thread
Unique pointer to the raw ELF thread data.
Definition lnx_arch_manager.hpp:16