#pragma once #include "emulator_utils.hpp" struct mapped_binary { uint64_t image_base{}; uint64_t size_of_image{}; std::unordered_map exports{}; }; struct event { bool signaled{}; EVENT_TYPE type{}; bool is_signaled() { const auto res = this->signaled; if (this->type == SynchronizationEvent) { this->signaled = false; } return res; } }; struct process_context { emulator_object teb{}; emulator_object peb{}; emulator_object process_params{}; emulator_object kusd{}; mapped_binary executable{}; mapped_binary ntdll{}; std::vector events{}; emulator_allocator gs_segment{}; };