Arion 1.0.2-alpha
A high-performance C++ framework for emulating executable binaries.
 
Loading...
Searching...
No Matches
arion::BaremetalManager Class Reference

#include <baremetal_manager.hpp>

Public Member Functions

 BaremetalManager (CPU_ARCH arch, std::vector< BYTE > code, ADDR load_addr, ADDR entry_addr)
 
 BaremetalManager (CPU_ARCH arch, std::vector< BYTE > code, ADDR load_addr)
 
 BaremetalManager (CPU_ARCH arch, ADDR load_addr, ADDR entry_addr)
 
CPU_ARCH get_arch ()
 
std::vector< uint8_t > get_code ()
 
ADDR get_load_addr ()
 
ADDR get_entry_addr ()
 

Private Attributes

CPU_ARCH arch
 Arion CPU architecture for emulation.
 
std::vector< BYTEcode
 The code to be emulated.
 
ADDR load_addr
 The memory address at which to map the code.
 
ADDR entry_addr
 The memory address at which to start emulation.
 

Detailed Description

This class is responsible for configuring a session of baremetal emulation. After being configured, a BaremetalManager instance can be passed to a specific Arion initialization method.

Constructor & Destructor Documentation

◆ BaremetalManager() [1/3]

arion::BaremetalManager::BaremetalManager ( CPU_ARCH  arch,
std::vector< BYTE code,
ADDR  load_addr,
ADDR  entry_addr 
)
inline

Builder method for BaremetalManager instances.

Parameters
[in]archArion CPU architecture for emulation.
[in]codeThe code to be emulated.
[in]load_addrThe memory address at which to map the code.
[in]entry_addrThe memory address at which to start emulation.

◆ BaremetalManager() [2/3]

arion::BaremetalManager::BaremetalManager ( CPU_ARCH  arch,
std::vector< BYTE code,
ADDR  load_addr 
)
inline

Builder method for BaremetalManager instances.

Parameters
[in]archArion CPU architecture for emulation.
[in]codeThe code to be emulated.
[in]load_addrThe memory address at which to map the code.

◆ BaremetalManager() [3/3]

arion::BaremetalManager::BaremetalManager ( CPU_ARCH  arch,
ADDR  load_addr,
ADDR  entry_addr 
)
inline

Builder method for BaremetalManager instances.

Parameters
[in]archArion CPU architecture for emulation.
[in]load_addrThe memory address at which to map the code.
[in]entry_addrThe memory address at which to start emulation.

Member Function Documentation

◆ get_arch()

CPU_ARCH arion::BaremetalManager::get_arch ( )

Retrieves the Arion CPU architecture associated with this instance.

Returns
The Arion CPU architecture.

◆ get_code()

std::vector< uint8_t > arion::BaremetalManager::get_code ( )

Retrieves the assembled instructions of code to be emulated in baremetal.

Returns
The vector of assembled instructions data.

◆ get_entry_addr()

ADDR arion::BaremetalManager::get_entry_addr ( )

Retrieves the memory address at which the code should start being emulated.

Returns
The code entry address.

◆ get_load_addr()

ADDR arion::BaremetalManager::get_load_addr ( )

Retrieves the memory address at which the code is to be loaded.

Returns
The code starting memory address.

Member Data Documentation

◆ arch

CPU_ARCH arion::BaremetalManager::arch
private

Arion CPU architecture for emulation.

◆ code

std::vector<BYTE> arion::BaremetalManager::code
private

The code to be emulated.

◆ entry_addr

ADDR arion::BaremetalManager::entry_addr
private

The memory address at which to start emulation.

◆ load_addr

ADDR arion::BaremetalManager::load_addr
private

The memory address at which to map the code.


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