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

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ