Introduce windows emulation context

This fixes #6
This commit is contained in:
momo5502
2024-09-13 13:48:21 +02:00
parent 53eeb988a7
commit 370665b520
6 changed files with 703 additions and 568 deletions

View File

@@ -100,6 +100,8 @@ struct process_context
mapped_module* ntdll{};
mapped_module* win32u{};
uint64_t ki_user_exception_dispatcher{};
uint64_t shared_section_size{};
handle_store<handle_types::event, event> events{};
@@ -108,8 +110,6 @@ struct process_context
std::map<uint16_t, std::wstring> atoms{};
emulator_allocator gs_segment;
bool verbose{false};
void serialize(utils::buffer_serializer& buffer) const
{
buffer.write(this->executed_instructions);
@@ -123,6 +123,8 @@ struct process_context
buffer.write(this->ntdll->image_base);
buffer.write(this->win32u->image_base);
buffer.write(this->ki_user_exception_dispatcher);
buffer.write(this->shared_section_size);
buffer.write(this->events);
buffer.write(this->files);
@@ -148,6 +150,8 @@ struct process_context
this->ntdll = this->module_manager.find_by_address(ntdll_base);
this->win32u = this->module_manager.find_by_address(win32u_base);
buffer.read(this->ki_user_exception_dispatcher);
buffer.read(this->shared_section_size);
buffer.read(this->events);
buffer.read(this->files);