
사용자 모드 도구로, SetVariable 백도어를 조회하여 EfiGuard의 DSE 우회를 감지하고 Windows 시스템에서 PatchGuard가 비활성화되었는지 확인합니다.
EfiGuard가 patchguard를 죽였는지 확인하는 가장 멍청한 방법입니다.
efiguard는 런타임에 SetVariable 백도어를 남깁니다. 사용자 모드에서 ntoskrnl 베이스의 2바이트를 읽도록 요청하여 확인합니다. MZ가 반환되면 백도어가 활성화된 것이며, efiguard가 제 역할을 한 것이고 pg는 죽은 것입니다.
사용자가 기본 DSE 우회 방법(DSE_DISABLE_SETVARIABLE_HOOK)을 선택한 경우에만 작동합니다. 이는 기본값입니다. 대신 DSE_DISABLE_AT_BOOT를 선택한 경우, ExitBootServices에서 후크가 제거되어 사용자 모드에서 감지할 수 있는 것이 없습니다.
관리자 권한 및 SeSystemEnvironmentPrivilege가 필요합니다.
cl /EHsc src/main.cpp /link ntdll.lib psapi.lib
src/main.cpp