Ghost Font Bypass and Hardening

newyorker_downt1 pts1 comments

GitHub - Sakotass/ghost-font-bypass-hardening: How ghost font (Anti-AI font) text protection can be bypassed without AI. And hardened against recovery. · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

Sakotass

ghost-font-bypass-hardening

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>4 Commits<br>4 Commits

attack

attack

code

code

defense

defense

figures

figures

.gitignore

.gitignore

README.md

README.md

ghost_font_bypass_hardening.pdf

ghost_font_bypass_hardening.pdf

requirements.txt

requirements.txt

View all files

Repository files navigation

Ghost Font bypass and hardening

Before<br>After

I built this after discovering a way to bypass the protection mechanism by identifying, aligning and removing the moving black elements. The attack uses nine frames, a small vertical-shift search, frame subtraction, thresholding and connected component analysis. It does not use machine learning.

Browser version

Open the Ghost Font page https://www.mixfont.com/ghost-font, open the developer console, paste code/ghost_font_browser_decoder.js and press Enter. The script captures nine frames from the visible canvas and opens the recovered mask in an overlay.

Browser origin rules still apply. If the canvas cannot be read/download or record the animation and use the Python decoder.

Setup

Python 3.12 and a system ffmpeg executable are required.

python -m pip install -r requirements.txt

Attack

python code/vulnerable_ghost_font_demo.py \<br>--output attack/ghost-vulnerable.mp4 \<br>--report attack/ghost-attack.json \<br>--artifacts attack/artifacts

python code/recover_ghost_font.py \<br>attack/ghost-vulnerable.mp4 \<br>--output attack/recovered-red.png \<br>--classical-ocr \<br>--ocr-output attack/recovered.txt

The measured mask overlap is 0.9077 IoU. The template readout is GHOST.

Defense

python code/hardened_ghost_font_demo.py \<br>--output defense/ghost-hardened.mp4 \<br>--report defense/ghost-defense.json \<br>--artifacts defense/artifacts

The same attack reaches 0.0761 IoU and returns W4 WZWJ W. This result is limited to the global vertical-registration attack implemented here.

Figures

python code/build_attack_figure.py --results attack --output figures<br>python code/build_defense_figure.py --results defense --output figures

Both figures are built from the videos and decoder outputs in this repository.

About<br>How ghost font (Anti-AI font) text protection can be bypassed without AI. And hardened against recovery.<br>Resources<br>Readme<br>Activity<br>Stars<br>2 stars<br>Watchers<br>0 watching<br>Forks<br>0 forks<br>Report repository

Releases

Packages

Contributors

Languages

You can’t perform that action at this time.

ghost attack font code defense python

Related Articles