RE Tips

Thấy tip này cũng hay, nên share cho bà con làm RE và forensics, dính tới datetime trên Win và Unix. Thấy con số 116,444,736,000,000,000 này quài, quen thuộc, trong nhiều source, mà éo hiểu tại sao. Trên Windows, có 2 struct time chính, là SYSTEMTIME VÀ FILETIME. SYSTEMTIME lưu rõ từng field ngày, tháng,

Thấy tip này cũng hay, nên share cho bà con làm RE và forensics, dính tới datetime trên Win và Unix.
Thấy con số 116,444,736,000,000,000 này quài, quen thuộc, trong nhiều source, mà éo hiểu tại sao.
Trên Windows, có 2 struct time chính, là SYSTEMTIME VÀ FILETIME.
SYSTEMTIME lưu rõ từng field ngày, tháng, năm, giờ phút giây theo UTC.
FILETIME là 1 qword 64bit lưu 100 nanosecond interval tính từ ngày 1 tháng 1 năm 1601, cũng UTC. Vd nó lưu 10 thì là 10 * 100 = 1000 nanoseconds từ 1/1/1601.
1 giây= 1,000 mili giây = 1,000,000 micro giây = 1,000,000,000 nano giây.
Còn dạn Dos datetime thì không có struct riêng, tính từ 1/1/1980.
Trên Windows, các bạn coder, re, forensic sẽ gặp và có các API chuyển đổi giữa UTC qua lại Local, FILETIME qua lại với SYSTEMTIME và Dos datetime.
File time (create/modify/access…) được Windows lưu xuống harddisk ở FILETIME.
Trong khi đó, trong C, thì datetime lại được biểu diển bởi kiểu time_t, là 1 qword 64bit, nhưng lại là số giây (second) tính từ ngày 1 tháng 1 1970.
Do vậy, nên những gì phát triển lên từ C đều đa số dùng kiểu time_t này cho datetime: Unix, kiểu time trong Python….
Vậy chuyển đổi 1 FILETIME trên Windows qua lại với time_t trên Unix, Python thì như thế nào.
Thì phải đụng tới con số 116,444,736,000,000,000 này. Nó chính là 100 nanoseconds interval chính xác giữa 1/1/1601 và 1/1/1970.
Các bạn đọc thêm ở blog này.
Vì hồi mới quay lại làm rờ, độ script giải mã con Nanocore .NET, đụng tới datetime này, mình éo hiểu, bỏ qua, cứ cho mày in ra con số.
Nay đang phân tích con mèo vừa rồi, lại thấy số này. Quyết tìm hiểu cho ra ngọn ngành.
Nên nay mạn phép share lên cho anh em coder/RE/forensic. Ai biết rồi thì thôi, ai chưa biết thì đọc.
https://sunshine2k.blogspot.com/2014/08/where-does-116444736000000000-come-from.html?fbclid=IwAR0MQ4fdZ1yG_m6t6lCn069d46r8I1PvOSeMApoLduBsGFog3raZL_eB4d8

Nguồn: viblo.asia

Bài viết liên quan

7 Cách Tăng Tốc Ứng Dụng React Hiệu Quả Mà Bạn Có Thể Làm Ngay

React là một thư viện JavaScript phổ biến trong việc xây dựng giao diện người d

Trung Quốc “thả quân bài tẩy”: hàng loạt robot hình người!

MỘT CUỘC CÁCH MẠNG ROBOT ĐANG HÌNH THÀNH Ở TRUNG QUỐC Thượng Hải, ngày 13/5 –

9 Mẹo lập trình Web “ẩn mình” giúp tiết kiệm hàng giờ đồng hồ

Hầu hết các lập trình viên (kể cả những người giỏi) đều tốn thời gian x

Can GPT-4o Generate Images? All You Need to Know about GPT-4o-image

OpenAI‘s GPT-4o, introduced on March 25, 2025, has revolutionized the way we create visual con