Winodws Memory Reader

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

소개[편집]

Winodws Memory Reader는 ATC-NY의 메모리 획득 도구로써 웹페이지(http://cybermarshal.com/index.php/cyber-marshal-utilities/windows-memory-reader) 에서 다운로드 할 수 있다. 32-bit, 64-bit의 Windows XP이상의 환경에서 실행이 가능하며 덤프 결과를 Raw 파일이나 Windows Crash Dump파일로 저장이 가능하다. [그림 1]은 Windows Memory Reader의 실행화면이다.



[그림 1] Windows Memory Reader 실행화면



사용법[편집]

Windows Memory Reader의 기본적인 사용법은 [표 1]과 같다.



[표 1] Windows Memory Reader의 명령어 형식
명령어 비고
wmr.exe [옵션] [-H 해시 유형] [파일명] 관리자 권한의 커맨드창에서 실행



관리자 권한의 커맨드창을 열어 wmr.exe <파일명>의 형식으로 메모리를 RAW 포맷으로 이미징할 수 있다. Windows Memory Reader의 옵션은 [표 2]와 같다.



[표 2] Windows Memory Reader의 옵션
옵션 설명 비고
-l 이미징할 수 있는 모든 메모리 주소를 보여준다.
-L 시스템 드라이버를 로드한다.
-R 시스템 드라이버를 제거한다.
-c Windows Crash Dump 포맷으로 이미징한다.
-p 아무 헤더가 없는 RAW 포맷으로 이미징한다.
-P 메모리 주소사이의 공백을 0(zero)으로 패딩하여 이미징한다.
-r 장치 메모리 영역과 예약영역까지 이미징한다. 시스템 충돌 가능성이 있음
-D 프리패치[1]가 가능한 장치 메모리 영역과 예약영역까지 이미징한다. 시스템 충돌 가능성이 있음. -r 옵션 보다는 충돌 가능성이 적다.
-i 이미징할 수 있는 메모리 주소 영역을 선택하여 이미징한다.
-f 이미징에 실패할 경우 프로그램을 종료한다.
-z 부팅에 쓰이는 영역인 제로 페이지(0x0000-0x1000) 영역을 제외하고 이미징한다.
-H 이미징 후에 선택한 해시 알고리즘으로 계산하여 콘솔화면에 출력한다. MD5, SHA-1, SHA-256, SHA-512 지원
-d 프로그램의 진행 과정을 콘솔화면으로 출력한다.
-g 콘솔 화면에 이미징 진행도를 반복적으로 출력한다.
-h 도움말을 출력한다.



[표 2]의 i옵션은 l옵션으로 확인된 메모리 주소를 선택하여 이미징할 수 있는 기능이다. RAW포맷 이미징인 p옵션 또는 패딩된 RAW포맷인 P 옵션을 필수로 사용해야 하며 i옵션의 명령문은 [표 3]과 같다.



[표 3] Windows Memory Reader의 i옵션
명령어 비고
wmr.exe [-p/-P] [-i] [파일명] 서브 옵션으로 p 또는 P를 필수적으로 선택해야 함.



도구기능[편집]

Windows Memory Reader는 상당히 많은 옵션을 제공한다. 부팅시에 쓰이는 제로페이지(0x0000-0x1000)를 덤프할 수 있거나 원하는 해시 타입을 선택하는 것을 그 예로 들 수 있다. 하지만 Windows 운영체제에서 제로페이지는 사용되지 않아 의미가 없으므로 제로페이지를 덤프할 수 있는 기능은 장점으로 작용할 수 없다. 이미징 결과로 Raw 포맷과 Windows Crash Dump 포맷을 얻을 수 있다. 모든 옵션이 정상 작동한다.

제한사항[편집]

Windows XP 환경에서 메모리 이미징 속도가 Dump It에 비하여 현저하게 느리다. Cybermarshal.com의 홈페이지 폐쇄로 도구를 확보하기 어렵다.

수사 활용 방안[편집]

Windows Memory Reader는 현장에서 여러 가지 옵션을 활용하여 상황에 맞게 메모리 이미징을 할 수 있다는 장점이 있다. 메모리 이미징 후 바로 원하는 타입의 해시 값을 얻을 수 있으며 원하는 메모리 영역만 이미징 할 수도 있다. 오프셋 0x0000-0x1000의 제로 페이지를 이미징할 수 있는 것 또한 장점이다.

주석[편집]

  1. 프리패치: 메모리를 사용하기 전에 CPU 캐시 라인에 로드하여 실제 사용시 더 빠르게 하는 작업을 뜻함.