#include <arion/capstone/capstone.h>#include <arion/common/global_defs.hpp>#include <arion/keystone/keystone.h>#include <arion/unicorn/unicorn.h>#include <arion/utils/convert_utils.hpp>#include <cstdint>#include <dlfcn.h>#include <execinfo.h>#include <string.h>#include <string>Go to the source code of this file.
Classes | |
| class | arion_exception::ArionException |
| This class represents a custom exception defined in Arion environment. More... | |
| class | arion_exception::InvalidArgumentException |
| Thrown when passing an invalid argument to a method. More... | |
| class | arion_exception::ExpiredWeakPtrException |
| Thrown when attempting to use an expired weak_ptr. More... | |
| class | arion_exception::FileNotFoundException |
| Thrown when a file is not found. More... | |
| class | arion_exception::FileOpenException |
| Thrown when an error occurs while opening a file. More... | |
| class | arion_exception::FileTooSmallException |
| Thrown when a file is smaller than expected. More... | |
| class | arion_exception::FileNotInFsException |
| Thrown when a file is not found in a file system. More... | |
| class | arion_exception::ConfigKeyNotFoundException |
| Thrown when a key is not found in the configuration. More... | |
| class | arion_exception::ConfigWrongTypeAccessException |
| Thrown when trying to access a configuration key with the wrong type. More... | |
| class | arion_exception::WrongContextFileMagicException |
| Thrown when a file does not start with the required magic sequence for a context file. More... | |
| class | arion_exception::NewerContextFileVersionException |
| Thrown when a context file was written with a newer version of Arion. More... | |
| class | arion_exception::PathTooLongException |
| Thrown when a file path is too long. More... | |
| class | arion_exception::UnknownLinkageTypeException |
| Thrown when the linkage type of an executable cannot be identified. More... | |
| class | arion_exception::InvalidSyscallNoException |
| Thrown when passing an invalid system call number to a method. More... | |
| class | arion_exception::InvalidSyscallNameException |
| Thrown when passing an invalid system call name argument to a method. More... | |
| class | arion_exception::BadLinkageTypeException |
| Thrown when the linkage type is not suitable for the operation. More... | |
| class | arion_exception::NoCoredumpCurrentThreadException |
| Thrown when trying to analyze a coredump note that does not refer to a thread. More... | |
| class | arion_exception::NoSegmentAtAddrException |
| Thrown when there is no memory segment mapped at the specified address. More... | |
| class | arion_exception::NoSegmentWithInfoException |
| Thrown when there is no memory segment with the specified info. More... | |
| class | arion_exception::SegmentNotMappedException |
| Thrown when attempting to access a memory segment that has not been mapped. More... | |
| class | arion_exception::MemAlreadyMappedException |
| Thrown when attempting to map memory that has already been mapped. More... | |
| class | arion_exception::CantUnmapOutsideSegmentException |
| Thrown when trying to unmap a memory segment that is not within the bounds of the segment. More... | |
| class | arion_exception::UnsupportedCpuArchException |
| Thrown when the CPU architecture is not supported. More... | |
| class | arion_exception::UnsupportedHostCpuArchException |
| Thrown when the host CPU architecture is not supported. More... | |
| class | arion_exception::TooManyThreadsException |
| Thrown when the system is already running the maximum number of threads. More... | |
| class | arion_exception::WrongThreadIdException |
| Thrown when attempting to access a thread with an invalid thread id. More... | |
| class | arion_exception::UnknownSignalException |
| Thrown when a thread receives an unknown signal. More... | |
| class | arion_exception::NoSighandlerForSignalException |
| Thrown when a thread has no signal handler set for a given signal. More... | |
| class | arion_exception::UnhandledSyncSignalException |
| Thrown when a thread crashes with an unhandled signal. More... | |
| class | arion_exception::ThreadAlreadySigWaitingException |
| Thrown when a thread is already waiting for a signal. More... | |
| class | arion_exception::WaitSameProcessException |
| Thrown when trying to wait for a process that is the same as the current process. More... | |
| class | arion_exception::NoProcessWithPidException |
| Thrown when trying to access a process with a non-existing or already exited PID. More... | |
| class | arion_exception::NoChildWithPidException |
| Thrown when a parent process does not have a child process with a specific PID. More... | |
| class | arion_exception::WrongHookParamsException |
| Thrown when the parameters passed to a hook are invalid. More... | |
| class | arion_exception::TooManyHooksException |
| Thrown when there are too many hooks already active. More... | |
| class | arion_exception::WrongHookIdException |
| Thrown when attempting to use a non-existent hook id. More... | |
| class | arion_exception::HeavierRegException |
| Thrown when attempting to read/write a register with a size that doesn't match the register's size. More... | |
| class | arion_exception::NoRegWithValueException |
| Thrown when trying to access a register that does not exist in the current architecture. More... | |
| class | arion_exception::NoRegWithNameException |
| Thrown when trying to access a register that does not exist in the current architecture. More... | |
| class | arion_exception::NoStructFieldWithNameException |
| Thrown when attempting to access a field in a structure that does not exist. More... | |
| class | arion_exception::TooManyStructsException |
| Thrown when there are too many active structures. More... | |
| class | arion_exception::WrongStructIdException |
| Thrown when an invalid struct id is specified. More... | |
| class | arion_exception::NoIdtEntryWithIntnoException |
| Thrown when attempting to access an IDT entry with an interrupt number that is not referenced. More... | |
| class | arion_exception::NoSignalForIntrException |
| Thrown when a CPU interrupt does not exist or has no corresponding kernel signal implemented. More... | |
| class | arion_exception::UnicornOpenException |
| Thrown when an error occurs while opening Unicorn engine. More... | |
| class | arion_exception::UnicornCtlException |
| Thrown when an error occurs while configuring the Unicorn engine. More... | |
| class | arion_exception::UnicornMapException |
| Thrown when an error occurs while mapping a memory segment with the Unicorn engine. More... | |
| class | arion_exception::UnicornUnmapException |
| Thrown when an error occurs while unmapping a memory segment with Unicorn engine. More... | |
| class | arion_exception::UnicornMemRegionsException |
| Thrown when an error occurs while fetching memory regions with Unicorn engine. More... | |
| class | arion_exception::UnicornMemReadException |
| Thrown when an error occurs while reading from memory with Unicorn engine. More... | |
| class | arion_exception::UnicornMemWriteException |
| Thrown when an error occurs while writing to memory with the Unicorn engine. More... | |
| class | arion_exception::UnicornMemProtectException |
| Thrown when an error occurs while changing memory writes of a segment with Unicorn engine. More... | |
| class | arion_exception::UnicornRegReadException |
| Thrown when an error occurs while reading a register with Unicorn engine. More... | |
| class | arion_exception::UnicornRegWriteException |
| Thrown when an error occurs while writing a register with Unicorn engine. More... | |
| class | arion_exception::UnicornCtlFlushTbException |
| Thrown when an error occurs while flushing Qemu translation blocks with Unicorn engine. More... | |
| class | arion_exception::UnicornHookAddException |
| Thrown when an error occurs while injecting a hook with Unicorn engine. More... | |
| class | arion_exception::UnicornHookDelException |
| Thrown when an error occurs while removing a hook with Unicorn engine. More... | |
| class | arion_exception::UnicornRunException |
| Thrown when an error occurs while running Unicorn engine. More... | |
| class | arion_exception::UnicornStopException |
| Thrown when an error occurs while stopping Unicorn engine. More... | |
| class | arion_exception::UnicornAflException |
| Thrown when an error occurs while using the UnicornAFL engine. More... | |
| class | arion_exception::UnicornAflNoExitsException |
| Thrown when no exits are specified while fuzzing with UnicornAFL engine. More... | |
| class | arion_exception::KeystoneOpenException |
| Thrown when an error occurs while opening the Keystone engine. More... | |
| class | arion_exception::KeystoneAsmException |
| Thrown when an error occurs while using the Keystone engine for assembly. More... | |
| class | arion_exception::CapstoneOpenException |
| Thrown when an error occurs while opening the Capstone engine. More... | |
| class | arion_exception::FileAlreadyHasFdException |
| Thrown when attempting to add an entry to a file descriptor table that already contains an entry for the same file. More... | |
| class | arion_exception::NoFileAtFdException |
| Thrown when a file descriptor does not correspond to a file. More... | |
| class | arion_exception::SocketAlreadyHasFdException |
| Thrown when attempting to add an entry to a socket that already has a file descriptor. More... | |
| class | arion_exception::NoSocketAtFdException |
| Thrown when a socket entry cannot be found with a given file descriptor. More... | |
| class | arion_exception::NoFreeGdtEntryException |
| Thrown when there is no free GDT entry available. More... | |
| class | arion_exception::WrongTraceFileMagicException |
| Thrown when a trace file does not start with the required magic sequence. More... | |
| class | arion_exception::NewerTraceFileVersionException |
| Thrown when a trace file was written with a newer version of Arion. More... | |
| class | arion_exception::UnknownTraceModeException |
| Thrown when the specified trace mode does not exist. More... | |
| class | arion_exception::DifferentTraceModesException |
| Thrown when attempting to compare code traces that use different trace modes. More... | |
| class | arion_exception::WrongTraceModeException |
| Thrown when the requested feature can't be used with the specified trace mode. More... | |
| class | arion_exception::UnknownTraceRegException |
| Thrown when attempting to access a register that is not part of the trace file. More... | |
| class | arion_exception::UnknownTraceModuleIdException |
| Thrown when attempting to access a module with an unknown ID in a trace file. More... | |
| class | arion_exception::UnknownTraceModuleNameException |
| Thrown when attempting to access a trace module with an unknown name. More... | |
| class | arion_exception::UnknownTraceModuleHashException |
| Thrown when attempting to access a trace module with an unknown hash. More... | |
| class | arion_exception::CantReachTraceAddrException |
| Thrown when a trace address can't be reached. More... | |
| class | arion_exception::CantReachTraceOffException |
| Thrown when a trace file can't be reached at the specified offset. More... | |
| class | arion_exception::TracerAlreadyEnabledException |
| Thrown when attempting to enable a tracer that is already enabled. More... | |
| class | arion_exception::TracerAlreadyDisabledException |
| Thrown when trying to disable a tracer that is already disabled. More... | |
| class | arion_exception::MemoryRecorderAlreadyStartedException |
| Thrown when attempting to start a MemoryRecorder that is already started. More... | |
| class | arion_exception::MemoryRecorderAlreadyStoppedException |
| Thrown when trying to stop a MemoryRecorder that is already stopped. More... | |
| class | arion_exception::WrongLogLevelException |
| Thrown when the specified log level does not exist. More... | |
| class | arion_exception::TooManyLoggersException |
| Thrown when the maximum number of loggers has been reached. More... | |
Namespaces | |
| namespace | arion_exception |
Macros | |
| #define | ARION_EXCEPTION_MAX_FRAMES 64 |
| #define ARION_EXCEPTION_MAX_FRAMES 64 |