Skip to main content

Depix

Depix is a tool for recovering passwords from pixelized screenshots.

This implementation works on pixelized images that were created with a linear box filter.

In this article I cover background information on pixelization and similar research.

Example

python depix.py -p images/testimages/testimage3_pixels.png -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png -o output.png

image

Usage

  • Cut out the pixelated blocks from the screenshot as a single rectangle.
  • Paste a De Bruijn sequence with expected characters in an editor with the same font settings (text size, font, color, hsl).
  • Make a screenshot of the sequence. If possible, use the same screenshot tool that was used to create the pixelized image.
  • Run python depix.py -p [pixelated rectangle image] -s [search sequence image] -o output.png

Algorithm

The algorithm uses the fact that the linear box filter processes every block separately. For every block it pixelizes all blocks in the search image to check for direct matches.

For most pixelized images Depix manages to find single-match results. It assumes these are correct. The matches of surrounding multi-match blocks are then compared to be geometrically at the same distance as in the pixelized image. Matches are also treated as correct. This process is repeated a couple of times.

After correct blocks have no more geometrical matches, it will output all correct blocks directly. For multi-match blocks, it outputs the average of all matches.

Misc

Usage issues

Release files for depix 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for depix 1.0.2
File Size Uploaded
depix-1.0.2.tar.gz 5.5 kB Details

Release files / depix-1.0.2.tar.gz

Download URL depix-1.0.2.tar.gz
Size 5.5 kB
Tags Source
SHA-256 checksum
How to use checksums
6499c6c6916948e000b06af00fc6f2bd6a708c5bd255a9751070d15a4e0d328b
BLAKE2b-256 checksum
How to use checksums
9536c8f61c957ff4d6d83959e93c8260fe06020bcf9ab91c501a385d8a134001
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.11

Release history Release notifications | RSS feed

This release

1.0.2 This release

1 release file

1.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page