[164] IT 비전공자 [dreamhack] chrome_artifacts문제풀기
사용 Tools: FTK_Imager, DB browser for SQL lite, https://www.epochconverter.com/webkit
WebKit/Chrome Timestamp Converter
Convert WebKit/Chrome timestamps to human-readable date & Unix time This timestamp format is used in web browsers such as Apple Safari (WebKit), Google Chrome and Opera (Chromium/Blink). It's a 64-bit value for microseconds since Jan 1, 1601 00:00 UTC. One
www.epochconverter.com
이걸 전부 다 종합하면!
DH{Dtafalonso-Android-L-Chrome_1712416601_image/x-icon}
ftk_imager로 추출한 C:\Users\victim\AppData\Local\Google\Chrome\User Data\Default\History 파일을 db brower for sqlite로 읽을 수 있는 이유가 뭐야? 왜 그냥 안열려? 아니면 깨져? 이후 db에서 starttime을 알아냈는데 이걸 WebKit/Chrome Timestamp Converter로 변환하는 이유는 문제에서 파일 다운로드를 시작한 시간 (Unix Timestamp, seconds 단위)를 찾아야해서 그렇지?
- FTK Imager로 추출한 History 파일이 DB Browser for SQLite에서 열리는 이유
- C:\Users\victim\AppData\Local\Google\Chrome\User Data\Default\History 파일은 SQLite 데이터베이스 파일이기 때문이야.
- Chrome의 History 파일은 SQLite3 형식으로 저장되므로, DB Browser for SQLite 같은 툴에서 열 수 있어.
- SQLite는 자체적인 포맷을 가지고 있고, 일반 텍스트 파일처럼 바로 열리지는 않아. 그래서 메모장 같은 걸로 열면 깨진 것처럼 보이거나 바이너리 데이터가 섞여 있는 것처럼 보일 수 있어.
- 왜 WebKit/Chrome Timestamp Converter를 사용해서 변환하는가?
- History DB의 start_time 값은 일반적인 **Unix Timestamp (1970년 기준 초 단위)**가 아니라, WebKit 타임스탬프 형식이야.
- WebKit 타임스탬프는 1601년 1월 1일을 기준으로 밀리초 단위로 기록됨.
- 문제에서 파일 다운로드 시작 시간을 찾으려면 **Unix Timestamp (초 단위)**가 필요하므로 변환해야 해.
- 변환 과정
WebKit 타임스탬프 → Unix Timestamp 변환 공식:- WebKit 타임스탬프는 1,000,000 (즉, 마이크로초 단위)로 저장됨 → 초 단위로 변환하려면 1,000,000으로 나눈다.
- WebKit의 기준 시간(1601년 1월 1일)과 Unix 기준 시간(1970년 1월 1일)의 차이인 11644473600을 빼야 한다.
- Unix Timestamp = (WebKit Timestamp / 1,000,000) - 11644473600
- 정리
- History 파일이 그냥 안 열리는 이유 → SQLite 데이터베이스 파일이기 때문.
- start_time을 변환하는 이유 → Chrome/WebKit 타임스탬프는 Unix 타임스탬프와 기준이 다르므로 변환이 필요.
- 변환 공식 → (WebKit Timestamp / 1,000,000) - 11644473600
이제 문제에서 요구하는 파일 다운로드 시작 시간을 찾으려면 History DB의 downloads 테이블에서 start_time을 추출하고 변환하면 돼! 🚀