반응형

미니필터 드라이버 서비스 정상 구동 -> 인증서 서명 + 마이크로소프트 교차 서명 반드시 필요

 

 

1. App Certification Kit 설치

(https://learn.microsoft.com/ko-kr/windows/uwp/debug-test-perf/windows-app-certification-kit)

2. CMD 관리자 모드 -> App Certification Kit 설치 경로

3. SignTool.exe (서명 도구) 이용하여 서명

C:\> signtoll.exe [COMMAND] [OPTIONS] [FILE_NAME | ....]

    [COMMAND] 

             - catdb : 카탈로그 파일 추가 혹은 제거

             - sign : 디지털 서명 수행

             - timestamp : 타임스탬프 기록

             - verify : 디지털 서명 확인

 

    [OPTIONS]

            - /ac :  서명 추가, 주 서명 없으면 이 서명을 기본 서명으로 대체

            - /n   :  서명 인증서의 주체 이름 지정

            - /fd  :  파일 다이제스트 알고리즘 지정 (default : sha1)

            - /tr  :  RFC 3161 타임스팸프 서버 URL 지정  

C:\> signtool.exe sign /v /ac "인증서파일" /n "주체이름" /fd "알고리즘" /tr "타임스탬프의 서버"  "드라이버파일명"

 

4. 캐비넷 (cab) 파일 생성을 위한 템플릿 지시문 파일 (test.ddf)

   Microsoft Partner Center 교차 서명을 위해 cab  파일 생성 (why? 서명된 드라이버 파일 업로드 규칙)

cabwiz.ddf
.Set CabinetFileCountThreshold=0    ; no files per cabinet threshold
.Set FolderFileCountThreshold=0     ; no files per folder threshold
.Set FolderSizeThreshold=0          ; no folder size threshold
.Set MaxCabinetSize=0               ; no max size for the cabinet
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0                  ; .cab 파일에 필요한 최대 크기의 공간을 잡는다.
.Set CompressionType=MSZIP
.Set Cabinet=on
.Set Compress=on
;Specify file name for new cab file
.Set CabinetNameTemplate=test.cab
; Specify the subdirectory for the files.  
; Your cab file should not have files at the root level,
; and each driver package must be in a separate subfolder.
.Set DestinationDir=test
;Specify files to be included in cab file
;파일에 포함될 파일들
D:\signing\test.inf
D:\signing\test.sys

5. cab 파일 생성 명령어 실행 

C:\> makecab -f test.ddf

 

6. cab 파일 SHA 256 서명

C:\> signtool.exe sign /ac "C:\MyEVCert.cer" /s MY /n "Company Name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v "test.cab"

 

7. 마이크로소프트 파트너 센터 cab 파일 업로드 

 

8.  Product name 등록

 

9. 드라이버 환경 선택 (모두 선택)

 

10. 서명 완료후 More 버튼 클릭 

 

11. singed파일(Download signed files 버튼)

    다운로드 파일

        - 업로드 package(cab)파일 (압축 해제 : 사설 인증 서명된 드라이버 파일)

        - Download initial package 파일 ( 압축 해제 : 사설 인증 + MS 서명 = 교차 서명 된 드라이버 파일)

반응형

'Development > Window Driver' 카테고리의 다른 글

미니필터 드라이버란?  (0) 2022.12.12
반응형

미니필터 드라이버

  • 파일 시스템 이벤트 모니터링을 위한 드라이버
  • Windows 시스템 커널 레벨 수준 프로세스의 파일 시스템 요청을 모니터링
  • 필터 드라이버 로드 / 언로드 유리
  • 필요시 요청 차단 (프로세스 실행 차단)
  • 유저 모드 어플리케이션단 통신 

미니필터 컨셉

- 콜백 루틴 호출 : Minifilter A (attribute 365000) -> Minifilter B (attribute 325000) -> Minifilter C (attribute 305000)

- 콜랙 루틴 완료 호출 : 루틴 호출 역순

  1. I/O Manager 
    • 요청한 연산을 처리하는 드라이버를 파악하여 해당 드라이버에게 IRP(I/O Request Packet)을 전달
    • IRP : 데이터 구조체, I/O연산에 수행되어야 하는 연산/필요한 버퍼의 정보 포함
    • 드라이버 연산 결과를 유저 애플리케이션에 상태 및 데이터 반환
  2. Filter Manager
    • 파일 시스템 필터 드라이버에 필요한 기능 구현 및 노출
  3. File System Driver
    • 파일 시스템의 동작에 값을 추가 / 수정하는 드라이버
    • 파일 시스템 / 파일 시스템 볼륨에 대한 I/O 작업을 필터링

드라이버 확장자 

    - sys

 

미니필터 드라이버 상태 조회

C:/> sc query [driver_name]

 

미니 필터 등록 

    test.inf 파일 이용하여 미니필터 등록

    sc 명령어로 등록

sc create "서비스 이름" binpath= "서비스로 등록할 드라이버 경로" displayName= "test" start= demand type= kernel
  • start : 드라이버 부팅 방식
  • '= 인자값 ' : 사이에 한 칸 띄움

 

미니 필터 드라이버 시작

C:/> sc start [driver_name]

 

미니 필터 드라이버 중지

C:/> sc stop [driver_name]

 

미니 필터 드라이버 제거

C:/> sc delete [driver_name]
반응형

+ Recent posts