WER
1. 개요
Windows Error Reporting(WER)은 Microsoft의 자동 보고 시스템으로, Windows 운영 체제에서 발생하는 애플리케이션, 드라이버, 운영 체제 오류를 감지하고 보고한다. 디지털 포렌식 분석 관점에서 WER은 오류 발생 프로그램과 발생 시간을 확인할 수 있으며 연관된 이벤트 로그를 통해 시스템 활동을 추적할 수 있다.
2. 아티팩트 경로
WER 보고서 파일(Report.wer)
WER 보고서 파일은 시스템의 오류 보고서를 포함하며, 주로 다음 경로에 저장된다.
경로:
C:\\ProgramData\\Microsoft\\Windows\\WER하위 폴더:
ReportArchive: 보관된 오류 보고서ReportQueue: 대기 중인 오류 보고서실제 파일은 확인되지 않았으나 $I30 파일에서 wer 파일이 있었음을 알 수 있다.
Temp: 임시 오류 보고서실제 파일은 확인되지 않았으나 $I30 파일에서 wer 파일이 있었음을 알 수 있다.
파일 형식:
.wer: 텍스트 형식의 오류 보고서.dmp: 메모리 덤프 파일.hdmp: 압축된 메모리 덤프 파일 (하이브리드 덤프)
WER EventLog
일반 이벤트 로그:
경로:
C:\\Windows\\System32\\winevt\\Logs이벤트 로그 파일:
Application.evtx: 애플리케이션 관련 이벤트 로그Event ID: 1000, 1001
System.evtx: 시스템 이벤트 로그
WER 진단 이벤트 로그:
경로:
C:\\Windows\\System32\\winevt\\Logs\\Microsoft-Windows-WER-Diag%4Operational.evtx로그 내용: WER 시스템의 진단 정보와 관련된 이벤트 (예: 오류 보고서 생성 및 전송 상태, 전송 실패 이유 등)
WER Registry
경로
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting
HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting
Registry
(S) Consent
(V) DefaultConsent
1: Always ask
2: Parameters only
3: Parameter and safe data
4: All data
(S) DebugApplications
(V) [ExeName]
0: Processes with an executable image name of “ExeName” do not require the user to choose “Debug” or “Continue”
1: Processes with an executable image name of “ExeName” require the user to choose “Debug” or “Continue”
(S) LocalDumps
(S) [Application Name]
(V) DumpFolder: 덤프 디렉터리 경로. Default 값은 %LOCALAPPDATA%\CrashDumps.
(V) DumpCount: 덤프 최대 값. Default 값은 10. 최대 값을 초과하면 폴더에서 가장 오래된 덤프 파일이 새 덤프 파일로 대체
(V) DumpType
0: Custom dump
1: Minidump (default)
2: Fulldump
나머지는 공식 문서를 참고한다.
3. Report.wer
해당 단락에서는 ReportArchive에서 발견된 Report.wer 파일의 필드 값에 대해 정리함. Report.wer은 AppCrashView.exe 프로그램으로 확인할 수 있다.

Report.wer 폴더 명
Report.wer 파일의 폴더 명을 보면 오류 유형부터 해시값들이 포함되어 있다.
%오류 유형%_%충돌 애플리케이션 이름%_%첫번째 해시%_%두번째 해시%_%ReportIdentifier%
예시)
AppCrash_Explorer.EXE_9cd53897ffc9d25be27f21a71ffa52cae8ae1aa_1c1d6539_29da9992첫번째 해시
폴더 명에서 발견되는 첫번째 해시로는 정확하게 명칭이나 관련된 설명을 확인할 수 없으나, 여러 Report.wer 파일을 분석한 결과 Sig 필드로 만들어지는 것으로 예상된다. Sig 필드 안에는 프로그램에 대한 정보 및 예외 코드 등 여러 데이터가 포함되어있다.
첫번째 해시값이 같다면 동일한 프로그램, 프로그램 버전, 오류, 예외 코드임을 알 수 있다.
두번째 해시
폴더 명에서 발견되는 두번째 해시로는 ReportType과 TargetAppVer로 만들어지는 것으로 예상된다.
두번째 해시값이 같다면 같은 ReportType와 프로그램에 버전이 동일함을 알 수 있다.
오류 유형이 NonCritical인 경우 ReportType이 ‘0’이지만 Report.wer에서는 저장되지 않는다. 그래서 두번째 해시 값이 00000000으로 고정된다.
Report.wer 필드
EventType
APPCRASH
BEX
BEX64
MoAppHang
AppHangB1
StoreAgentInstallFailure1
StoreAgentDownloadFailure1
ReportType
0: NonCritical
1: Critical
2: ApplicationCrash
3: ApplicationHang
4: Kernel
5: Invalid
ReportStatus
대부분 **268435456 (2^28)**으로 Bit 값으로 예상됨
268435456
2^28
268566528
2^28 + 2^17
97
2^0 + 2^5 + 2^6
ReportIdentifier
WER 보고서 식별자. 폴더 명에 마지막에 해당됨
IntegratorReportIdentifier
통합된 보고서 식별자
이벤트 로그에는 해당 식별자 값이 보고서 ID로 확인된다.
TargetAppId
“W”로 시작하는 것과 “U”로 시작하는 것이 있음.
AppCrash가 발생한 것은 “W”로 시작
Application Hang (애플리케이션 중단)은 “U”로 시작함. 다만 기존에 AppCrash가 난 프로그램인 경우 “W”로 표시됨
TargetAppVer
버전명!시간!해시!프로그램 이름 으로 구성되어있다.
시간은 프로그램의 속성에서 자세히 보기 후 수정한 시간으로 확인된다.
버전 명은 대부분 없지만 Windows Store에서 다운 받은 파일인 경우 버전이 확인됨
전체 필드
Version
보고서 버전
EventType
이벤트 유형
BEX=Buffer overflow EXception
AppCrash
EventTime
이벤트 발생 시간
FileTime Timestamp
ReportType
보고서 유형
0: NonCritical
1: Critical
2: ApplicationCrash
3: ApplicationHang
4: Kernel
5: Invalid
Consent
Microsoft에 보고서를 전송 동의 여부
UploadTime
보고서가 업로드된 시간
ReportStatus
보고서의 상태
보고서 업로드, 보류 등등
ReportIdentifier
보고서 식별자
IntegratorReportIdentifier
통합된 보고서 식별자
Wow64Host
64bit 호스트에서 실행되는 32bit 프로세스
Wow64Guest
32비트 게스트 프로세스를 나타냅니다.
NsAppName
오류가 발생한 응용 프로그램의 이름
OriginalFilename
응용 프로그램의 원래 파일 이름
AppSessionGuid
응용 프로그램 세션의 고유 식별자
TargetAppId
타겟 응용 프로그램의 식별자
TargetAppVer
타겟 응용 프로그램의 버전
BootId
시스템 부팅 식별자
TargetAsId
타겟 응용 프로그램 세션의 고유 식별자
IsFatal
오류가 치명적인지 여부
Response.BucketId
문제의 버킷 식별자
Response.BucketTable
문제의 버킷 테이블
Response.LegacyBucketId
이전 문제 버킷 식별자
Response.type
응답 유형
Sig
오류에 대한 시그니처 정보
DynamicSig
동적 서명 정보
UI
사용자 인터페이스
LoadModules
로드 모듈 이름
State
상태 정보
OsInfo
운영체제 정보
FriendlyEventName
사용자에게 표시되는 이벤트의 친숙한 이름
ConsentKey
동의 여부
AppName
응용프로그램 이름
AppPath
응용프로그램 경로
NsPartner
파트너 정보
NsGroup
그룹 정보
ApplicationIdentity
응용 프로그램 식별 정보
MetadataHash
메타데이터 해시
4. Event Log 속 WER
해당 단락에서는 Application.evtx 에서 확인할 수 있는 내용에 대해 정리함. 이벤트 뷰어를 확인하기 위해서는 eventvwr.msc 프로그램을 사용해 확인할 수 있다. (Win + r 후 eventvwr.msc 입력)
Event ID 1001
해당 이벤트 로그에서는 10개의 매개변수를 확인할 수 있다. 해당 파라미터는 Report.wer에서 Sig 필드와 같다.
Get-EventLog -LogName Application -InstanceId 1001 -Source 'Windows Error Reporting'Event ID 1000
해당 이벤트 로그에서는 1001에서 확인한 파라미터의 값의 대해 정확한 명칭과 함께 값을 확인할 수 있다.
Get-EventLog -LogName Application -InstanceId 1000 -Source 'Application Error'5. WER 뷰어 및 파서 프로그램 제작
프로그램 작성 중
각 필드에 의미를 확인 후 추가할 예정이며, 필드 값 별로 분류 및 검색까지 가능하게 할 예정이다.
이 프로그램에 목적은 기존 WER 뷰어의 기능을 강화하고 더 보기 좋게 하기 위함이다.
6. 참고
Last updated
Was this helpful?