Bareflank / hypervisor

lightweight hypervisor SDK written in C++ with support for Windows, Linux and UEFI
Other
1.36k stars 207 forks source link

does it support vt hook? #940

Closed eaglesharkmayonnaise closed 3 years ago

eaglesharkmayonnaise commented 3 years ago

like : https://github.com/tandasat/DdiMon

eaglesharkmayonnaise commented 3 years ago

C:\Users\noname1\Desktop\111\hypervisor\bsl\build>make Error: can't read makefile 'makefile' C:\Users\noname1\Desktop\111\hypervisor\bsl\build>ninja [7/29] Performing update step for 'ext_cross_compile' -- Checking for changes [8/29] Performing update step for 'mk_cross_compile' -- Checking for changes [9/29] Performing update step for 'efi_cross_compile' -- Checking for changes [15/29] Performing configure step for 'efi_cross_compile' -- The C compiler identification is Clang 11.0.0 with GNU-like command-line -- The ASM compiler identification is Clang -- Found assembler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/Llvm/x64/bin/clang.exe -- Detecting C compiler ABI info -- Detecting C compiler ABI info - failed -- Configuring done -- Generating done -- Build files have been written to: C:/Users/noname1/Desktop/111/hypervisor/bsl/build/efi_cross_compile/build [17/29] Performing build step for 'efi_cross_compile' [1/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/set_gdt_descriptor.c.obj [2/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/promote.S.obj [3/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/free_root_vp_state.c.obj [4/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/alloc_mk_root_page_table.c.obj [5/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/alloc_and_copy_mk_state.c.obj [6/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_wrmsr.S.obj [7/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_sgdt.S.obj [8/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/free_mk_code_aliases.c.obj [9/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_ses.S.obj [10/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_sidt.S.obj [11/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/serial_init.c.obj [12/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/dump_mk_state.c.obj [13/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_sgs.S.obj [14/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_sfs.S.obj [15/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/free_mk_state.c.obj [16/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/send_command_report_on.c.obj [17/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_sldtr.S.obj [18/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/dump_mk_code_aliases.c.obj [19/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_sss.S.obj [20/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_str.S.obj [21/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/alloc_pdt.c.obj [22/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/free_pdpt.c.obj [23/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/dump_mk_root_page_table.c.obj [24/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/free_pml4t.c.obj [25/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/free_mk_root_page_table.c.obj [26/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intel/intrinsic_vmxon.S.obj [27/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/dump_root_vp_state.c.obj [28/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/alloc_pt.c.obj [29/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/send_command_stop.c.obj [30/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/get_mk_huge_pool_addr.c.obj [31/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_mk_elf_file.c.obj [32/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/g_root_vp_state.c.obj [33/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/g_mk_state.c.obj [34/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_root_vp_state.c.obj [35/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/get_gdt_descriptor_attrib.c.obj [36/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_mk_args.c.obj [37/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_4k_page_rw.c.obj [38/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/get_mk_page_pool_addr.c.obj [39/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_mk_page_pool.c.obj [40/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intel/disable_interrupts.S.obj [41/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_ext_elf_files.c.obj [42/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/get_gdt_descriptor_base.c.obj [43/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_mk_stack.c.obj [44/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_mk_state.c.obj [45/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intel/enable_interrupts.S.obj [46/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_mk_debug_ring.c.obj [47/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/send_command_report_off.c.obj [48/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_mk_elf_segments.c.obj [49/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_4k_page_rx.c.obj [50/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_mk_code_aliases.c.obj [51/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/serial_write.c.obj [52/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intel/intrinsic_vmxoff.S.obj [53/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_mk_huge_pool.c.obj [54/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/map_4k_page.c.obj [55/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/get_gdt_descriptor_limit.c.obj [56/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/intel/enable_hve.c.obj [57/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/intel/disable_hve.c.obj [58/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/intel/check_for_hve_support.c.obj [59/124] Building C object loader/CMakeFiles/bareflank_efi_loader.dir/src/entry.c.obj [60/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/free_mk_elf_segments.c.obj [61/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/alloc_and_copy_mk_elf_file_from_user.c.obj [62/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/alloc_mk_args.c.obj [63/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/free_mk_huge_pool.c.obj [64/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/alloc_mk_debug_ring.c.obj [65/124] Building C object loader/CMakeFiles/bareflank_efi_loader.dir/src/platform.c.obj [66/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/alloc_mk_huge_pool.c.obj [67/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/alloc_and_copy_mk_elf_segments.c.obj [68/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/free_ext_elf_files.c.obj [69/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/alloc_and_copy_ext_elf_files_from_user.c.obj [70/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/free_mk_debug_ring.c.obj [71/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/alloc_mk_stack.c.obj [72/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/alloc_mk_page_pool.c.obj [73/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/loader_fini.c.obj [74/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/start_vmm_per_cpu.c.obj [75/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/free_mk_elf_file.c.obj [76/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/dump_mk_args.c.obj [77/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/dump_mk_elf_segments.c.obj [78/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/dump_mk_elf_file.c.obj [79/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/dump_ext_elf_files.c.obj [80/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/dump_mk_page_pool.c.obj [81/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/dump_mk_huge_pool.c.obj [82/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/loader_init.c.obj [83/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/dump_vmm.c.obj [84/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/dump_mk_debug_ring.c.obj [85/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/g_mk_stack.c.obj [86/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/dump_mk_stack.c.obj [87/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_scs.S.obj [88/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/free_mk_args.c.obj [89/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/free_pdt.c.obj [90/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/g_mk_root_page_table.c.obj [91/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/set_idt_descriptor.c.obj [92/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/alloc_and_copy_mk_code_aliases.c.obj [93/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/alloc_pdpt.c.obj [94/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/g_mk_code_aliases.c.obj [95/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/g_mk_debug_ring.c.obj [96/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_sds.S.obj [97/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/free_mk_page_pool.c.obj [98/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/g_mk_page_pool.c.obj [99/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/g_mk_elf_segments.c.obj [100/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/g_mk_elf_file.c.obj [101/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/g_mk_args.c.obj [102/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_scr0.S.obj [103/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/free_mk_stack.c.obj [104/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/x64/alloc_and_copy_root_vp_state.c.obj [105/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/g_mk_huge_pool.c.obj [106/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/g_ext_elf_files.c.obj [107/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/vmm_status.c.obj [108/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_outb.S.obj [109/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/stop_vmm_per_cpu.c.obj [110/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_scr4.S.obj [111/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_rdmsr.S.obj [112/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/stop_vmm.c.obj [113/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/demote.S.obj [114/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/esr_default.S.obj [115/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/esr_df.S.obj [116/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/esr_gpf.S.obj [117/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/stop_and_free_the_vmm.c.obj [118/124] Building C object loader/CMakeFiles/bareflank_efiloader.dir/C/Users/noname1/Desktop/111/hypervisor/loader/src/start_vmm.c.obj [119/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_cpuid.S.obj [120/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_inb.S.obj [121/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/esr_pf.S.obj [122/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/esr_nmi.S.obj [123/124] Building ASM object loader/CMakeFiles/bareflank_efi_loader.dir/src/x64/intrinsic_lcr4.S.obj [124/124] Linking C executable loader\bareflank_efi_loader [18/29] Performing install step for 'efi_cross_compile' [0/1] Install the project... -- Install configuration: "DEBUG" -- Installing: C:/Users/noname1/Desktop/111/hypervisor/bsl/build/efi_cross_compile/bin/bareflank_efi_loader [20/29] Performing configure step for 'ext_cross_compile' -- The CXX compiler identification is Clang 11.0.0 with GNU-like command-line -- The ASM compiler identification is Clang -- Found assembler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/Llvm/x64/bin/clang.exe -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - failed -- Configuring done -- Generating done -- Build files have been written to: C:/Users/noname1/Desktop/111/hypervisor/bsl/build/ext_cross_compile/build [22/29] Performing build step for 'ext_cross_compile' [1/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_callback_op_register_fail_impl.S.obj [2/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_control_op_exit_impl.S.obj [3/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_callback_op_register_bootstrap_impl.S.obj [4/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_callback_op_register_vmexit_impl.S.obj [5/77] Building CXX object runtime/CMakeFiles/runtime.dir/src/_start.cpp.obj [6/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_callback_op_wait_impl.S.obj [7/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_debug_op_dump_vm_impl.S.obj [8/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_debug_op_dump_vp_impl.S.obj [9/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_debug_op_dump_vps_impl.S.obj [10/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_debug_op_out_impl.S.obj [11/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_debug_op_dump_vmexit_log_impl.S.obj [12/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_handle_op_close_handle_impl.S.obj [13/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_debug_op_write_str_impl.S.obj [14/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_debug_op_write_c_impl.S.obj [15/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_handle_op_open_handle_impl.S.obj [16/77] Linking CXX static library runtime\libruntime.a [17/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_intrinsic_op_read_msr_impl.S.obj [18/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_intrinsic_op_write_msr_impl.S.obj [19/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_mem_op_virt_to_phys_impl.S.obj [20/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_mem_op_alloc_page_impl.S.obj [21/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_rax_impl.S.obj [22/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_rbx_impl.S.obj [23/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_rdx_impl.S.obj [24/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_rcx_impl.S.obj [25/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_rbp_impl.S.obj [26/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_rdi_impl.S.obj [27/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_rsi_impl.S.obj [28/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_r9_impl.S.obj [29/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_r8_impl.S.obj [30/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_r10_impl.S.obj [31/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_r13_impl.S.obj [32/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_r15_impl.S.obj [33/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_r14_impl.S.obj [34/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_r12_impl.S.obj [35/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_r11_impl.S.obj [36/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_rsi_impl.S.obj [37/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_rbp_impl.S.obj [38/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_rdx_impl.S.obj [39/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_rax_impl.S.obj [40/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_rdi_impl.S.obj [41/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_rcx_impl.S.obj [42/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_rbx_impl.S.obj [43/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_r8_impl.S.obj [44/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_r10_impl.S.obj [45/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_r12_impl.S.obj [46/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_r9_impl.S.obj [47/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_r13_impl.S.obj [48/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_r11_impl.S.obj [49/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_thread_id_impl.S.obj [50/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vm_op_create_vm_impl.S.obj [51/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_r15_impl.S.obj [52/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vm_op_destroy_vm_impl.S.obj [53/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_tls_set_r14_impl.S.obj [54/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_create_vps_impl.S.obj [55/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_advance_ip_and_run_current_impl.S.obj [56/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vp_op_create_vp_impl.S.obj [57/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vp_op_destroy_vp_impl.S.obj [58/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_advance_ip_impl.S.obj [59/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_read_reg_impl.S.obj [60/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_destroy_vps_impl.S.obj [61/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_read8_impl.S.obj [62/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_init_as_root_impl.S.obj [63/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_promote_impl.S.obj [64/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_read16_impl.S.obj [65/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_read32_impl.S.obj [66/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_write64_impl.S.obj [67/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_write8_impl.S.obj [68/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_run_current_impl.S.obj [69/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_run_impl.S.obj [70/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_write_reg_impl.S.obj [71/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_read64_impl.S.obj [72/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_write32_impl.S.obj [73/77] Building ASM object syscall/CMakeFiles/syscall.dir/src/x64/bf_vps_op_write16_impl.S.obj [74/77] Building ASM object example/default/CMakeFiles/example_default.dir/x64/intrinsic_cpuid.S.obj [75/77] Linking ASM static library syscall\libsyscall.a [76/77] Building CXX object example/default/CMakeFiles/example_default.dir/main.cpp.obj [77/77] Linking CXX executable example\default\example_default [23/29] Performing install step for 'ext_cross_compile' [0/1] Install the project... -- Install configuration: "DEBUG" -- Installing: C:/Users/noname1/Desktop/111/hypervisor/bsl/build/ext_cross_compile/bin/example_default [25/29] Performing configure step for 'mk_cross_compile' -- The CXX compiler identification is Clang 11.0.0 with GNU-like command-line -- The ASM compiler identification is Clang -- Found assembler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/Llvm/x64/bin/clang.exe -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - failed -- Configuring done -- Generating done -- Build files have been written to: C:/Users/noname1/Desktop/111/hypervisor/bsl/build/mk_cross_compile/build [27/29] Performing build step for 'mk_cross_compile' [1/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/__stack_chk_fail.S.obj [2/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/fast_fail_entry.S.obj [3/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/call_ext.S.obj [4/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/smap_guard_t.S.obj [5/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/dispatch_syscall_entry.S.obj [6/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/dispatch_esr_entry.S.obj [7/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/get_current_tls.S.obj [8/24] Building CXX object kernel/CMakeFiles/kernel.dir/src/msg_halt.cpp.obj [9/24] Building CXX object kernel/CMakeFiles/kernel.dir/src/msg_stack_chk_fail.cpp.obj [10/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/mk_main_entry.S.obj [11/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/set_esr.S.obj [12/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/return_to_mk.S.obj [13/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/return_to_vmexit_loop.S.obj [14/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/serial_write.S.obj [15/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/return_to_current_fast_fail.S.obj [16/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/intel/intrinsic_t.S.obj [17/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/vmexit_loop_entry.S.obj [18/24] Building ASM object kernel/CMakeFiles/kernel.dir/src/x64/intel/promote.S.obj [19/24] Building CXX object kernel/CMakeFiles/kernel.dir/src/fast_fail_trampoline.cpp.obj [20/24] Building CXX object kernel/CMakeFiles/kernel.dir/src/vmexit_loop_trampoline.cpp.obj [21/24] Building CXX object kernel/CMakeFiles/kernel.dir/src/dispatch_esr_trampoline.cpp.obj [22/24] Building CXX object kernel/CMakeFiles/kernel.dir/src/mk_main_trampoline.cpp.obj [23/24] Building CXX object kernel/CMakeFiles/kernel.dir/src/dispatch_syscall_trampoline.cpp.obj [24/24] Linking CXX executable kernel\kernel [28/29] Performing install step for 'mk_cross_compile' [0/1] Install the project... -- Install configuration: "DEBUG" -- Installing: C:/Users/noname1/Desktop/111/hypervisor/bsl/build/mk_cross_compile/bin/kernel [29/29] Completed 'mk_cross_compile'

C:\Users\noname1\Desktop\111\hypervisor\bsl\build>



I did not find any sys file generation, I tried to compile with loader.sln, but there were a lot of errors
eaglesharkmayonnaise commented 3 years ago

i want to hook NtCreateFile(and any other driver module functions)...

rianquinn commented 3 years ago

To get the build system to compile the "loader" which is the driver itself, you need to run the ninja driver_ commands that are in the README.md. Specifically, run

ninja driver_build     # build the loader
ninja driver_load      # load the resulting driver into Windows
ninja driver_unload    # unload the resulting driver
ninja driver_clean      # clean the build system
ninja driver_quick      # performs all 4 steps above

As for whether or not it can hook, that is up to you. We provide the SDK, from there you need to add your own logic. I am currently working on an example of EPT/NP that will provide you with most of what you need, and we have GSoC project with the Honeynet Project this year to actually create an example that implements the same functionality as DdiMon, so likely by August time frame, everything you need to hook a Windows Kernel API would be in that example.

eaglesharkmayonnaise commented 3 years ago

it's really exciting. one reason for choosing hypervisor is that it has reliable community support, which does not seem to be a toy (example) project.👍

rianquinn commented 3 years ago

If you have any more questions, feel free to reach out

romanholidaypancakes commented 2 years ago

@rianquinn hi, is there anything about vt hook now?