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.