
Windowsシステム上でPatchGuardが無効化されているかどうかを確認するために、SetVariableバックドアに問い合わせてEfiGuardのDSEバイパスを検出するユーザーモードツール。
パッチガードがEfiGuardによって無効化されたかどうかを確認する、最も単純な方法。
efiguardは実行時にSetVariableのバックドアを残します。ユーザーモードからntoskrnlベースの2バイトを読み取るように要求するだけで、バックドアを呼び出せます。戻り値がMZであれば、バックドアは生きており、efiguardが機能してパッチガードは無効になっています。
この方法は、ユーザーがデフォルトのDSEバイパス方式(DSE_DISABLE_SETVARIABLE_HOOK)を選択した場合にのみ機能します。これはデフォルトです。代わりにDSE_DISABLE_AT_BOOTが選択された場合、フックはExitBootServicesで削除され、ユーザーモードから検出する方法はありません。
管理者権限とSeSystemEnvironmentPrivilegeが必要です。
cl /EHsc src/main.cpp /link ntdll.lib psapi.lib
src/main.cpp