Phân tích diff phiên bản Windows với WinDiff
Dùng WinDiff CLI để so sánh hai bản build Windows và diễn giải syscall, struct, cờ mitigation, ETW/callback mới thành báo cáo nghiên cứu bảo mật.
Bảo mật · ReviewNâng cao★ 392⑂ 21Điểm AI 8/10Cập nhật lần cuối: 11 thg 8, 2026
Làm được gì
- Chạy
windiff_clingay trong repo WinDiff để tạo cơ sở dữ liệu symbol/type/syscall cho hai phiên bản Windows (hoặc hai mức patch của cùng phiên bản). - Dùng
make_config.pyđể sinh file cấu hình tối thiểu vàwindiff_diff.pyđể tính chính xác phần thêm/xóa/thay đổi theo từng binary. - Truy ngược các bitfield ẩn danh (
_unnamed_0xNNNN) về struct cha để phát hiện cờ mitigation mới, ví dụ bit mới trong_EPROCESS::MitigationFlags2Values. - Không chỉ liệt kê tên: suy luận ý nghĩa dựa trên tiền tố
Nt/Zw/Ps/Ke/Mm/Ob/Se/Cm/Etw/Civà vai trò từng module, rồi viết báo cáo phân theo ba nhóm: EDR/anti-malware, anti-cheat, nghiên cứu lỗ hổng.
Phù hợp với ai
- Nhà nghiên cứu bảo mật / hunter lỗ hổng làm việc với kernel Windows
- Lập trình viên EDR, anti-malware muốn theo dõi ETW provider, callback Ps/Ob/Cm, kênh EtwTi mới
- Lập trình viên anti-cheat quan tâm tới PPL, anti-tamper, hardening handle/object
- Nhóm cần tài liệu hóa thay đổi bề mặt tấn công sau mỗi bản cập nhật Windows
Ví dụ sử dụng
- "Diff ntoskrnl.exe giữa 21H2 và 24H2, liệt kê syscall mới"
- "Bản KB này đổi gì trong win32k.sys và ci.dll? Chỉ tìm cờ mitigation mới"
- "Có ETW provider hay kernel callback nào mới không, và nó có ý nghĩa gì với EDR?"
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/ergrelet/windiff/HEAD/.claude/skills/windiff-version-diff-analysis/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục .claude/skills/windiff-version-diff-analysis từ repo GitHub ergrelet/windiff vào ~/.claude/skills/windiff-version-diff-analysis/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/ergrelet/windiff.git && mkdir -p ~/.claude/skills && cp -r windiff/.claude/skills/windiff-version-diff-analysis ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Cài Rust toolchain (
cargo) và Python 3. Cần Internet vì công cụ tải PE từ Winbindex và PDB từ MSDL. - Clone repo:
git clone https://github.com/ergrelet/windiff.git - Copy skill vào thư mục skill cá nhân:
mkdir -p ~/.claude/skills && cp -r windiff/.claude/skills/windiff-version-diff-analysis ~/.claude/skills/ - Skill được thiết kế để chạy bên trong repo WinDiff, nên hãy
cd windiffrồi mở Claude Code (nếu repo đã có sẵn.claude/skills/thì có thể bỏ bước 3). - Tạo thư mục làm việc tạm:
mkdir -p local - Yêu cầu Claude, ví dụ "diff ntoskrnl.exe giữa 21H2 và 11-24H2"; skill sẽ tự sinh config → chạy CLI → diff → viết báo cáo diễn giải.
- Tra tên phiên bản/update hợp lệ trong
ci/db_configuration.jsoncủa repo.
Xem mã nguồn trên GitHub ↗Giấy phép: GPL-3.0