
أداة خداع تعتمد على الخطوط للاختبارات الهجومية، والبحث الأمني، وأي شيء آخر.
أداة خداع قائمة على الخطوط للفريق الأحمر (Red Teaming)، والأبحاث الأمنية، وأي شيء آخر.
يُخفي EvilFontTool نصًا قابلًا للقراءة آليًا داخل مستند يعرض نصًا مختلفًا تمامًا للقارئ البشري. ويقوم بذلك باستخدام الخطوط الخبيثة (Evil Fonts) — وهي خطوط تخدع المشاهد عمدًا بعرض حرف مختلف عن الذي يفهمه الحاسوب. من خلال إعادة تعيين أشكال الحروف (glyphs) في الخط، تُظهر الأحرف المرئية في المستند للبشر شيئًا واحدًا بينما ترى الأجهزة الطرفية وأنظمة الذكاء الاصطناعي والنسخ واللصق شيئًا آخر.
عروض ملفات docx لا تعمل على الجوال بسبب طريقة عرض الهواتف المحمولة للخطوط.
pip install evilfonttool
git clone https://github.com/DoctorEww/EvilFontTool.git
cd EvilFontTool
pip install .
للتطوير (تثبيت قابل للتحرير):
pip install -e .
تُثبَّت تلقائيًا عبر pip:
fonttools — تحليل الخطوط ومعالجتهاbrotli — ضغط WOFF2 (يستخدمه fonttools)python-docx — إنشاء ملفات DOCXreportlab — إنشاء ملفات PDFpdf2image — تحويل PDF إلى صورpdfminer.six — استخراج النص/التخطيط من PDFPillow — معالجة الصور لخط أنابيب PDFمتطلبات النظام (لا يُثبِّتها pip — يجب أن تكون في PATH الخاص بك):
pdf، الذي يستدعي soffice --headless لتحويل DOCX إلى PDF. أمر pdf تجريبي على ويندوز وقد لا يعمل كما هو مقصود.
sudo apt install libreofficebrew install --cask libreofficepdf2image لعرض صفحات PDF لأمر pdf
sudo apt install poppler-utilsbrew install popplerثبّت poppler في ~\Documents\poppler وأضفه إلى المسار.
irm (irm https://api.github.com/repos/oschwartz10612/poppler-windows/releases/latest).assets[0].browser_download_url -OutFile ~\Documents\poppler.zip
Expand-Archive ~\Documents\poppler.zip ~\Documents\poppler -Force
$bin = (gci ~\Documents\poppler -Recurse -Filter pdftotext.exe)[0].DirectoryName
[Environment]::SetEnvironmentVariable('Path', [Environment]::GetEnvironmentVariable('Path','User') + ";$bin", 'User'); $env:Path += ";$bin"
/usr/share/fontsC:\Windows\Fontspdf تجريبي على ويندوز وقد لا يعمل كما هو مقصود.doc --ttf-dir <ttffonts_dir> (EvilFontTool يضمّنها بنفسه) أو Word على ويندوز. خيار "تضمين الخطوط" الخاص بـ LibreOffice لا يعمل مع الخطوط الخبيثة.أمر pdf لا يعتمد على الخطوط الخبيثة إطلاقًا. فهو يعرض ملف DOCX كصورة (بحيث تكون الصفحة المرئية صورة وليست نصًا)، ثم يرسم النص الحاسوبي الحقيقي فوقها كنص غير مرئي بالكامل وقابل للتحديد. القراءة عبر النسخ واللصق واستخراج النص تقرأ تلك الطبقة غير المرئية بدلًا من ذلك. هناك عدد قليل من الأدوات الأخرى التي يمكنها فعل ذلك، لكن لا شيء بنفس سهولة أمر pdf عندما يكون لديك بالفعل ملف DOCX يعجبك.
إذا كنت تريد ملف PDF بخط خبيث حقيقي، فأنت بحاجة إلى بناء مستند Word بدون أحرف غير مرئية (الأحرف غير المرئية لا تصمد عند التحويل إلى PDF). من هناك، قم بالتصدير مباشرة من Word أو استخدم "Print to PDF". هذا يُبقي كل شيء في طبقة واحدة، مما يمنح المستند مؤشرات اختراق (IOCs) مختلفة عن خدعة الطبقتين المعروفة التي يستخدمها أمر pdf. أمر pdf موجود فقط لأن تلك العملية اليدوية مملة، وأحيانًا تريد فقط نسخة PDF سريعة من مستند Word.
الخلاصة؛
إذا اكتشف أحدهم كيفية تنفيذ الخيار 2 مع الأحرف غير المرئية، فأنا مدين له بمشروب. افتح issue وسأنسب لك الفضل في ملف README.
تتوفر جميع الوظائف عبر واجهة سطر أوامر واحدة بأربعة أوامر فرعية.
create — توليد عائلة الخطوط لاستخدامها في ملفات HTML أو DOCevilfonttool create <reference_font> <output_dir> <font_name>
| الوسيط | الوصف |
|---|---|
reference_font | مسار إلى ملف خط مصدر .ttf أو .woff |
output_dir | المجلد الذي ستُكتب فيه الخطوط وملف CSS |
font_name | بادئة الاسم الداخلية لعائلة الخطوط المولّدة |
مثال:
evilfonttool create fonts/Arial.ttf output/ 'Arial'
المخرجات:
output/fonts/*.woff — خطوط ويب، خط واحد لكل حرفoutput/ttffonts/*.ttf — خطوط TTF لتضمينها في المستنداتoutput/fonts.css — تعريفات @font-face للاستخدام على الويب.txt عادية.computer_file مساويًا أو أطول من السطر المقابل في human_fileweb — توليد ملف HTML بخط خبيثevilfonttool web <human_file> <computer_file> <output_file>
يتطلب وجود
fonts.cssوالخطوط المولّدة في مجلد الإخراج حتى يتمكن ملف HTML من استخدامها (أو غيّر المسار في ملف HTML).
| الوسيط | الوصف |
|---|---|
input_human_file | النص المرئي للقراء البشر. يمكن أن يكون عدة أسطر |
input_computer_file | النص المرئي للآلات / الذكاء الاصطناعي. يمكن أن يكون عدة أسطر |
output_file | مسار ملف HTML المولّد |
مثال:
evilfonttool web human.txt computer.txt output/index.html
doc — توليد ملف DOCX بخط خبيثevilfonttool doc <human_file> <computer_file> <output_file> <font_name> [--author AUTHOR] [--ttf-dir DIR]
يجب أن يطابق
font_nameالاسم المستخدم في خطوةcreate. يجب تثبيت خطوط TTF على النظام، أو تضمينها عبر--ttf-dir، أو تضمينها يدويًا في Word (ملف -> خيارات -> حفظ -> تضمين الخطوط) حتى يظهر الخداع بشكل صحيح.
خيار "تضمين الخطوط" الخاص بـ Word يعمل بشكل جيد، لكن خيار LibreOffice لا يعمل — لم أتمكن أبدًا من جعله يضمّن الخطوط الخبيثة بشكل صحيح. مرّر --ttf-dir بدلًا من ذلك: EvilFontTool يضمّن الخطوط بنفسه، مباشرة داخل ملف .docx، دون الاعتماد على تضمين Word أو LibreOffice إطلاقًا.
| الوسيط | الوصف |
|---|---|
input_human_file | النص المرئي للقراء البشر. يمكن أن يكون عدة أسطر |
input_computer_file | النص المرئي للآلات / الذكاء الاصطناعي. يمكن أن يكون عدة أسطر |
output_file | مسار ملف DOCX المولّد |
font_name | اسم عائلة الخط (يجب أن يطابق خطوة create) |
--author | بيانات وصفية لمؤلف مستند DOCX (الافتراضي: لا شيء) |
--ttf-dir | مجلد خطوط TTF الخبيثة (مثل <output_dir>/ttffonts). إذا تم تحديده، يتم تضمين الخطوط المستخدمة فعليًا مباشرة داخل ملف .docx، بحيث يظهر الخداع بشكل صحيح دون تثبيتها على مستوى النظام. يضمّن فقط الأحرف الموجودة في الملف البشري. |
مثال:
evilfonttool doc human.txt computer.txt output/secret.docx MyFont --author "Finance Team" --ttf-dir output/ttffonts
pdf — تحويل ملف DOCX بخط خبيث إلى PDF آمن للنسخ واللصقevilfonttool pdf <input_docx> <output_file> [--ttf-dir DIR] [--dpi DPI] [--soffice PATH] [--ink-font FONT] [--title TITLE] [--author AUTHOR] [--subject SUBJECT] [--producer PRODUCER]