| ►Narion | |
| CABI_CALLING_CONVENTION | Unicorn registers involved in calling convention |
| CABI_REGISTERS | Unicorn PC and SP registers for genericity |
| CABI_SYSCALLING_CONVENTION | Unicorn registers involved in syscalling convention |
| CANALYSIS_HIT | This structure holds data relative to a trace hit (e.g : instruction, basic block...) |
| CARCH_ATTRIBUTES | Multiple architecture specific attributes, grouped in a structure for genericity purpose |
| CArchManager | |
| CArion | An emulation unit associated with a process |
| CARION_AFL_PARAM | This structure is placed in the UnicornAFL user_data parameter |
| CARION_CONTEXT | Stores the whole context of an Arion instance that can be saved and restored to resume emulation from a given point |
| CARION_FILE | Stores attributes related to a file which was opened during emulation |
| CARION_FUTEX | This structure holds data about a Fast Userspace muTEX |
| CARION_HOOK | This structure holds information about an Arion hook |
| CARION_HOOK_PARAM | This structure is placed in the Unicorn user_data parameter of hooks |
| CARION_MAPPING | This structure holds data associated with a memory mapping |
| CARION_MEM_EDIT | This structure holds data associated with a memory modification event |
| CARION_SOCKET | This structure holds data about a UNIX socket |
| CARION_TGROUP_ENTRY | |
| CARION_THREAD | This structure holds data about a UNIX thread |
| CArionAfl | This class is used to managed a UnicornAFL fuzzing session from an Arion instance |
| CArionGroup | Group of Arion instances that run together. This allows IPC as well as sandboxing between groups |
| CARM_TRAP | Structure representing a kernel trap entry for the 32-bit ARM architecture |
| CAUXV_PTRS | Structure holding allocated memory addresses for string data placed on the stack for AUXV |
| CBaremetalManager | |
| CCODE_HIT | |
| CCodeTraceAnalyzer | This class is used to analyze data held in a trace file with various methods |
| CCodeTraceComparator | This class is used to compare data held in two different trace files with various methods |
| CCodeTracer | This class is used to perform tracing operations over an Arion emulation and store the result in a dedicated file |
| CCodeTraceReader | This class is used to read and parse an execution trace generated by an arion::CodeTracer instance |
| Ccolorstream | A stringstream extended class, which allows the use of LOG_COLOR colors for logging |
| CConfig | This class is responsible for storing a configuration which conditions the emulation of an Arion instance |
| CContextManager | |
| CELF_COREDUMP_ATTRS | Structure holding attributes extracted from an ELF core dump, primarily threads' register states |
| CELF_COREDUMP_THREAD | Structure holding register data for a single thread extracted from an ELF core dump |
| CELF_PARSER_ATTRIBUTES | Extended attributes structure for the ELF file parser |
| CElfCoredumpParser | Helper class responsible for parsing the specific NOTE sections of an ELF core dump file |
| CElfLoader | A Linux loader implementation responsible for parsing and mapping ELF binaries (executables and dynamic loaders) |
| CElfParser | Primary class for parsing ELF executables, shared objects, or core dumps. Inherits from ExecutableParser |
| CEXECUTABLE_PARSER_ATTRIBUTES | Stores attributes which are filled during the parsing of an executable |
| CExecutableParser | This class is responsible for extracting specific data from an executable file |
| CFileSystemManager | This class is used to emulate interactions with the rootfs specified by user |
| CGdtManager | A class used to setup and interact with the Global Descriptor Table (GDT) |
| CHooksManager | This class purpose is to manage user-defined Arion hooks including hook creation, deletion, trigger handling.. |
| CLinuxArchManager | Abstract base class for managing Linux architecture-specific details, particularly for core dump parsing |
| CLinuxBaremetalLoader | A Linux loader implementation for baremetal (shellcode) injection/execution without a full ELF file structure |
| CLinuxLoader | Abstract base class for Linux-specific executable loading and setup routines |
| CLinuxSyscallManager | Manages the emulation and dispatching of Linux system calls |
| CLNX_LOADER_PARAMS | Structure holding the key load addresses of the emulated process |
| CLogger | This class is responsible for managing logging in the Arion emulation framework |
| CMD5_CTXT | This structure holds the context for MD5 calculation |
| CMemoryManager | |
| CMemoryRecorder | This class is responsible for recording memory accesses to an Arion instance |
| CPARSED_COREDUMP_THREAD | Structure holding the fully parsed register state for a thread retrieved from a core dump |
| CProcFSManager | This class is used to emulate the behavior of the procfs filesystem |
| CRVAL | Identifies a size-agnostic register value |
| CSEGMENT | Identifies an OS memory segment |
| CSIGNAL | Identifies an OS signal |
| CSignalManager | This class manages signal handling within an Arion emulation session |
| CSocketManager | |
| CSYSCALL_FUNC | Structure defining a system call function and its parameter signature for logging/analysis |
| CThreadingManager | |
| CTRACE_MODULE | This structure holds data relative to a module being traced (e.g : a library) in virtual memory space |
| CTRACER_MAPPING | Stores general data over a memory mapping to be stored in the output trace file |
| ►Narion_arm | |
| CArchManagerARM | A class responsible for performing architecture specific operations in case of an ARM chip emulation |
| ►Narion_arm64 | |
| CArchManagerARM64 | A class responsible for performing architecture specific operations in case of an ARM64 chip emulation |
| ►Narion_exception | |
| CArionException | This class represents a custom exception defined in Arion environment |
| CBadLinkageTypeException | Thrown when the linkage type is not suitable for the operation |
| CCantReachTraceAddrException | Thrown when a trace address can't be reached |
| CCantReachTraceOffException | Thrown when a trace file can't be reached at the specified offset |
| CCantUnmapOutsideSegmentException | Thrown when trying to unmap a memory segment that is not within the bounds of the segment |
| CCapstoneOpenException | Thrown when an error occurs while opening the Capstone engine |
| CConfigKeyNotFoundException | Thrown when a key is not found in the configuration |
| CConfigWrongTypeAccessException | Thrown when trying to access a configuration key with the wrong type |
| CDifferentTraceModesException | Thrown when attempting to compare code traces that use different trace modes |
| CElfParsingException | Exception thrown when a general error occurs during the parsing of an ELF file |
| CExpiredWeakPtrException | Thrown when attempting to use an expired weak_ptr |
| CFileAlreadyHasFdException | Thrown when attempting to add an entry to a file descriptor table that already contains an entry for the same file |
| CFileNotFoundException | Thrown when a file is not found |
| CFileNotInFsException | Thrown when a file is not found in a file system |
| CFileOpenException | Thrown when an error occurs while opening a file |
| CFileTooSmallException | Thrown when a file is smaller than expected |
| CHeavierRegException | Thrown when attempting to read/write a register with a size that doesn't match the register's size |
| CInvalidArgumentException | Thrown when passing an invalid argument to a method |
| CInvalidSyscallNameException | Thrown when passing an invalid system call name argument to a method |
| CInvalidSyscallNoException | Thrown when passing an invalid system call number to a method |
| CKeystoneAsmException | Thrown when an error occurs while using the Keystone engine for assembly |
| CKeystoneOpenException | Thrown when an error occurs while opening the Keystone engine |
| CMemAlreadyMappedException | Thrown when attempting to map memory that has already been mapped |
| CMemoryRecorderAlreadyStartedException | Thrown when attempting to start a MemoryRecorder that is already started |
| CMemoryRecorderAlreadyStoppedException | Thrown when trying to stop a MemoryRecorder that is already stopped |
| CMultiplePrPsInfoNotesException | Exception thrown when parsing an ELF core dump that contains process status information for more than one process |
| CNewerContextFileVersionException | Thrown when a context file was written with a newer version of Arion |
| CNewerTraceFileVersionException | Thrown when a trace file was written with a newer version of Arion |
| CNoChildWithPidException | Thrown when a parent process does not have a child process with a specific PID |
| CNoCoredumpCurrentThreadException | Thrown when trying to analyze a coredump note that does not refer to a thread |
| CNoFileAtFdException | Thrown when a file descriptor does not correspond to a file |
| CNoFreeGdtEntryException | Thrown when there is no free GDT entry available |
| CNoIdtEntryWithIntnoException | Thrown when attempting to access an IDT entry with an interrupt number that is not referenced |
| CNoProcessWithPidException | Thrown when trying to access a process with a non-existing or already exited PID |
| CNoRegWithNameException | Thrown when trying to access a register that does not exist in the current architecture |
| CNoRegWithValueException | Thrown when trying to access a register that does not exist in the current architecture |
| CNoSegmentAtAddrException | Thrown when there is no memory segment mapped at the specified address |
| CNoSegmentWithInfoException | Thrown when there is no memory segment with the specified info |
| CNoSighandlerForSignalException | Thrown when a thread has no signal handler set for a given signal |
| CNoSignalForIntrException | Thrown when a CPU interrupt does not exist or has no corresponding kernel signal implemented |
| CNoSocketAtFdException | Thrown when a socket entry cannot be found with a given file descriptor |
| CNoStructFieldWithNameException | Thrown when attempting to access a field in a structure that does not exist |
| CPathTooLongException | Thrown when a file path is too long |
| CReadLinkFileException | Exception thrown when an error occurs while reading a file expected to be a symbolic link target |
| CSegmentNotMappedException | Thrown when attempting to access a memory segment that has not been mapped |
| CSocketAlreadyHasFdException | Thrown when attempting to add an entry to a socket that already has a file descriptor |
| CThreadAlreadySigWaitingException | Thrown when a thread is already waiting for a signal |
| CTooManyHooksException | Thrown when there are too many hooks already active |
| CTooManyLoggersException | Thrown when the maximum number of loggers has been reached |
| CTooManyStructsException | Thrown when there are too many active structures |
| CTooManyThreadsException | Thrown when the system is already running the maximum number of threads |
| CTracerAlreadyDisabledException | Thrown when trying to disable a tracer that is already disabled |
| CTracerAlreadyEnabledException | Thrown when attempting to enable a tracer that is already enabled |
| CUnhandledSyncSignalException | Thrown when a thread crashes with an unhandled signal |
| CUnicornAflException | Thrown when an error occurs while using the UnicornAFL engine |
| CUnicornAflNoExitsException | Thrown when no exits are specified while fuzzing with UnicornAFL engine |
| CUnicornCtlException | Thrown when an error occurs while configuring the Unicorn engine |
| CUnicornCtlFlushTbException | Thrown when an error occurs while flushing Qemu translation blocks with Unicorn engine |
| CUnicornHookAddException | Thrown when an error occurs while injecting a hook with Unicorn engine |
| CUnicornHookDelException | Thrown when an error occurs while removing a hook with Unicorn engine |
| CUnicornMapException | Thrown when an error occurs while mapping a memory segment with the Unicorn engine |
| CUnicornMemProtectException | Thrown when an error occurs while changing memory writes of a segment with Unicorn engine |
| CUnicornMemReadException | Thrown when an error occurs while reading from memory with Unicorn engine |
| CUnicornMemRegionsException | Thrown when an error occurs while fetching memory regions with Unicorn engine |
| CUnicornMemWriteException | Thrown when an error occurs while writing to memory with the Unicorn engine |
| CUnicornOpenException | Thrown when an error occurs while opening Unicorn engine |
| CUnicornRegReadException | Thrown when an error occurs while reading a register with Unicorn engine |
| CUnicornRegWriteException | Thrown when an error occurs while writing a register with Unicorn engine |
| CUnicornRunException | Thrown when an error occurs while running Unicorn engine |
| CUnicornStopException | Thrown when an error occurs while stopping Unicorn engine |
| CUnicornUnmapException | Thrown when an error occurs while unmapping a memory segment with Unicorn engine |
| CUnknownLinkageTypeException | Thrown when the linkage type of an executable cannot be identified |
| CUnknownSignalException | Thrown when a thread receives an unknown signal |
| CUnknownTraceModeException | Thrown when the specified trace mode does not exist |
| CUnknownTraceModuleHashException | Thrown when attempting to access a trace module with an unknown hash |
| CUnknownTraceModuleIdException | Thrown when attempting to access a module with an unknown ID in a trace file |
| CUnknownTraceModuleNameException | Thrown when attempting to access a trace module with an unknown name |
| CUnknownTraceRegException | Thrown when attempting to access a register that is not part of the trace file |
| CUnsupportedCpuArchException | Thrown when the CPU architecture is not supported |
| CUnsupportedHostCpuArchException | Thrown when the host CPU architecture is not supported |
| CWaitSameProcessException | Thrown when trying to wait for a process that is the same as the current process |
| CWrongContextFileMagicException | Thrown when a file does not start with the required magic sequence for a context file |
| CWrongHookIdException | Thrown when attempting to use a non-existent hook id |
| CWrongHookParamsException | Thrown when the parameters passed to a hook are invalid |
| CWrongLogLevelException | Thrown when the specified log level does not exist |
| CWrongStructIdException | Thrown when an invalid struct id is specified |
| CWrongThreadIdException | Thrown when attempting to access a thread with an invalid thread id |
| CWrongTraceFileMagicException | Thrown when a trace file does not start with the required magic sequence |
| CWrongTraceModeException | Thrown when the requested feature can't be used with the specified trace mode |
| ►Narion_lnx_arm | |
| CArchManagerLinuxARM | Linux ARM architecture manager class for Arion |
| Celf_prstatus | Structure for a process status ELF note (NT_PRSTATUS) for ARM, containing general registers |
| Cfp_reg | Structure representing a single ARM floating-point register (double-precision format) |
| Cpt_regs | Structure represents the ARM processor's register state as saved on the stack by the Linux kernel |
| Cuser_fp | Structure representing the ARM floating-point unit (FPU) context as saved in the user area |
| ►Narion_lnx_arm64 | |
| CArchManagerLinuxARM64 | Linux AArch64 architecture manager class for Arion |
| Celf_prstatus | Structure for a process status ELF note (NT_PRSTATUS) for AArch64, containing general registers |
| Cframe_record | Structure representing a frame record in the AArch64 stack unwind mechanism |
| Cframe_record_meta | Structure combining a frame record with additional metadata |
| Cpt_regs | Structure representing the full kernel-internal AArch64 register state |
| Cuser_fpsimd_state | Structure representing the AArch64 Floating-Point and SIMD (FPSIMD) state |
| Cuser_pt_regs | Structure representing the user-space view of AArch64 general registers saved by the kernel |
| ►Narion_lnx_type | |
| C__kernel_old_timeval | Kernel structure for time value used in older syscalls (gettimeofday, ELF notes) |
| CAccessModeType | Type representing the access modes for the access() syscall (R_OK, W_OK, X_OK, F_OK) |
| CCloneArgsStructFactory | Polymorphic structure factory for the Linux struct clone_args structure |
| CCloneFlagType | Type representing the flags for the clone() syscall (CLONE_VM, CLONE_THREAD, etc.) |
| Celf_prstatus_common | Common fields shared across architecture-specific elf_prstatus structures in core dumps |
| Celf_siginfo | Kernel structure for signal information used in ELF core dump notes |
| CErrCodeType | Type used for syscall return error codes (negative values) |
| CFileATFlagType | Type representing the flags used by the *at file syscalls (openat, faccessat, etc.) |
| CFileDescriptorType | Type used for file descriptor values |
| CFileModeType | Type representing Unix file modes (permissions and file type) |
| CFutexOpType | Type representing the operation codes for the futex() syscall |
| CIn6AddrTType | Type used for 128-bit IPv6 address values (in6_addr_t) |
| CInAddrTType | Type used for 32-bit IPv4 address values (in_addr_t) |
| Ciovec32 | Structure for a scatter/gather vector entry in 32-bit systems |
| Cksigaction | Linux kernel structure representing the signal action data for rt_sigaction |
| CMmapFlagType | Type representing the flags for the mmap() syscall (MAP_SHARED, MAP_ANONYMOUS, etc.) |
| COpenModeType | Type representing the open modes for the open() syscall (O_RDONLY, O_CREAT, etc.) |
| CProtFlagType | Type representing the memory protection flags for mmap/mprotect (PROT_READ, PROT_WRITE, PROT_EXEC) |
| Crlimit32 | Structure for resource limits in 32-bit systems (two 32-bit values) |
| CSeekWhenceType | Type representing the seek origin flags for lseek (SEEK_SET, SEEK_CUR, SEEK_END) |
| CSignalType | Type representing Linux signals (SIGHUP, SIGINT, SIGSEGV, etc.) |
| CSockaddrIn6StructFactory | Polymorphic structure factory for the IPv6 socket address struct sockaddr_in6 |
| CSockaddrInStructFactory | Polymorphic structure factory for the IPv4 socket address struct sockaddr_in |
| CSockaddrUnStructFactory | Polymorphic structure factory for the Unix domain socket address struct sockaddr_un |
| CSocketDomainType | Type representing the socket address families (domains) (AF_INET, AF_LOCAL, etc.) |
| CSocketTypeType | Type representing the socket types (SOCK_STREAM, SOCK_DGRAM, etc.) |
| CStatStructFactory | Polymorphic structure factory for the Unix struct stat (file status) structure |
| CStatxAttrsType | Type representing the file attributes flags returned by the statx() syscall |
| CStatxMaskType | Type representing the mask of requested fields for the statx() syscall |
| CStatxStructFactory | Polymorphic structure factory for the Linux struct statx (extended file status) structure |
| CStructCloneArgsType | Arion structure type wrapper for struct clone_args |
| CStructSockaddrIn6Type | Arion structure type wrapper for struct sockaddr_in6 |
| CStructSockaddrInType | Arion structure type wrapper for struct sockaddr_in |
| CStructSockaddrType | |
| CStructSockaddrUnType | Arion structure type wrapper for struct sockaddr_un |
| CStructStatType | Arion structure type wrapper for struct stat |
| CStructStatxType | Arion structure type wrapper for struct statx |
| CStructTimespecType | Arion structure type wrapper for struct timespec |
| CTimespecStructFactory | Polymorphic structure factory for the POSIX struct timespec structure |
| ►Narion_lnx_x86 | |
| CArchManagerLinuxX86 | Linux x86 architecture manager class for Arion |
| Celf_prstatus | Structure for a process status ELF note (NT_PRSTATUS) for x86 (32-bit), containing general registers |
| Cuser_i387_struct | |
| Cuser_regs_struct | Structure representing the x86 (32-bit) general-purpose registers as saved by the Linux kernel on the stack |
| ►Narion_lnx_x86_64 | |
| CArchManagerLinuxX8664 | Linux x86-64 architecture manager class for Arion |
| Celf_prstatus | Structure for a process status ELF note (NT_PRSTATUS) for x86-64, containing general registers |
| Cuser_i387_struct | Flag indicating whether floating-point registers are valid |
| Cuser_regs_struct | Structure representing the x86-64 general-purpose registers as saved by the Linux kernel on the stack |
| ►Narion_poly_struct | |
| CAbsArionStructType | Abstract base class providing common utilities for structure types that interact with emulated memory |
| CArionStructType | |
| CArionVariableStructType | |
| CPOLYMORPHIC_STRUCT_CONSTRAINT | Structure defining an architecture constraint for a field in a polymorphic struct |
| CPOLYMORPHIC_STRUCT_FIELD | Structure defining a field within a polymorphic struct, including its constraints and type metadata |
| CPolymorphicStruct | Represents a single instance of a polymorphic structure, storing its field values dynamically |
| CPolymorphicStructFactory | |
| ►Narion_type | |
| CFlagType | Class for data types represented as a set of bit flags or discrete symbolic constants |
| CIntType | Concrete type representing a generic integer value |
| CKernelType | Abstract base class for all kernel-related data types used for visualization/logging |
| CKernelTypeRegistry | Singleton class responsible for managing the initialization order of all kernel type objects |
| CRawStringType | Concrete type representing a memory address pointing to a null-terminated string |
| ►Narion_x86 | |
| CArchManagerX86 | A class responsible for performing architecture specific operations in case of an x86 chip emulation |
| ►Narion_x86_64 | |
| CArchManagerX8664 | A class responsible for performing architecture specific operations in case of an x86-64 chip emulation |