티스토리 뷰
수 많은 삽질 끝에 드디어 드라이버 파일에 코드 사이닝을 해냈다..
우와.. XP와는 다르다..
나는 *.sys 파일에 코드 사이닝 하면 되는줄 알았다.
아니였다.. Vista에서는 *.cat 파일 (catalog 파일)을 생성하여 inf와 sys를 다 등록 한 후 cat 파일에 Authenticode(Code Signing)해주어야 한다.
문서를 읽어보면 Server 2003 이후에는 코드 사이닝 개념이 생겨서 신뢰 기관으로 등록 하는 경우 Warning Dialog가 뜨지 않는 다고.. (XP의 경우에는 WHQL해줬어야 했다)
요하튼.. 비스타에서 드라이버 배포의 A to Z를 봅시다.
필요한 것.
1. WDK
2. SignTool
3. Inf2Cat
뭐.. 결국 SignTool와 Inf2Cat은 안에 WDK안에 있긴 하지만.. 뭐 쨌든
WDK는 http://connect.microsoft.com에서 받는다는 것은 누구나 알죠?
이거 말고 MakeCat이니 Signability를 쓰라느니.. 다 개 뻘짓이더군요.. 걍 Inf2Cat이면 돼요..
(자료들은 http://technet.microsoft.com/ko-kr/library/dd919238%28WS.10%29.aspx 을 참조하였습니다.)
요하튼.. 드라이버 배포를 위해선 cat파일을 만들어 줘야 합니다.
어떻게 만드느냐..
바로 x86 Free Build Environment 를 실행해서 inf2cat을 해줘야 합니다. (저는 cmd에서 inf2cat 한다고 겁내 삽질했네요..)
inf2cat을 하기 위해서 선행할 작업이 있습니다.
우리가 설치할 *.INF 의 [Version] 섹선을 손봐야 하는데요.
CatalogFile=이름.cat
을 넣어줘야 합니다.
여튼.. 저걸 넣어주고 Vista and Server2003용 x86 Free Build Environment을 실행해 주고 inf2cat을 합니다.
inf2cat은 이렇게..
inf2cat /driver:c:\toaster\device /os:Vista_x86
해주면 됩니다.. 참고로 경로 중에 한글이름이 있거나 띄어쓰기가 포함 돼있으면 안되는거같더군요.. (제가 '바탕 화면'을 참조해서 정확히는 띄어쓰기 문제인지 한글이름 문제인지는 모르겠습니다 ;;)
그럼.. 지가 알아서 inf 파일 참조해서 이름.cat 파일을 생성합니다.
이제 생성된 cat파일 있죠? 그거에다가 Authenticode(코드 사이닝) 해주면 끝입니다.. 디지털 서명이라고 하면 될까요.. 여튼...
중요한건.. sys파일에 서명하는게 아닙니다.. cat파일에 서명하는거지...
서명 하는 방법은 다른 글에 적어놨으니까 알아서 찾아보세요... 라고 적기엔 너무 무책임하니 걍 간단히 링크 ~_~
http://www.roter.pe.kr/entry/Windows-Vista-응용프로그램-드라이버에-코드-사이닝-하기
입니다.. 모두 화팅!!
'Development > Driver' 카테고리의 다른 글
X Module Driver Enable/Disable 하기 (0) | 2010.05.17 |
---|---|
WinDbg와 VMWare 환경설정하기 (0) | 2010.04.27 |
ClassGUID (0) | 2010.04.27 |
레지스트리 SERVICE에 있는 변수 설명 (0) | 2010.04.27 |
Windows Vista 응용프로그램, 드라이버에 코드 사이닝 하기 (1) | 2010.04.20 |
Code Signing(Authenticode) 해야하는 이유 (0) | 2010.04.15 |
DTM guide manual & Windows Logo Policy Document (0) | 2010.04.15 |
비스타 64bit에서 테스트 사인하기 and 사인 여부 검사하지 않게 설정하기 (0) | 2010.04.14 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- jni강좌
- 안드로이드
- C++
- MFC
- AWS
- kering
- java
- 음악
- Cloud
- Visual C++
- 드라이버
- source
- gcc
- jni
- it
- database
- Python
- winapi
- 리눅스
- algorithm
- API
- driver
- db
- android
- NDK
- Quiz
- Troubleshooting
- linux
- C
- 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함