정적 드라이버 검증 도구 소개
SDV(정적 드라이버 검증 도구)는 컴파일 시간에 실행되는 정적 확인 도구입니다. 소스 코드를 상징적으로 실행하여 드라이버 코드의 경로를 탐색하여 운영 체제의 상태 및 드라이버의 초기 상태에 대해 가능한 가장 적은 가정을 만듭니다. 따라서 SDV는 기존 테스트에서 누락된 경로에서 코드를 실행할 수 있습니다.
SDV에는 드라이버와 운영 체제 커널 간의 적절한 상호 작용을 정의하는 규칙 집합이 포함되어 있습니다. 확인 중에 SDV는 드라이버 코드와 해당 코드가 사용하는 라이브러리 코드의 적용 가능한 모든 분기를 검사하고 드라이버가 규칙을 위반했음을 증명하려고 합니다. SDV가 위반을 증명하지 못하면 드라이버가 규칙을 준수하고 확인을 통과한다고 보고합니다.
이 단원에는 다음이 포함됩니다.
Important
SDV는 더 이상 지원되지 않으며 Windows 24H2 WDK 또는 EWDK 릴리스에서는 SDV를 사용할 수 없습니다. 빌드 26017보다 최신의 WDK에서는 사용할 수 없으며 Windows 24H2 RTM WDK에는 포함되지 않습니다.
SDV는 WDK(Windows 드라이버 키트) 다운로드에서 Visual Studio 빌드 도구 17.1.5와 함께 Windows 11 버전 22H2 EWDK(2023년 10월 24일 릴리스)를 다운로드하여 계속 사용할 수 있습니다. SDV를 실행하는 데 엔터프라이즈 WDK만 사용하는 것이 좋습니다. 최신 버전의 Visual Studio와 함께 표준 WDK의 이전 버전을 사용하는 것은 권장되지 않습니다. 따라서 분석 실패가 발생할 수 있습니다.
앞으로 CodeQL은 드라이버의 기본 정적 분석 도구가 될 것입니다. CodeQL은 코드를 쿼리할 데이터베이스로 처리하는 강력한 쿼리 언어를 제공하므로 특정 동작, 패턴 등에 대한 쿼리를 간단하게 작성할 수 있습니다.
CodeQL 사용에 대한 자세한 내용은 CodeQL 및 정적 도구 로고 테스트를 참조하세요.