From 8cd283617a85ac35314be5d7220062090e155167 Mon Sep 17 00:00:00 2001 From: momo5502 Date: Sat, 14 Sep 2024 15:38:02 +0200 Subject: [PATCH] More progress --- src/windows_emulator/syscalls.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/windows_emulator/syscalls.cpp b/src/windows_emulator/syscalls.cpp index c17d418a..64e73074 100644 --- a/src/windows_emulator/syscalls.cpp +++ b/src/windows_emulator/syscalls.cpp @@ -921,7 +921,8 @@ namespace return STATUS_SUCCESS; } - if (info_class == ProcessEnclaveInformation) + if (info_class == ProcessEnclaveInformation + || info_class == ProcessMitigationPolicy) { return STATUS_NOT_SUPPORTED; } @@ -1336,9 +1337,15 @@ namespace return STATUS_NOT_SUPPORTED; } + NTSTATUS handle_NtGdiInit2() + { + puts("NtGdiInit2 not supported"); + return STATUS_NOT_SUPPORTED; + } + NTSTATUS handle_NtAlpcSendWaitReceivePort(const syscall_context& c, const uint64_t port_handle, - const ULONG flags, - const emulator_object send_message, + const ULONG /*flags*/, + const emulator_object /*send_message*/, const emulator_object /*send_message_attributes*/ , const emulator_object receive_message, @@ -1353,6 +1360,12 @@ namespace return STATUS_INVALID_HANDLE; } + if (port->name != L"\\Windows\\ApiPort") + { + puts("!!! BAD PORT"); + return STATUS_NOT_SUPPORTED; + } + const emulator_object data{c.emu, receive_message.value() + 0x48}; const auto dest = data.read(); const auto base = reinterpret_cast(dest.Base); @@ -1667,6 +1680,7 @@ void syscall_dispatcher::add_handlers() add_handler(NtQueryInformationThread); add_handler(NtQueryWnfStateNameInformation); add_handler(NtAlpcSendWaitReceivePort); + add_handler(NtGdiInit2); #undef add_handler