StegoToolkit

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.

Auto-detect
Brute-Force

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)

  1. Upload the PNG or BMP image to check
  2. Click Auto Extract — PVDSTEG images decode automatically
  3. For unknown images: PDH scan shows the PVD signature, then run Brute-Force
  4. Enter passphrase if the payload was AES-256 encrypted
  5. 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.