Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ghost Font Cracker

Reveals hidden messages created using Ghost Font's anti-AI tool.

Try it out online at ghost-font.netlify.app.

Screenshot generated using Ghost Font Cracker showing the text "Ghost Font Cracker" in a distorted outlined manner.

Prompt

No repo needed! Fits in a tweet!

In Claude Cowork/Code, Codex, or other AI with access to Node.js and ffmpeg, attach the .webm from Ghost Font and run the following prompt:

Send attached 1st frames to NEW Node.js script (decode 8bit PNG w/ zlib, whiteout pixels RGB>127, for nearblack blobs RGB<127: redraw blob under 3px in height and/or width 10x bigger, else make white, combine and average evenly ONLY 1ST FEW FRAMES), AI reads text in output

Strategy

Ghost Font images or video frames are made up of a bunch of dark 3px by 3px blocks of pixels. While held still, it may seem impossible to read the message, but there's a catch. Around the outlines of the text, the 3x3 blocks may be cut off in either direction. Additionally, there is light gray text in the background reading "WRITTEN IN GHOST FONT", which may throw off an AI attempting to read the message without processing.

  • For each frame:
    • Treat the image as grayscale, with 8 bits per channel.
    • For pixels that are light (above 127), set them to white and ignore them.
      • This gets rid of the "WRITTEN IN GHOST FONT" text.
    • For pixels that are dark (below 127):
      • If the "blob" of pixels is cut off; blob is below 3px in height or width:
        • Expand the blob by 10 times in size.
      • Otherwise, make the blob white.
      • Blobs may contain multiple 3px by 3px blocks, but it only matters if the blob is cut off.
  • Combine and average the pixels of each frame into a single image:
    • For each frame (n), overlay each frame with (100/n)% opacity.
      • For example: if there are 5 frames, each frame will be 20% opaque.
  • Send the resulting image to an AI agent, asking it to read the text in the image.

Requirements

  • Node.js
  • ffmpeg installed

reveal.js (command line)

node reveal.js ghost-message.webm
node reveal.js <video-file-or-frames-dir> [output.png] [numFrames]

node reveal.js ghost-message.webm combined.png 5
node reveal.js ./frames combined.png 5   # directory of pre-extracted PNGs also works

Processed frames are sent to processed_frames/.

reveal.html (web)

A web app implementation is included in the repo and online at https://ghost-font.netlify.app/.

AI Disclaimer

The strategy used to crack Ghost Font and README.md was created manually by Inclushe. You can tell because the other implementations are much more complex than this one.

The web app (reveal.html) and server implementation (reveal.js) was done by Claude Sonnet 5, with refinement and minor manual editing done to the web app.

Several one-shot tests of the prompt were done in Claude Cowork using Sonnet 5 because it gave me 2x more usage this week.

Supermaven autocomplete was used sparingly in README.md (I'm still holding off on Cursor).

About

Cracks messages generated with Mixfont's Ghost Font

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages