지난 글에서는 File Header 를 분석하여 chunk의 위치를 찾는 방법을 알아보았습니다. 이번 글에서는 Chunk 내에 있는 Header 를 분석하여 Recoard 의 위치를 찾아가고, Recoard 를 읽어가는 방법에 대하여 알아보도록 하겠습니다.
이번 역시 위 구조로는 눈에 안들어오니 HXD와 함께 삽질을 시작해 봅시다.
그럼 이제 레코드 위치를 찾아보도록 하겠습니다. 먼저 Chunk 의 해더는 0x200 이었습니다. 그렇다면 chunk의 offset + 0x200 하면 첫번째 레코드의 offset이 나오겠네요! 그리고 다음 레코드로 넘어가려면 현재 레코드 길이만큼 뛰어넘으면 될것 같네요!
이번글은 여기서 마치도록 하겠습니다. 이번글은 약간 chunk 의 구조만 집중적으로 알아보고 다른 내용이 없네요 ㅠㅜ
이제 다음장에서는 레코드 영역을 제대로 분석하여보고, BinaryXML 이 무엇인지 간단히 알아보겠습니다.
안녕하세요! 드디어 evtx 파일의 구조분석 두번째 글을 올리게 되었습니다. 저번글에서는 이벤트 로그파일이 무엇이고, 이벤트로그파일의 간단한 구조들을 알아보았는데요. 이번글 부터는 HEX 뷰어를 통해 하나하나 삽질을 시작해볼까 합니다.
이번글 에서는 evtx 파일의 파일 해더 부분을 구체적으로 알아보고, Chunk 를 찾아가는 방법을 공부해볼까 합니다.
위 사진은 Header 의 구조를 한눈에 볼 수 있는 표 입니다. 이제 HXD 를 이용하여 삽질을 해보도록 합시다!
여기까지가 파일 헤더의 part1 영역이며, 이 아래 전체 영역은 대부분 0x00으로 채워져 있습니다. offset 0x00 부터 0x1000만큼 움직이면 첫번째 chunk 가 나오게 됩니다.
chunk 부분은 다음 글에서 다루겠지만, chunk 를 찾아가는 방법을 소개하고 이번 글을 마치겠습니다!
먼저 Header 가 끝나면 바로 chunk 가 시작된다고 했습니다. 그리고 저번글에서는 Chunk의 크기는 0x10000 이 기본이라고 했구요. 그럼 첫번째 Chunk 의 위치는 당연히 0x1000 이 될껍니다. 그리고 두번째 Chunk는 첫번째 Chunk 시작위치에서 0x10000만큼 이동한 0x11000이 되겠죠!
그럼 N번째(N은 0이상의 정수) Chunk 의 offset 을 찾을 수 있게 됩니다!
Chunk N’s offset == 0x1000 + (N * 0x10000)
위 식을 이용하면 해당하는 chunk 의 위치로 갈 수 있습니다.
다음글에서는 Chunk 의 구조와, Chunk 에서 레코드를 찾는 방법까지 알아보도록 하겠습니다. 글을 익어주셔서 진심으로 감사합니다!
Windows 의 이벤트로그를 저장하는 파일입니다. 과거 Windows XP 시절에는 EVT 파일이었으나 현재 Vista 이상버전부터는 확장명이 EVTX 로 바뀌며 구조 또한 조금 바뀌었다고 합니다. 이 파일은 c:/Windows/System32/winevt/Logs 에 다양한 종류로 존재하면서 대부분의 이벤트들을 기록하고 있습니다. 이 파일만 있다면, 컴퓨터에서 어떤일이 일어났는지 확인을 할 수도 있습니다.
다양한 EVTX 파일
Windows 에는 아래와 같은 종류의 이벤트로그가 존재합니다.
Application
Security
Setup
System
Forwarded Events
이 외에도 다양한 이벤트로그가 존재합니다. (너무 많아서 이하 설명을 생략합니다;;)
EVTX 파일의 기본구조
기본적으로는 Header 와 여러개의 Chunk 들로 이뤄져 있고 Chunk 속에는 Record 들이 있습니다. Record 가 계속 추가 되다가 Chunk 의 최대크기 (0x10000) 을 넘게 되면 새로 Chunk 가 추가되고 그 위에 Record 를 추가합니다.
그럼 이제 EVTX 의 기본 구조를 알아보았으니, 다음편에서는 EVTX의 Header 구조와 Chunk 를 알아보겠습니다.