Arion 1.0.2-alpha
A high-performance C++ framework for emulating executable binaries.
 
Loading...
Searching...
No Matches
lnx_loader.hpp File Reference
#include <arion/common/global_defs.hpp>
#include <arion/common/memory_manager.hpp>
#include <arion/platforms/linux/elf_parser.hpp>
#include <cstdint>
#include <memory>
#include <string>

Go to the source code of this file.

Classes

struct  arion::AUXV_PTRS
 Structure holding allocated memory addresses for string data placed on the stack for AUXV. More...
 
struct  arion::LNX_LOADER_PARAMS
 Structure holding the key load addresses of the emulated process. More...
 
class  arion::LinuxLoader
 Abstract base class for Linux-specific executable loading and setup routines. More...
 

Namespaces

namespace  arion
 

Macros

#define LINUX_64_LOAD_ADDR   0x400000
 
#define LINUX_64_STACK_ADDR   0x7ffffffde000
 
#define LINUX_64_STACK_SZ   0x21000
 
#define LINUX_32_LOAD_ADDR   0x8040000
 
#define LINUX_32_STACK_ADDR   0xfffcf000
 
#define LINUX_32_STACK_SZ   0x21000
 
#define LINUX_STACK_PERMS   6
 

Enumerations

enum  arion::AUXV {
  arion::AT_NULL = 0 , arion::AT_IGNORE = 1 , arion::AT_EXECFD = 2 , arion::AT_PHDR = 3 ,
  arion::AT_PHENT = 4 , arion::AT_PHNUM = 5 , arion::AT_PAGESZ = 6 , arion::AT_BASE = 7 ,
  arion::AT_FLAGS = 8 , arion::AT_ENTRY = 9 , arion::AT_NOTELF = 10 , arion::AT_UID = 11 ,
  arion::AT_EUID = 12 , arion::AT_GID = 13 , arion::AT_EGID = 14 , arion::AT_PLATFORM = 15 ,
  arion::AT_HWCAP = 16 , arion::AT_CLKTCK = 17 , arion::AT_SECURE = 23 , arion::AT_BASE_PLATFORM = 24 ,
  arion::AT_RANDOM = 25 , arion::AT_HWCAP2 = 26 , arion::AT_RSEQ_FEATURE_SIZE = 27 , arion::AT_RSEQ_ALIGN = 28 ,
  arion::AT_HWCAP3 = 29 , arion::AT_HWCAP4 = 30 , arion::AT_EXECFN = 31 , arion::AT_SYSINFO = 32 ,
  arion::AT_SYSINFO_EHDR = 33 , arion::AT_MINSIGSTKSZ = 51
}
 Enumeration of Auxiliary Vector (AUXV) keys passed by the kernel to the user space. More...
 

Macro Definition Documentation

◆ LINUX_32_LOAD_ADDR

#define LINUX_32_LOAD_ADDR   0x8040000

◆ LINUX_32_STACK_ADDR

#define LINUX_32_STACK_ADDR   0xfffcf000

◆ LINUX_32_STACK_SZ

#define LINUX_32_STACK_SZ   0x21000

◆ LINUX_64_LOAD_ADDR

#define LINUX_64_LOAD_ADDR   0x400000

◆ LINUX_64_STACK_ADDR

#define LINUX_64_STACK_ADDR   0x7ffffffde000

◆ LINUX_64_STACK_SZ

#define LINUX_64_STACK_SZ   0x21000

◆ LINUX_STACK_PERMS

#define LINUX_STACK_PERMS   6