GDT fixes

This commit is contained in:
momo5502
2025-03-29 08:54:53 +01:00
parent af6492be6d
commit 637ed75b8c
5 changed files with 27 additions and 4 deletions

View File

@@ -16,10 +16,8 @@ namespace
void setup_gdt(x64_emulator& emu, memory_manager& memory)
{
// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)
constexpr uint64_t gdtr[4] = {0, GDT_ADDR, GDT_LIMIT, 0};
emu.write_register(x64_register::gdtr, &gdtr, sizeof(gdtr));
memory.allocate_memory(GDT_ADDR, GDT_LIMIT, memory_permission::read);
emu.load_gdt(GDT_ADDR, GDT_LIMIT);
emu.write_memory<uint64_t>(GDT_ADDR + 6 * (sizeof(uint64_t)), 0xEFFE000000FFFF);
emu.reg<uint16_t>(x64_register::cs, 0x33);
@@ -33,7 +31,7 @@ void process_context::setup(x64_emulator& emu, memory_manager& memory, const app
const mapped_module& executable, const mapped_module& ntdll,
const apiset::container& apiset_container)
{
// setup_gdt(emu, memory);
setup_gdt(emu, memory);
this->kusd.setup();