Pixel Value Differencing Extractor
Extract hidden data from PVD-encoded PNG/BMP images. PVDSTEG v1 auto-detect, Pixel Difference Histogram (PDH) signature analysis, 6-config brute-force, AES-256-GCM decryption, CTF flag detector.
Try the demo instantly
Loads a stego PNG with a hidden message already embedded — auto-extracts instantly
Drop PNG or BMP here, or click to browse
JPEG not supported — lossy compression destroys embedded bits
100% Client-Side Processing
Your image is processed entirely in this browser tab. Nothing is uploaded to any server.
How to Extract Pixel Value Differencing Steganography (5 steps)
- Upload the PNG or BMP image to check
- Click Auto Extract — PVDSTEG images decode automatically
- For unknown images: PDH scan shows the PVD signature, then run Brute-Force
- Enter passphrase if the payload was AES-256 encrypted
- Copy the decoded text or download the hidden file
Frequently Asked Questions
What is the PDH and how does it detect PVD steganography?
The Pixel Difference Histogram (PDH) plots the frequency of each absolute difference value between adjacent pixels. PVD groups differences into ranges and shifts pixels to fall within them, which creates characteristic step patterns at range boundaries (d=7, 15, 31, 63, 127 for Wu & Tsai) — Zhang & Wang (2004) demonstrated this as a practical detection method. This tool computes and scores that signature before attempting to decode anything.
Can I decode images from other PVD tools (like stegopvd)?
Partially. Other implementations don't use this tool's PVDSTEG header, so auto-detect won't trigger. Brute-Force mode tries the 6 most common configurations (Standard/Zigzag/Hybrid x Wu-Tsai/3-Range/4-Range) against the Red channel — the channel the base Wu & Tsai algorithm implicitly uses — which covers most CTF-style PVD challenges.
Why does brute-force return garbage?
The payload was most likely AES-256-GCM encrypted, or the wrong channel/variant combination was picked. If a PVDSTEG header IS present but flags encryption, enter the passphrase and try Auto Extract again.
The PDH shows a PVD signature but nothing decodes — why?
The image may have been re-saved as JPEG after PVD encoding. Even a single JPEG re-save changes pixel values unpredictably, destroying the precise differences that carry the hidden bits. Obtain the original PNG or BMP file.
What does the confidence score mean?
A valid PVDSTEG header with a passing CRC32 check gives 97% confidence (rounding for real-world variance). Brute-force results are scored 0-100% from entropy drop, printable-ASCII ratio, and file-magic-byte detection on the extracted sample — scores above ~25% are shown as a usable result, higher scores are more trustworthy.