3. 드라이버 서비스 설치

-드라이버 서비스 설치

1.      드라이버 파일 생성

A.     sys 파일

B.      Makefile, sources, c 파일 이용

C.      test.c 파일 동작 과정

                         i.         드라이버 시작시

1.       DbgPrint(“I loaded!!\n”);

                        ii.         OnUnload()

1.      DbgPrint(“OnUnload called\n”);

2.      드라이버가 시작 될때마다 디버그 창에 출력

 

2.      드라이버 설치과정

A.     OpenSCManager() 권한 변경

                         i.         SC_MANAGER_ALL_ACCESS

B.      CreateService()

                         i.         서비스 유형 : SERVICE_KERNEL_DRIVER

                        ii.         서비스 실행 시점 : WERVICE_AUTO_START

 

3.      계정별로 설치 과정 확인

A.     관리자 계정

                         i.         사용자 계정 컨트롤의 값에 따라 항상 알림, 알리지 않음의 경우로 나뉨 

                        ii.         항상 알림

1.      SCM에 접근 불가하여 

2.      드라이버 설치 불가능

                       iii.         알리지 않음

1.      드라이버 설치 가능

 

B.      사용자 계정

                         i.         사용자 계정 컨트롤 변경이 불가능하여 설치 불가능

 

C.      관리자 계정에서 드라이버 설치할 경우 사용자 계정에도 설치가 되지만 표준 사용자 계정에서는 설치가 될 수 없음 (시작, 중지, 일시중지도 변경 불가능)

D.     문제점

                         i.         관리자 계정에서 항상 알림으로 사용자 계정 컨트롤의 값을 설정 하였을 때 SCM에 접근이 불가능 한 상황