Partilhar via


[CDA]Savedump.exe 그리고 페이지 파일

"이 문서는 https://www.dumpanalysis.org/blog blog 의 번역이며 원래의 자료가 통보 없이 변경될 수 있습니다. 이 자료는 법률적 보증이 없으며 의견을 주시기 위해 원래의 blog 를 방문하실 수 있습니다. (https://www.dumpanalysis.org/blog/index.php/2007/02/14/savedumpexe-and-pagefile/)"

 

Savedump.exe 그리고 페이지 파일

 

오늘 저는 savedump.exe 가 무엇인지 호기심이 생기어 조사를 한 후 몇 가지 정보를 찾았습니다.

Windows 2000 에서는 savedump.exe 는 logon 프로세스의 일부로 pagefile 에서 crash dump section 을 찾아 메모리 덤프 파일과 미니 덤프 파일을 생성 합니다.

 

https://support.microsoft.com/kb/257299

(역자주 : crash dump driver 가 정보를 주 디스크의 paging 파일에 저장하게 되고 미러된 disk 에는 동기화 되지 않습니다. 재 부팅 된 후 savedump.exe 가 페이지 파일에서 dump 정보를 읽어 덤프 파일을 생성할 때 미러된 disk 에서도 정보를 읽으려 하나 덤프 정보가 존재하지 않아 덤프가 손상 됩니다.)

 

https://support.microsoft.com/kb/262077

(역자주 : 메모리 덤프 파일의 헤더에 하나의 필드가 추가되었고 이는 심볼을 가리켜 올바른 미니 덤프를 생성할 수 있도록 해 줍니다. 추가적으로 savedump.exe 는 전체 메모리 덤프를 생성할 때 미니 덤프를 생성하도록 코드가 추가 되었습니다. )

 

Windows 2003 과 XP 에서는 savedump.exe 는 pagefile 을 사용하지 않습니다. 세션 메니저인 smss.exe 가 pagefile 에 작업을 한 후 dumpxxx.dmp 파일로 rename 하고 (필요하다면 boot volume 으로 복사 합니다.) 이후 savedump.exe 가 dl 파일을 올바른 위치로 복사한 후 mini dump 파일을 생성 합니다.

 

https://support.microsoft.com/kb/886429

(역자주 : Windows 가 비 정상적으로 종료 되었을 때 Windows 는 물리 메모리 와 동일한 크기의 임시 파일을 부트 볼륨에 생성 합니다. 만약 디스크 공간이 부족하다면 덤프 파일은 생성 되지만 페이지 파일 크기가 작아 지게 됩니다.

아래 설명은 Windows Server 2003 에서 dump 생성 방법의 변경 사항 입니다.

  • 메모리 덤프를 생성하는 첫 번째 단계에서 세션 메니저 서브시스템 프로세스(SMSS.exe) 는 Savedump.exe 가 하던 작업 중 일부를 직접 수행합니다. SMSS 는 페이지 파일 헤더 블록을 검사하여 메모리 덤프 파일이 손상 되었는지 확인을 합니다. 파일이 손상되지 않았다면 SMSS 는 원본 페이지 파일을 덤프 파일 크기 만큼 잘라낸 후 Dumpxxx.tmp 로 rename 힙니다. SMSS 는 Dumpxxx.tmp 파일을 부트 볼륨에 저장한 후 파일에서 히든과 시스템 속성을 제거 합니다. SMSS TempDestination 값을 설정하고 덤프 파일 값을 레지스트리에 저장 합니다. 이 키는 나중에 Savedump.exe 가 Dumpxxx.tmp 를 Memory.dmp 로 복사할 때 사용합니다.

  • 메모리 덤프 생성의 두 번째 단계에서 Savedump.exe 는 아래 레지스트리 키를 확합니다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\MachineCrash 이 키가 존재한다는 것은 정상적인 덤프 파일이 생성되었다는 것이고 savedump.exe 가 이 데이터를 읽어 덤프 파일을 올바른 위치로 복사 합니다.

  • SMSS 는 부트 볼륨에만 쓸 수 있으며 필터 드라이버들은 무시 됩니다. (필터 드라이버가 무시 되기 때문에 RAID 에는 저장할 수 없습니다.)

  • SMSS 는 페이지 파일을 임시 파일로 rename 하기 위해 NtSetFileInformation 을 사용 합니다. 이 함수는 동일 볼륨에 대해서만 rename 을 허용 합니다.)

Savedump.exe 를 Vista 에서 찾을 수 없는 것으로 보아 사라진 것으로 보입니다.

- Dmitry Vostokov -

Comments