
관리자 권한이나 커널 드라이버 없이 HVCI(하이퍼바이저 보호 코드 무결성) 보호 환경에서 임의의 커널 읽기/쓰기/함수 호출을 달성합니다.
ZeroHVCI는 관리자 권한이나 커널 드라이버 없이 HVCI(Hypervisor-Protected Code Integrity, 하이퍼바이저 보호 코드 무결성) 보호 환경에서 임의의 커널 읽기/쓰기/함수 호출을 수행합니다.

ZeroHVCI를 시작하려면 이 저장소를 클론하고 프로젝트를 빌드하면 됩니다.
//
// Read kernel memory example:
//
ReadKernelMemory(source_address, buffer_address, size);
//
// Write kernel memory example:
//
WriteKernelMemory(source_address, buffer_address, size);
//
// Kernel function calling example via name:
//
KF::CallKernelFunctionViaName<kernel_param_type1, kernel_param_type2, kernel_param_type3>(
"kernel_function_name",
param1,
param2,
param3);
//
// ExAllocatePool example:
//
KF::CallKernelFunctionViaName<PVOID, POOL_TYPE, SIZE_T>("ExAllocatePool", PoolType, Size);
//
// memcpy example:
//
KF::CallKernelFunctionViaName<PVOID, PVOID, PVOID, SIZE_T>("memcpy", Dst, Src, Size);
//
// PsLookupProcessByProcessId example:
//
PEPROCESS Process;
KF::CallKernelFunctionViaName<NTSTATUS, HANDLE, PEPROCESS*>("PsLookupProcessByProcessId", ProcessHandle, &Process);
이를 가능하게 하는 두 가지 주요 프로젝트가 있습니다.
공개된 CVE가 HVCI 보호 환경에서 커널 액세스를 위해 어떻게 연쇄적으로 사용될 수 있는지 보여줍니다. Windows 커널 무결성과 HVCI 우회 완화를 연구하는 보안 연구자에게 유용합니다.
KernelForge를 제공한 Cr4sh
POC와 POC2를 제공한 varwara
강연을 제공한 Eric Egsgard
교육 및 승인된 보안 연구 목적으로만 사용하십시오. 소유하지 않았거나 테스트에 대한 명시적 허가가 없는 시스템에는 사용하지 마십시오. 오용에 대한 책임은 지지 않습니다. 사용에 따른 위험은 본인이 감수하십시오.
언급된 모든 제품 이름, 상표 및 등록 상표는 각각 해당 소유자의 자산입니다.