diff --git a/.gitignore b/.gitignore
index d163863..b1d498d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-build/
\ No newline at end of file
+build/
+*.aps
\ No newline at end of file
diff --git a/README.md b/README.md
index 69144d3..dbe6e11 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,11 @@
-# secret
\ No newline at end of file
+# secret
+
+Hypervisor experiments.
+Nothing serious. Yet.
+
+## Credits
+
+SimpleVisor
+gbhv
+
+Icon
\ No newline at end of file
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 46d1a8c..3140a74 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,4 +1,3 @@
add_subdirectory(shared)
add_subdirectory(driver)
-add_subdirectory(driver_file)
add_subdirectory(runner)
\ No newline at end of file
diff --git a/src/driver/CMakeLists.txt b/src/driver/CMakeLists.txt
index 29aca42..63f27f4 100644
--- a/src/driver/CMakeLists.txt
+++ b/src/driver/CMakeLists.txt
@@ -28,3 +28,18 @@ target_link_libraries(driver
ia32_doc
shared
)
+
+################################################
+
+set(DRIVER_FILE "$")
+
+file (GENERATE
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/$>/driver_file.h"
+ CONTENT "#define DRIVER_FILE \"${DRIVER_FILE}\"\n"
+)
+
+add_library(driver_file INTERFACE)
+
+target_include_directories(driver_file INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/$>)
+
+add_dependencies(driver_file driver)
diff --git a/src/driver/hypervisor.cpp b/src/driver/hypervisor.cpp
index b6211c3..23714ec 100644
--- a/src/driver/hypervisor.cpp
+++ b/src/driver/hypervisor.cpp
@@ -9,6 +9,9 @@
#include "assembly.hpp"
#include "string.hpp"
+#define DPL_USER 3
+#define DPL_SYSTEM 0
+
namespace
{
hypervisor* instance{nullptr};
@@ -163,7 +166,7 @@ bool hypervisor::install_ept_hook(const void* destination, const void* source, c
vmx::ept_translation_hint* translation_hint)
{
volatile long failures = 0;
- thread::dispatch_on_all_cores([&]()
+ thread::dispatch_on_all_cores([&]
{
if (!this->try_install_ept_hook_on_core(destination, source, length, translation_hint))
{
@@ -176,7 +179,7 @@ bool hypervisor::install_ept_hook(const void* destination, const void* source, c
void hypervisor::disable_all_ept_hooks() const
{
- thread::dispatch_on_all_cores([&]()
+ thread::dispatch_on_all_cores([&]
{
auto* vm_state = this->get_current_vm_state();
if (!vm_state)
@@ -203,7 +206,7 @@ void hypervisor::enable()
const auto cr3 = __readcr3();
volatile long failures = 0;
- thread::dispatch_on_all_cores([&]()
+ thread::dispatch_on_all_cores([&]
{
if (!this->try_enable_core(cr3))
{
@@ -332,7 +335,8 @@ vmx::gdt_entry convert_gdt_entry(const uint64_t gdt_base, const uint16_t selecto
return result;
}
- const auto* gdt_entry = reinterpret_cast(gdt_base + static_cast(selector.index) * 8);
+ const auto* gdt_entry = reinterpret_cast(gdt_base + static_cast(selector.index) *
+ 8);
result.selector = selector;
result.limit = __segmentlimit(selector.flags);
@@ -377,16 +381,13 @@ void vmx_handle_invd()
__wbinvd();
}
-#define DPL_USER 3
-#define DPL_SYSTEM 0
-
void vmx_handle_cpuid(vmx::guest_context& guest_context)
{
INT32 cpu_info[4];
- if ((guest_context.vp_regs->Rax == 0x41414141) &&
- (guest_context.vp_regs->Rcx == 0x42424242) &&
- ((read_vmx(VMCS_GUEST_CS_SELECTOR) & SEGMENT_ACCESS_RIGHTS_DESCRIPTOR_PRIVILEGE_LEVEL_MASK) == DPL_SYSTEM))
+ if (guest_context.vp_regs->Rax == 0x41414141 &&
+ guest_context.vp_regs->Rcx == 0x42424242 &&
+ (read_vmx(VMCS_GUEST_CS_SELECTOR) & SEGMENT_ACCESS_RIGHTS_DESCRIPTOR_PRIVILEGE_LEVEL_MASK) == DPL_SYSTEM)
{
guest_context.exit_vm = true;
return;
diff --git a/src/driver_file/CMakeLists.txt b/src/driver_file/CMakeLists.txt
deleted file mode 100644
index b1acf44..0000000
--- a/src/driver_file/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-set(DRIVER_FILE "$")
-
-file (GENERATE
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/$>/driver_file.h"
- CONTENT "#define DRIVER_FILE \"${DRIVER_FILE}\"\n"
-)
-
-add_library(driver_file INTERFACE)
-
-target_include_directories(driver_file INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/$>)
-
-add_dependencies(driver_file driver)