NOTICE


 요즘 필터 드라이버 분석과 개발에 많은 시간을 할애하다보니 블로그 할 시간이 없네요. 머리도 아프고 해서 쉬어가는 시간에 가상머신(Virtual Machine)인 VMware에 WinDBG를 붙여서 드라이버 파일을 디버깅하는 방법에 대해 알려드리고자 합니다.


 Windows Kermel을 분석할 때 많은 분들이 사용하는 방법입니다. 드라이버 또한 Kernel에서 동작하기 때문에 같은 방법을 씁니다. 분석에 필요한 Tool 정보는 다음과 같습니다.


 - 분석 Tool 정보

 파일 이름

파일 이름

WinDBG.exe

 DriverLoader.exe



1. VMware 설정하기


 여기서 VMware는 디버기가 됩니다. VMware의 시리얼 포트(Serial Port)를 추가해주겠습니다. VMware 설정은 가상 OS가 종료된 상태에서 진행해야합니다. [Edit virtual machine settings]을 선택하고 Virtual Machine Settings 창에서 [Add...] 버튼을 누릅니다.


[그림 1.1.] 시리얼 포트 추가 01


 [Serial Port] 선택 후 Next를 선택합니다.


[그림 1.2.] 시리얼 포트 추가 02


 [Output to named pipe] 선택 후 Next로 진행합니다.


[그림 1.3.] 시리얼 포트 추가 03


 Named pipe 이름을 설정하면 시리얼 포트가 추가됩니다.

  → Named pipe 이름 형식은 \\.\pipe\임의지정 으로 하면 됩니다.


[그림 1.4.] 시리얼 포트 추가 04


 그리고 마지막으로 [그림 1.5.]과 같이 항목을 체크해 줍니다.


[그림 1.5.] 시리얼 포트 추가 05


 시리얼 포트가 추가되면 가상 OS를 시작하고 cmd.exe를 실행시켜서 다음과 같은 명령어를 입력하세요. boot.ini를 노트패드로 열어보겠다는 의미입니다.


[그림 1.6.] boot.ini를 notepad.exe로 열기


 boot.ini 파일 데이터를 아래와 같이 수정하고 저장합니다. 제 컴퓨터 환경에서 추가된 시리얼 포트는 Serial Port 2이기 때문에 "/debugport="는 COM2가 됩니다.


[그림 1.7.] boot.ini 파일 데이터 수정



 모든 설정이 끝나면 재부팅하세요.



2. WinDBG.exe 설정하기


 먼저 여기서 WinDBG.exe는 VMware가 설치되어 있는 Host PC에 설치되어 있어야 합니다.


 WinDBG.exe의 속성창에서 '대상(T):'에 들어가는 문자열을 수정합니다. 수정 문자열 정보는 아래와 같습니다.


[그림 2.1.] WinDBG.exe 속성 수정




3. Driver 분석 시작하기


 가상 OS가 재부팅되면 DriverLoader.exe를 사용해 드라이버 파일을 등록, 실행 시킵니다. 이 때 'Entry Point에서 디버깅하기' 체크박스를 선택해야 합니다. 드라이버 파일을 알아서 수정하고 이로 인해 동작 과정 중 Entry Point에서 멈춥니다.


[그림 3.1.] DriverLoader.exe를 사용해 드라이버 파일 등록, 실행


 설치 및 로드 버튼을 누르면 가상 OS가 멈출 것입니다. 이제 WinDBG.exe를 실행시키면 분석하고자 하는 드라이버 파일이 Attach 됩니다. EntryPoint의 코드가 'CC'로 되어 있는 것을 원래 코드로 복원하고 분석을 시작하면 됩니다.


[그림 3.2.] WinDBG.exe로 드라이버 분석 시작



 이상으로 '[Kernel] WinDBG를 사용해 드라이버 파일(.sys) 분석하는 방법' 포스팅을 마치겠습니다.


  1. no picture 분석가지망 2015.04.09 08:05

    WinDbg.exe는 알겠는데 DriverLoader.exe라는 프로그램은 처음 들어봅니다.
    구할수 있는 방법이 있을까요?

  2. no picture BlogIcon Wooum@n 2017.02.21 22:40 신고

    꼭 DriverLoader 프로그램이 있어야 하나요?
    DriverLoader는 어떤 방식으로 EP에 멈추게 하는건가요?
    EP를 CC로 바꾸는건가
    일반 응용프로그램 처럼 하면 되는건감

    • no picture BlogIcon 이슝 itseeyou 2017.02.22 10:03 신고

      DriverLoader는 드라이버 등록과 실행을 해주는 Tool입니다. 해당 Tool이 없더라도 상관없습니다. 직접 등록해줘도 되겠죠~ DriverLoader가 BP를 어떻게 거는지는 직접 확인해보지 않았네요.