본문 바로가기

자료

OSRLoader 를 이용한 커널드라이브 로드 & 언로드 해보기

728x90

OSRLoader 를 이용 Driver load 그리고 unload 해보기OSRLoader 를 이용한 커널드라이브 로드 & 언로드 해보기

 

0. 우선 디지털 서명 이 없어도 드라이버 설치가 가능하도록 컴퓨터를 설정 합니다.

  - 컴을 켜고 bios 로딩 끝나고 windows 로딩 할 때 "F8" 을 눌러 windows boot menu로 진입합니다.

  - 그럼 아래와 같이 boot menu 가 뜨는데 거기서 "드라이버 서명 적용 사용 안 함" 을 선택해서 부팅 합니다.

     (혹, 아래 그림에서 "컴퓨터 복구" 누르시는 분은 없겠죠?)

  - 이렇게 하는 이유는 디지털 서명이 없는 경우 드라이버 설치가 되지 않기 때문입니다.

  

 

1. OSR Online 에 가서 "Driver Loader" 를 다운 받습니다.

   - http://www.osronline.com/article.cfm?article=157  여기서 받으시면 되고요 회원 가입은 필수.

 

2. 다운받은 파일의 압축을 풀고 "OSRLOADER.exe"를 실행합니다.

   - OS 에 따라서 구분되어 있으니 맞추어서 사용하시면 됩니다.

 

3. 실행되면 아래와 같은 화면을 볼 수 있는데 먼저 load 할 driver file (*.sys)을 선택해 줍니다.

  - "Driver Path" 라고 된 부분의 맨 오른쪽에 있는 "Browse" 버튼을 누르고 driver file (*.sys)파일을 찾아서 선택합니다.

  - 이전 포스트에서 만들어 놓은 "helloworld.sys" 를 활용하면 되겠습니다.

  

 

4. 왼쪽 맨 아래 "Register Service" 를 눌러 줍니다.

  - 정상적인 경우 "작업을 완료 했습니다." 라고 메세지 창이 뜹니다. 이렇게...

  - 이는 (*.inf) 파일이 없이 드라이버를 로딩 하기 위해 레지스트리에 드라이버 파일을 등록해 주는 것입니다.

    

 

5. "Start Service" 를 눌러 줍니다.

  - 정상적인 경우 "작업을 완료 했습니다." 라고 메세지 창이 뜹니다.

  - 만약, WinDbg 를 연결해 놓은 상태라고 하면 "Hello World" 라고 메세지가 찍힐 겁니다.

  - 이 메세지는 "helloworld.c" 의 callback function "DriverEntry" 가 호출 되었기 때문에 나타나는 메세지 입니다.

 

6. "Stop Service" 를 눌러 줍니다.

  - 정상적인 경우 "작업을 완료 했습니다." 라고 메세지 창이 뜹니다.

  - 만약, WinDbg 를 연결해 놓은 상태라고 하면 "Unload Device" 라고 메세지가 찍힐 겁니다.

  - 이 메세지는 "helloworld.c" 의 "DriverEntry" 가 호출 되었을 때 "DriverObject->DriverUnLoad" 의 callback function으로

    이미 등록된 "OnUnload" 가 호출 되었기 때문에 나타나는 메세지 입니다.

 

7. 마지막으로 "Unregister Service" 를 눌러 레지스트리에 등록된 드라이버를 제거해 줍니다.

728x90