Replace libvoyager.cpp

Voager_EPTHook_Injector
Zero Hu 2 years ago
parent fc4e17abb7
commit 0575b3c023

@ -27,6 +27,7 @@ auto voyager::init() -> vmxroot_error_t
auto result = hypercall(VMEXIT_KEY, vmexit_command_t::init_page_tables, nullptr);
if (result != vmxroot_error_t::error_success)
return result;
//hypercall(VMEXIT_KEY, vmexit_command_t::DiablePCID, nullptr);
}
}
@ -34,9 +35,44 @@ auto voyager::init() -> vmxroot_error_t
return vmxroot_error_t::error_success;
}
auto voyager::addShadowPage(guest_virt_t uAddr, guest_virt_t uPageRead, guest_virt_t uPageExecute)->vmxroot_error_t
{
command_t command = {0};
command.addShadowPage = { uAddr,uPageRead,uPageExecute };
return hypercall(VMEXIT_KEY,vmexit_command_t::add_shadow_page, &command);
}
auto voyager::addShadowPagePhys(guest_virt_t uAddr, guest_phys_t uPageRead, guest_phys_t uPageExecute)->vmxroot_error_t
{
command_t command = { 0 };
command.addShadowPagePhys = { uAddr,uPageRead,uPageExecute };
return hypercall(VMEXIT_KEY, vmexit_command_t::add_shadow_page_phys, &command);
}
auto voyager::deleteShadowPage(guest_virt_t uAddr)->vmxroot_error_t
{
command_t command = { 0 };
command.deleteShaowPage = { uAddr };
return hypercall(VMEXIT_KEY, vmexit_command_t::delete_shadow_page, &command);
}
auto voyager::unHideShadowPage(guest_virt_t uAddr)->vmxroot_error_t
{
command_t command = { 0 };
command.unHideShaowPage = { uAddr };
return hypercall(VMEXIT_KEY, vmexit_command_t::unhide_shadow_page, &command);
}
auto voyager::disablePageProtection(guest_phys_t phys_addr)->vmxroot_error_t
{
command_t command = { 0 };
command.disablePageProtection.phys_addr = phys_addr;
return hypercall(VMEXIT_KEY, vmexit_command_t::disable_page_protection, &command);
}
auto voyager::current_dirbase()->guest_phys_t
{
command_t command;
command_t command = {0};
auto result = hypercall(VMEXIT_KEY, vmexit_command_t::get_dirbase, &command);
if (result != vmxroot_error_t::error_success)
@ -47,7 +83,7 @@ auto voyager::current_dirbase()->guest_phys_t
auto voyager::translate(guest_virt_t virt_addr) -> guest_phys_t
{
command_t command;
command_t command = {0};
command.translate_virt.virt_src = virt_addr;
const auto result = hypercall(VMEXIT_KEY, vmexit_command_t::translate, &command);
@ -60,14 +96,14 @@ auto voyager::translate(guest_virt_t virt_addr) -> guest_phys_t
auto voyager::read_phys(guest_phys_t phys_addr, guest_virt_t buffer, u64 size) -> vmxroot_error_t
{
command_t command;
command_t command = {0};
command.copy_phys = { phys_addr, buffer, size };
return hypercall(VMEXIT_KEY, vmexit_command_t::read_guest_phys, &command);
}
auto voyager::write_phys(guest_phys_t phys_addr, guest_virt_t buffer, u64 size) -> vmxroot_error_t
{
command_t command;
command_t command = {0};
command.copy_phys = { phys_addr, buffer, size };
return hypercall(VMEXIT_KEY, vmexit_command_t::write_guest_phys, &command);
}
@ -75,7 +111,7 @@ auto voyager::write_phys(guest_phys_t phys_addr, guest_virt_t buffer, u64 size)
auto voyager::copy_virt(guest_phys_t dirbase_src, guest_virt_t virt_src, guest_phys_t dirbase_dest,
guest_virt_t virt_dest, u64 size) -> vmxroot_error_t
{
command_t command;
command_t command = {0};
command.copy_virt = { dirbase_src, virt_src, dirbase_dest, virt_dest, size };
return hypercall(VMEXIT_KEY, vmexit_command_t::copy_guest_virt, &command);
}
Loading…
Cancel
Save