Text-in-Image Extractor
Extract hidden text from images. Auto-detects 11 LSB configurations. Bit plane visualizer, chi-square pre-scan, CTF flag detection. Browser alternative to zsteg and Stegsolve.
Drop image or click to browse
PNG, BMP, WebP recommended — max 50 MB (10 MB mobile)
100% client-side — pixel processing happens entirely in your browser via Canvas API. Nothing is uploaded. Output is always lossless PNG.
How to Find Hidden Text in an Image (4 steps)
- Upload the suspicious image — instant chi-square pre-scan shows which channels look anomalous
- Click Auto-Detect to try 11 channel/bit-depth/method combinations automatically
- Enter the AES-256 password if the payload is encrypted, or try without one first
- Copy the decoded text, download the forensic report, or explore the bit plane visualizer
Text-in-Image Decoding Methods — What This Tool Handles
| Method | Technique | Speed | Best For |
|---|---|---|---|
| Auto-Detect (11 configs) | Tries all common encoding combinations — sequential, adaptive, R/G/B channels, 1–3 bit depth | ~500ms on 2MP image | Default mode — works for 90% of encoded images |
| Chi-Square Pre-Scan | Statistical test on pixel value pairs to identify anomalous channels | Instant — runs on upload | Identifies the most likely channel before attempting decode |
| Bit Plane Visualizer | Renders all 24 bit planes (8 bits × 3 channels) as black/white images | ~300ms in WebWorker | Manual forensic analysis — structured LSB noise is visible in stego images |
| Manual Decode | User specifies channel, bit depth, method, and seed exactly | ~30ms on 1MP image | When auto-detect fails or you know the exact configuration |
| RS Recovery | Reconstructs payload from partially corrupted stego image using Reed-Solomon | +100ms overhead | When image was re-saved or slightly modified after encoding |
Frequently Asked Questions
How do I find hidden text in an image?
Upload the image — an instant chi-square pre-scan will identify which channels look anomalous. Then click Auto-Detect to try 11 configurations automatically. If a match is found, the decoded text appears immediately.
What is this browser alternative to zsteg and Stegsolve?
zsteg is a Ruby gem (CLI only). Stegsolve is a Java desktop app. This tool performs the same multi-config scan, bit plane analysis, and AES decryption — entirely in your browser with no install, no upload.
How does the chi-square pre-scan work?
After sequential LSB embedding, value pairs (0,1), (2,3), (4,5)… become approximately equal in frequency. The chi-square test detects this pattern. A high p-value (above 0.5) in a specific channel means that channel likely contains sequential LSB payload.
What is the bit plane visualizer?
Each colour channel has 8 bit planes (MSB to LSB). In a clean image, the LSB plane looks like random noise. In a sequentially-encoded stego image, the LSB plane shows structured patterns — the hidden data is literally visible as texture.
Auto-detect failed — what should I try next?
Switch to Manual mode and try: (1) all three channels individually, (2) higher bit depths (2-bit, 3-bit), (3) if a seed hint is available, enter it in scatter mode. The bit plane visualizer can also show which channel looks unusual.
The output looks encrypted — how do I decrypt it?
Enter the AES-256 password in the password field and click decode again. If the entropy shows ~7.9/8.0, the payload is encrypted. Without the correct password you will see garbled output (plausible deniability is intentional).
Is the image uploaded to a server?
Never. All decoding, chi-square analysis, bit plane rendering, and AES decryption runs in your browser via the Canvas API and WebWorker. Nothing is uploaded.
Can I use this to solve CTF challenges?
Yes. Auto-detect scans the 11 most common CTF image stego configurations. CTF flag patterns (FLAG{…}, HTB{…}, picoCTF{…}, etc.) are automatically detected and highlighted. The bit plane visualizer and manual seed mode cover more advanced challenges.