물먹는산세베리아

SetupAPI 텍스트 로그 포맷 정리 본문

Waregame & CTF/Forensic

SetupAPI 텍스트 로그 포맷 정리

suntall 2022. 2. 15. 19:36

* setupapi.dev.log 파일 참고함

텍스트 로그 헤더

[Device Install Log]
     OS Version = 10.0.22000
     Service Pack = 0.0
     Suite = 0x0100
     ProductType = 1
     Architecture = amd64

[BeginLog]

운영 체제 및 시스템 아키텍쳐 정보


텍스트 로그 섹션

>>>  [Enable Device Install]//섹션 머리글
>>>  Section start 2022/01/15 00:31:36.002//섹션 머리글
      cmd: C:\WINDOWS\winsxs\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.22000.345_none_04b3f78d4c83ab0f\TiWorker.exe -Embedding
     ump: DeviceInstall service is not disabled.
     ump: Enabling device install... 00:31:36.002
     ump: Device install enabled and idle. 00:31:36.002
<<<  Section end 2022/01/15 00:31:36.002//섹션 바닥글
<<<  [Exit status: SUCCESS]//섹션 바닥글

본문은 로그에 대해 설정된 이벤트 수준, 활성화된 번주 수준에 따라 다르다.

 

>>>  [Setup Import Driver Package - C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\prnms009.Inf]
>>>  Section start 2022/01/15 00:35:02.081
      cmd: C:\WINDOWS\System32\spoolsv.exe
     inf: Provider: Microsoft
     inf: Class GUID: {4D36E979-E325-11CE-BFC1-08002BE10318}
     inf: Driver Version: 06/21/2006,10.0.22000.1
     inf: Catalog File: prnms009.cat
     ump: Import flags: 0x0000000D
     pol: {Driver package policy check} 00:35:02.347
     pol: {Driver package policy check - exit(0x00000000)} 00:35:02.363
     sto: {Stage Driver Package: C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\prnms009.Inf} 00:35:02.379
     inf:      {Query Configurability: C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\prnms009.Inf} 00:35:02.394
     inf:           Driver package 'prnms009.Inf' is configurable.
     inf:      {Query Configurability: exit(0x00000000)} 00:35:02.426
     flq:      {FILE_QUEUE_COMMIT} 00:35:02.441
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\MPDW_devmode_map.xml' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\MPDW_devmode_map.xml'.
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\prnms009.cat' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\prnms009.cat'.
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\prnms009.Inf' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\prnms009.Inf'.
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\MPDW-PDC.xml' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\MPDW-PDC.xml'.
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\MPDW-manifest.ini' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\MPDW-manifest.ini'.
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\MPDW-pipelineconfig.xml' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\MPDW-pipelineconfig.xml'.
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\MPDW-constraints.js' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\MPDW-constraints.js'.
     flq:      {FILE_QUEUE_COMMIT - exit(0x00000000)} 00:35:02.724
     sto:      {DRIVERSTORE IMPORT VALIDATE} 00:35:02.739
     sig:           Driver package catalog is valid.
     sig:           {_VERIFY_FILE_SIGNATURE} 00:35:02.802
     sig:                Key      = prnms009.Inf
     sig:                FilePath = C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\prnms009.Inf
     sig:                Catalog  = C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\prnms009.cat
     sig:                Success: File is signed in catalog.
     sig:           {_VERIFY_FILE_SIGNATURE exit(0x00000000)} 00:35:02.876
     sto:      {DRIVERSTORE IMPORT VALIDATE: exit(0x00000000)} 00:35:02.928
     sig:      Signer Score  = 0x0D000003 (Inbox)
     sig:      Signer Name   = Microsoft Windows
     sto:      {Core Driver Package Import: prnms009.inf_amd64_620c281895426e89} 00:35:02.959
     sto:           {DRIVERSTORE IMPORT BEGIN} 00:35:02.976
     sto:           {DRIVERSTORE IMPORT BEGIN: exit(0x00000000)} 00:35:02.990
     cpy:           {Copy Directory: C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}} 00:35:02.990
     cpy:                Target Path = C:\WINDOWS\System32\DriverStore\FileRepository\prnms009.inf_amd64_620c281895426e89
     cpy:           {Copy Directory: exit(0x00000000)} 00:35:03.022
     idb:           {Register Driver Package: C:\WINDOWS\System32\DriverStore\FileRepository\prnms009.inf_amd64_620c281895426e89\prnms009.Inf} 00:35:03.037
     idb:                Created driver package object 'prnms009.inf_amd64_620c281895426e89' in DRIVERS database node.
     idb:                Created driver INF file object 'oem57.inf' in DRIVERS database node.
     idb:                Registered driver package 'prnms009.inf_amd64_620c281895426e89' with 'oem57.inf'.
     idb:           {Register Driver Package: exit(0x00000000)} 00:35:03.085
     idb:           {Publish Driver Package: C:\WINDOWS\System32\DriverStore\FileRepository\prnms009.inf_amd64_620c281895426e89\prnms009.Inf} 00:35:03.100
     idb:                Activating driver package 'prnms009.inf_amd64_620c281895426e89'.
     cpy:                Published 'prnms009.inf_amd64_620c281895426e89\prnms009.inf' to 'oem57.inf'.
     idb:                Indexed 2 device IDs for 'prnms009.inf_amd64_620c281895426e89'.
     sto:                Flushed driver database node 'DRIVERS'. Time = 0 ms
     sto:                Flushed driver database node 'SYSTEM'. Time = 0 ms
     idb:           {Publish Driver Package: exit(0x00000000)} 00:35:03.194
     sto:           {DRIVERSTORE IMPORT END} 00:35:03.210
     dvi:                Flushed all driver package files to disk. Time = 0 ms
     sig:                Installed catalog 'prnms009.cat' as 'oem57.cat'.
     sto:           {DRIVERSTORE IMPORT END: exit(0x00000000)} 00:35:03.351
     sto:      {Core Driver Package Import: exit(0x00000000)} 00:35:03.367
     sto: {Stage Driver Package: exit(0x00000000)} 00:35:03.383
<<<  Section end 2022/01/15 00:35:03.445
<<<  [Exit status: SUCCESS]

section_title: Setup Import Driver Package 

instance_identifier: C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\prnms009.Inf

time_stamp: 2022/01/15 00:35:02.081


텍스트 로그 섹션1(헤더)

>>>  [Setup Import Driver Package - C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\prnms009.Inf]

>>> [section_title - instance_identifier]

section_title: 항상 존재, 섹션과 연결된 작업의 제목

instance_identifier: 작업 instance를 식별하는 식별자, 만약 없을 경우 섹션 헤더 첫번째 항목에는 section_title만 씀

 

>>>  Section start 2022/01/15 00:35:02.081

>>> time_stamp Section start

말그대로 섹션 시작 시간

time_stamp: yyyy/mm/dd hh:mm:ss.sss:(년도/월/일 시간:분:초:밀리초)


텍스트 로그 섹션2(본문)

텍스트 로그 섹션과 연결된 작업에 적용되는 로그 항목들

entry_prefix time_stamp event_category 들여쓰기 formatted_message

entry_prefix

- 로그 항목이 오류/경고/정보 메시지인지 나타냄

- 항상 존재

▶ 종류

"!!! " 오류
"! " 경고
"  " 정보

time_stamp

- 기록된 이벤트가 발생한 시스템 시간

- 선택

- setupAPI는 보통 포함되지 않으나 SetupWriteTextLog에는 있음

- yyyy/mm/dd hh:mm:ss.sss:(년도/월/일 시간:분:초:밀리초)

 

event_category

- 로그 항목을 만든 SetupAPI 작업 범주를 나타냄

- 일반적으로는 있지만 필수X

▶ 종류

Event_category 필드 문자열 SetupAPI 작업
... 공급업체 제공 작업? bak 백업 데이터
cci  클래스 설치 프로그램 or 공동 설치 프로그램 작업 cpy 파일 복사
dvi 장치 설치 flq 파일 대기열 관리
inf INF 파일 관리 ndv 새 장치 마법사
prp 장치 및 드라이버 속성 관리 reg 레지스트리 설정 관리
set 일반 설정 sig 디지털 서명 확인
sto 드라이버 저장소 관리 ui 사용자 인터페이스 관리 대화 상자
ump 사용자 모드 pnp 관리자    

 

들여쓰기

- 5개 공백(고정폭)

- 선택

- SetupAPI는 들여쓰기 포함 X (default)

- SetupWriteTextLog는 로그 항목에 포함된 들여쓰기 단위 수 변경 가능

 

formatted_message

- 로그 항목에 적용되는 특정 정보

- 로그에 대한 이벤트 수준, 활성화된 범주 수준은 → SetupAPI 로깅 레지스트리 참조

- 그룹화: 하위 섹션의 섹션 본문 로그 항목도 재귀적으로 그룹화함

>>>  [Setup Import Driver Package - C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\prnms009.Inf]
>>>  Section start 2022/01/15 00:35:02.081
      cmd: C:\WINDOWS\System32\spoolsv.exe
     inf: Provider: Microsoft
     (생략)
     sto: {Stage Driver Package: C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\prnms009.Inf} 00:35:02.379
     		(생략)
     flq:      {FILE_QUEUE_COMMIT} 00:35:02.441
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\MPDW_devmode_map.xml' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\MPDW_devmode_map.xml'.
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\prnms009.cat' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\prnms009.cat'.
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\prnms009.Inf' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\prnms009.Inf'.
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\MPDW-PDC.xml' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\MPDW-PDC.xml'.
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\MPDW-manifest.ini' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\MPDW-manifest.ini'.
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\MPDW-pipelineconfig.xml' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\MPDW-pipelineconfig.xml'.
     flq:           Copying 'C:\WINDOWS\system32\spool\tools\Microsoft Print To PDF\MPDW-constraints.js' to 'C:\WINDOWS\System32\DriverStore\Temp\{d37ef577-0938-8640-b9d1-b73a9cbc9c06}\MPDW-constraints.js'.
     flq:      {FILE_QUEUE_COMMIT - exit(0x00000000)} 00:35:02.724
     sto:     (생략)
     sto: {Stage Driver Package: exit(0x00000000)} 00:35:03.383
<<<  Section end 2022/01/15 00:35:03.445
<<<  [Exit status: SUCCESS]

'SetupAPI는 주석을 달고 로그 항목을 들여쓰는 방식으로 하위 섹션을 구분합니다.' 라는데 주석처리를 어떻게 한다는 건지는 모르겠음.

들여쓰는 방식으로 하위 섹션을 구분한다.

하위섹션 시작: {FILE_QUEUE_COMMIT} 00:35:02.441

하위섹션 끝: {FILE_QUEUE_COMMIT - exit(0x00000000)} 00:35:02.724하위 섹션 내용은 entry_prefix , event_category , indentation 및 formatted_message 를 포함하는 일반적인 로그 항목 시퀀스로 구성된다.


텍스트 로그 섹션3(바닥글)

텍스트 로그 섹션 닫기

<<<  Section end 2022/01/15 00:35:03.445

<<< [time_stamp Section end]

윈도우 버전이 바뀌면서 형식도 약간 바뀐 거 같다. (예시는 Windows 11기준, 뇌피셜)

그래도 구성은 똑같다. time_stamp와 'Section end' 문자열이 들어간다.

 

<<<  [Exit status: SUCCESS]

<<< [Exit Status(status)]

status 형식은 '0xhhhhhhhh' (16진수)라고 하나 이것도 윈도우 버전에 따라 다른 것 같다.(뇌피셜)

status 필드가 없으면 '[Exit]'만 존재한다.

 

텍스트 로그 센션 외의 로그 항목 포맷

섹션과 연관성은 없으나 섹션 사이에 적혀 있다.

entry_prefix time_stamp event_category formatted_message

Entry_prefix

Entry_prefix 메시지 유형
"!!! " 텍스트 로그 오류 메시지
"!   " 텍스트 로그 경고 메시지
"   ." 텍스트 로그 정보 메시지
"    " 애플리케이션 설치 텍스트 로그의 정보 메시지

time_stamp

- 선택

- 설치 응용 프로그램에서 로그 항목에 타임스탬프를 포함하도록 요청했을 때만 표시

 

event_category

- 로그 항목을 만든 SetupAPI 작업 범주를 나타냄

- 필수 X (default O)

- 존재할 경우, 텍스트 로그 세션 본문 형식의 문자열 중 하나가 포함됨

 

formatted_message

- 로그 항목과 관련된 정보 포함

- 필수 X (default O)

 

 

 

 

SetupAPI Text Logs - Windows drivers

SetupAPI Text Logs

docs.microsoft.com

 

'Waregame & CTF > Forensic' 카테고리의 다른 글

[ctf-d] DefCoN#21 #5  (0) 2022.02.16
USB, 레지스트리 분석 도구  (0) 2022.02.15
[HackCTF] Question?  (0) 2022.02.09
[ctf-d] 저는 이 파일이 내 친구와…  (0) 2022.01.25
[ictf] susPanda  (0) 2022.01.18