enable refactored api_set for windows platform

This commit is contained in:
robert-yates
2024-12-24 01:31:51 +01:00
parent 8ed299b683
commit c07fb2ca86
2 changed files with 12 additions and 3 deletions

View File

@@ -550,6 +550,13 @@ typedef struct _TEB64
ARRAY_CONTAINER<ULONG, 2> Rcu;
} TEB64, *PTEB64;
#ifdef OS_WINDOWS
inline TEB64* NtCurrentTeb64(VOID)
{
return (TEB64*)__readgsqword(FIELD_OFFSET(EMU_NT_TIB64, Self));
}
#endif
#pragma pack(push, 4)
typedef struct _KSYSTEM_TIME
{

View File

@@ -144,10 +144,12 @@ namespace
emulator_object<API_SET_NAMESPACE> build_api_set_map(x64_emulator& emu, emulator_allocator& allocator)
{
// TODO: fix
// const auto& orig_api_set_map = *NtCurrentTeb()->ProcessEnvironmentBlock->ApiSetMap;
// return clone_api_set_map(emu, allocator, orig_api_set_map);
#ifdef OS_WINDOWS
const auto& orig_api_set_map = *NtCurrentTeb64()->ProcessEnvironmentBlock->ApiSetMap;
return clone_api_set_map(emu, allocator, orig_api_set_map);
#else
return clone_api_set_map(emu, allocator, {});
#endif
}
emulator_allocator create_allocator(emulator& emu, const size_t size)