Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
AutoPiff — Semantic analysis engine for detecting vulnerability fixes in Windows kernel driver patches — 58 YAML rules, Ghidra decompilation, reachability tracing, and scoring | Kitploit
Tools/GitHubGitHub/splintersfury/autopiff
Static AnalysisVulnerability AnalysisExploitationReverse EngineeringMalware AnalysisBinary AnalysisFirmware Analysis
GitHubsplintersfury/autopiff

AutoPiff

Semantic analysis engine for detecting vulnerability fixes in Windows kernel driver patches — 58 YAML rules, Ghidra decompilation, reachability tracing, and scoring

View Repository
644167 months agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

AutoPiff

Automated Patch Intelligence and Finding Framework

A semantic analysis engine for detecting vulnerability fixes in Windows kernel driver patches. AutoPiff uses conservative YAML rules to identify security-relevant code changes with high precision and explainability.

Overview

AutoPiff analyzes the differences between vulnerable and patched driver versions to automatically detect:

  • Use-After-Free fixes (null assignments after ExFreePool)
  • Bounds check additions (length validation before memcpy)
  • User/kernel boundary hardening (ProbeForRead/ProbeForWrite)
  • Integer overflow protections (safe math helpers)
  • State hardening (interlocked refcounting)
  • IOCTL input validation, pool corruption guards, privilege checks, and more

Key Features

  • High Precision: Conservative rules minimize false positives
  • Explainable: Every finding includes rationale and evidence
  • Sink-Aware: Rules consider proximity to dangerous APIs
  • Scoring Model: Ranks findings by exploitability and reachability
  • Karton Integration: Runs as a distributed service in malware analysis pipelines

Why AutoPiff?

Needle in a Haystack

Vendor releases 500 driver updates/year
├── 490 are feature/performance/cosmetic changes
├── 8 are minor bug fixes
└── 2 are silent security fixes (no CVE assigned)

Without automation: Manually review 500 to find 2
With AutoPiff:      Review 10 high-scorers to find 2

Security patches are often released without CVE assignments. Manually reverse engineering every driver update to find the security-relevant ones is not feasible. AutoPiff solves this by automatically surfacing the changes that matter.

What AutoPiff Automates

PhaseManual EffortWith AutoPiffTime Saved
Version pairing5-15 min/driverAutomatic~100%
Decompilation2-10 min/binaryBatched, parallel~95%
Function matching30-60 min/pairInstant~100%
Identifying security changes2-8 hours/pairSeconds~99%
Initial triage & ranking1-2 hoursInstant~100%
Report generation30-60 minInstant~100%

Total: 4-12 hours per driver pair down to 2-5 minutes

What Still Requires Human Expertise

┌─────────────────────────────────────────────────────────────────┐
│  AUTOMATED by AutoPiff                                          │
│  ├── Find the needle: "This function changed near ExFreePool"   │
│  ├── Classify: "Looks like a use-after-free fix"                │
│  └── Rank: "Score 5.5 - worth investigating"                    │
├─────────────────────────────────────────────────────────────────┤
│  STILL MANUAL (Your expertise)                                  │
│  ├── Confirm exploitability: "Can I actually trigger this?"     │
│  ├── Root cause analysis: "Why was this vulnerable?"            │
│  ├── Exploit development: "How do I reach this sink?"           │
│  └── Impact assessment: "What's the real-world risk?"           │
└─────────────────────────────────────────────────────────────────┘

AutoPiff doesn't replace exploitation research. It makes it feasible at scale by automating the reconnaissance phase.

Use Cases

1. Silent Patch Detection

  • Monitor drivers for security fixes released without CVEs
  • Get alerts when high-scoring semantic deltas appear
  • Catch vulnerabilities before they're publicly disclosed

2. 1-Day Vulnerability Research

  • When a CVE is announced, quickly identify the exact patch
  • Correlate patch patterns with vulnerability classes
  • Accelerate exploit development timelines

3. Vendor Security Auditing

  • Analyze all versions of a driver family over time
  • Generate timelines showing when fixes appeared
  • Identify patterns in how vendors address vulnerabilities

4. Historical CVE Corpus Building

  • Process known CVE driver pairs to build training data
  • Validate and improve detection rules
  • Create a knowledge base of patch signatures

Architecture

AutoPiff runs as a Karton pipeline with 8 sequential stages plus a parallel DriverAtlas triage branch. Each stage is an independent microservice communicating through Redis/RabbitMQ.

graph LR
    sources["WinBIndex<br/>VirusTotal"]:::src --> s0["Stage 0<br/>Monitor"]
    s0 --> s14["Stages 1-4<br/>Patch Differ"]
    s0 --> triage["DriverAtlas<br/>Triage"]:::triage
    s14 --> s5["Stage 5<br/>Reachability"]
    s5 --> s6["Stage 6<br/>Ranking"]
    s6 --> s7["Stage 7<br/>Report"]
    s6 --> s8["Stage 8<br/>Alerter"]
    triage --> alerts["MWDB Tags<br/>+ Alerts"]:::triage

    classDef src fill:#1a1a2e,stroke:#e94560,color:#eee
    classDef triage fill:#1a1a2e,stroke:#e9a345,color:#eee
    classDef default fill:#16213e,stroke:#0f3460,color:#eee
StageServiceWhat it does
0driver-monitorPolls WinBIndex and VirusTotal for new driver versions, uploads to MWDB
1-4karton-patch-differVersion pairing, Ghidra decompilation, function matching, semantic rule evaluation
5karton-reachabilityGhidra call-graph BFS from IOCTL/IRP entry points to changed functions, full decompilation export
6karton-rankingScores findings using reachability, semantic severity, and attack surface
7karton-reportGenerates structured markdown reports, uploads to MWDB
8autopiff-alerterSends Telegram alerts for findings scoring >= 8.0
—autopiff-driver-triageDriverAtlas attack surface scoring (parallel to 1-4), tags MWDB samples, Telegram alerts

Semantic Rules

AutoPiff includes 58 rules across 22 categories. See Docs/semantic_rules.md for the full specification and Docs/SEMANTIC_RULES_REFERENCE.md for the technical reference.

CategoryExample Detection
bounds_checkAdded length check before memcpy
lifetime_fixNull assignment after ExFreePool
user_boundary_checkAdded ProbeForRead/ProbeForWrite
int_overflowSafe math helper usage
state_hardeningInterlocked refcount operations
ioctl_input_validationNew size/type checks in dispatch handlers
pool_type_hardeningMigration to NonPagedPoolNx
privilege_checkAdded SeSinglePrivilegeCheck

Sink Groups

The rule engine tracks 50+ dangerous API symbols across 8 sink groups:

  • memory_copy: RtlCopyMemory, memcpy, memmove
  • pool_alloc: ExAllocatePool, ExAllocatePoolWithTag
  • pool_free: ExFreePool, ExFreePoolWithTag
  • user_probe: ProbeForRead, ProbeForWrite
  • io_sanitization: RtlULongAdd, RtlSizeTMult
  • exceptions: __try, __except
  • string_copy: strcpy, wcsncpy
  • refcounting: InterlockedIncrement/Decrement

Scoring Model

Findings are scored using a configurable model (rules/scoring.yaml):

final_score = semantic_score + reachability_bonus + sink_bonus - penalties
Download Tool