Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
confusable-vision — 793 زوجًا متشابهًا مفقودًا من Unicode TR39، مجموعة بيانات عبر النصوص لأول مرة في العالم، تقييم SSIM مدرك للخطوط عبر 230 خط وأكثر من 22,000 حرف | Kitploit
أدوات/GitHubGitHub/paultendo/confusable-vision
الاستخبارات مفتوحة المصدر (OSINT)الاستطلاعأمن الويباستخبارات التهديداتأمن سلسلة التوريدالأوراق والأبحاثالتعلم والتعليمموارد منسقة
GitHubpaultendo/confusable-vision

confusable-vision

793 زوجًا متشابهًا مفقودًا من Unicode TR39، مجموعة بيانات عبر النصوص لأول مرة في العالم، تقييم SSIM مدرك للخطوط عبر 230 خط وأكثر من 22,000 حرف

عرض المستودع
11منذ 5 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

confusable-vision

تسجيل تشابه الحروف الرسومية التجريبي باستخدام تتبع الشعاع من الخطوط المتجهة. يعرض أزواج الأحرف المربكة في Unicode عبر 245 خط نظام، ويقيس التشابه الهيكلي مباشرة من ملامح الخط (بدون معالجة نقطية)، وينتج مخرجات JSON مسجلة بدرجات مسافة مستمرة لكل خط.

نتائج رئيسية من 52.6 مليون مقارنة لحرف واحد و190 مليون مقارنة متعددة الأحرف عبر 22,581 حرفًا و12 نظام كتابة:

  • 249,976 زوجًا فريدًا مربكًا لحرف واحد عبر 245 خطًا و12 نصًا و66 زوجًا عبر النصوص. إجمالي 764,395 اكتشافًا على مستوى الخطوط.
  • 2,524,275 زوجًا فريدًا متعدد الأحرف (bigram) بما في ذلك rn/m عبر 95 خطًا (33 تحتها مسافة 0.40) و oy/الـ uk السيريلية عبر 16 خطًا.
  • درجات مسافة مستمرة لكل خط، وليست قوائم ثنائية. كل زوج له مسافة شعاعية مقاسة لكل خط، مما يعطي ثقة مدركة للخط لأدوات الأمان النهائية.
  • اكتشافات أكثر بنسبة 305% من SDF، وأسرع بنسبة 29%. التوقيع الشعاعي المحسّن بخمس طبقات هو مجموعة شاملة صارمة لنتائج SDF؛ الأزواج الحصرية لـ SDF لم تتكرر تحت المراجعة اليدوية.

المخرجات تُغذي مباشرة namespace-guard للكشف عن التشابه المربك في وقت التشغيل في أسماء الحزم وأسماء النطاقات والمعرفات.

كيف يعمل

يقوم RaySpace بإطلاق أشعة متوازية عبر ملامح الخطوط بزوايا 36 ويلتقط خمس طبقات من المعلومات لكل حرف رسومي: أعداد التقاطعات، مواقع التقاطعات، زوايا التقاطعات، مسافات النبض (عرض الضربة عند كل تقاطع)، وأقصى نبض (عرض العداد بين التقاطعات). ينتج عن ذلك توقيع مضغوط لكل حرف في كل خط. تتم مقارنة توقيعين باستخدام مسافة L1 موزونة عبر جميع الطبقات الخمس.

مصفاة متتالية من ثلاث مراحل تجعل المقارنة الشاملة ممكنة:

  1. مرشح عرض التقدم (تفاوت 15%) يزيل الأزواج ذات العروض المختلفة للأحرف. يزيل 63% من المرشحين.
  2. مقارنة الأشعة (عتبة 2.0، مشددة إلى 1.0 لأزواج النصوص الكبيرة). يزيل 33% إضافية.
  3. فقط 3.3% من المرشحين يبقون ليصبحوا اكتشافات.

بنك التوقيعات (أكثر من 294,646 إدخال عبر 245 خطًا؛ المزيد مع --include-uppercase) يُحسب مسبقًا مرة واحدة. ثم يعمل الاكتشاف كعملية حسابية أحادية الخيط على البنك، مكملاً 52.6 مليون مقارنة زوجية في 31 دقيقة دون خيوط عمل أو GPU.

البدء السريع

root@kitploit:~
npm install

# 1. Build the ray signature bank (prerequisite, ~24 min)
npx tsx scripts/build-signature-bank.ts

# 1b. Include uppercase Latin A-Z (optional)
#     By default the bank only includes IDNA PVALID codepoints (lowercase,
#     digits, symbols). Use --include-uppercase to add uppercase A-Z, useful
#     for font identification and trademark visual comparison where uppercase
#     glyph shapes matter. The builder is resumable, so this only computes
#     the additional codepoints.
npx tsx scripts/build-signature-bank.ts --include-uppercase

# 1c. Include arbitrary codepoint ranges (optional)
npx tsx scripts/build-signature-bank.ts --extra-range=0041-005A

# 2. Single-char discovery (22,581 chars, 12 scripts, ~36 min)
npx tsx scripts/discover-singlechar-sdf.ts --scorer=ray

# 3. Multi-char (bigram) discovery (676 bigrams, ~63 min)
npx tsx scripts/discover-multichar-sdf.ts --scorer=ray

# 4. Score known TR39 multi-char confusables (~5 min)
npx tsx scripts/score-multichar-sdf.ts --scorer=ray
أنابيب SSIM القديمة

الأنابيب الأصلية المستندة إلى SSIM سجلت 26.5 مليون مقارنة عبر 230 خطًا. لا تزال عاملة ولكن تم تجاوزها بواسطة RaySpace لجميع مهام الاكتشاف والتسجيل.

root@kitploit:~
# TR39 confusable pair scoring
npx tsx scripts/build-index.ts          # Render index (~160s, 11,370 PNGs)
npx tsx scripts/score-all-pairs.ts      # Score all pairs (~65s, 235K comparisons)

# Novel confusable discovery
npx tsx scripts/build-candidates.ts          # Candidate set (~23K chars)
npx tsx scripts/build-index.ts --candidates  # Render candidates (~40min, 89K PNGs)
npx tsx scripts/score-candidates.ts          # Score against Latin targets (~15min, 2.9M comparisons)

# Extract high-scoring discoveries from both pipelines
npx tsx scripts/extract-discoveries.ts

ما وجدته

أفضل الأزواج المربكة (حرف واحد، متوسط المسافة < 0.10)

الأصفار = الخطوط حيث تنتج الملامح توقيعات شعاعية متطابقة بتًا (مسافة 0.000). w اللاتينية/ԝ السيريلية متطابقتان في جميع الخطوط الـ19 التي تحتوي على كلا الحرفين.

اختراقات عبر النصوص (حرف واحد)

يشكل الحرف الجورجي Coda (U+10FF) حلقة مربكة رباعية الاتجاهات مع o اللاتينية وo السيريلية وomicron اليونانية، جميعها تحت مسافة 0.08.

نتائج بارزة متعددة الأحرف

اكتشاف oy/الـ uk السيريلية هو النتيجة الجديدة البارزة: الزوج الثنائي اللاتيني "oy" متطابق بصريًا مع الحرف المزدوج السيريلي uk (ѹ) على مسافة 0.000 في Helvetica و0.0005 في Arial Unicode MS.

معايرة العتبة

عتبة المتوسط

ثلاث مستويات تشغيل موصى بها:

  • صارم (< 0.50): 138 زوجًا لحرف واحد، إيجابيات كاذبة شبه معدومة. مناسب للحظر التلقائي (تسجيل IDN، التحقق من أسماء الحزم) حيث للإيجابيات الكاذبة تكلفة حقيقية.
  • قياسي (< 1.00): 4,174 زوجًا لحرف واحد، توازن جيد بين التغطية والدقة. مناسب لوضع العلامات والمراجعة اليدوية في أدوات الأمان.
  • استكشافي (< 2.00): مجموعة الاكتشاف الكاملة. يحتوي على ضوضاء في الطرف العلوي ولكنه مفيد للبحث وتدقيق الخطوط وبناء مجموعات التدريب.

الاستعلام عن الخطوط

الاستعلام عن الأزواج المربكة الموجودة لخط معين. مفيد لمصممي الخطوط الذين يشحنون محرفًا جديدًا، لبائعي المتصفحات الذين يقيمون تغيير خط النظام، أو لأي شخص يختار خط عرض للسياقات الحساسة أمنيًا مثل نطاقات IDN.

root@kitploit:~
npx tsx scripts/query-font.ts --list-fonts                    # 218 fonts in discovery data
npx tsx scripts/query-font.ts "Arial"                         # All pairs for Arial (SSIM >= 0.7)
npx tsx scripts/query-font.ts "Arial" --threshold 0.8         # High-confidence only
npx tsx scripts/query-font.ts "Arial" --compare "Georgia"     # Diff two fonts by SSIM delta
npx tsx scripts/query-font.ts "Arial" --json                  # JSON for downstream processing

مطابقة اسم الخط هي سلسلة فرعية غير حساسة لحالة الأحرف، لذا فإن "arial" يطابق Arial وArial Black وArial Unicode MS. وضع المقارنة يرتب حسب أكبر اختلافات SSIM أولاً، مما يكشف بالضبط الأزواج التي تتحسن أو تسوء عند تبديل الخطوط.

يتطلب ملفات الاكتشاف من أنابيب التسجيل (مهملة في git، يُعاد توليدها محليًا).

المخرجات

الملفات الملتزمة (CC-BY-4.0)

المولدة (مهملة في git، شغّل الأنابيب لإعادة التوليد)

الملفالوصف
data/output/render-index/صور PNG للعرض + الفهرس (أنابيب SSIM)

التقدم

  • التحقق من TR39 (1,418 زوجًا، 230 خطًا، أنابيب SSIM)
  • اكتشاف مربكات جديدة (793 زوجًا عالي الدرجة من 23,317 مرشحًا، SSIM)
  • مسح المربكات عبر النصوص (12 نصًا من ICANN، 23.6 مليون زوج، 563 اكتشافًا، SSIM)
  • الاستعلام عن الخطوط ومقارنتها لكل خط
  • مسجل RaySpace بخمس طبقات من الخطوط المتجهة (يحل محل SDF وSSIM للاكتشاف)
  • اكتشاف RaySpace لحرف واحد (249,976 زوجًا فريدًا، 245 خطًا، 12 نصًا)
  • اكتشاف RaySpace متعدد الأحرف (2,524,275 زوجًا ثنائيًا فريدًا، 245 خطًا)
  • اكتشاف عبر النصوص باستخدام RaySpace (أكثر بنسبة 305% من SDF، مجموعة شاملة صارمة)
  • إنتاج confusable-weights-v2.json مع سجلات توزيعية لكل زوج: المتوسط، p50، p90، عدد الخطوط، عدد المسافة الصفرية، جزء المسافة الصفرية، والمستوى الموصى به (صارم/قياسي/استكشافي). مسافات RaySpace تحل محل SSIM. 4,174 زوجًا عند العتبة القياسية.
  • تنسيق بنك التوقيعات الثنائي (تقليل زمن التحميل من 273 ثانية إلى ثوانٍ)
  • تسجيل الخطوط العشوائية بالمسار دون إعادة تشغيل الأنابيب بالكامل

متعلق

  • namespace-guard (v0.16.0+) يستهلك confusable-weights.json لتقييم المخاطر البصرية المقاسة عبر confusableDistance({ weights })
  • REPORT.md: تقرير فني كامل من أنابيب SSIM (12 قسمًا، تحليل لكل خط، ملاحق)

منشورات المدونة

كتابات على paultendo.github.io تغطي النتائج والمنهجية وراء هذا المشروع:

منهجية RaySpace ونتائجها:

  • RaySpace: قياس تشابه الحروف الرسومية باستخدام تتبع الشعاع من الخطوط المتجهة
  • من أجهزة التصوير المقطعي إلى الأحرف المربكة: الفن السابق وراء RaySpace
  • المربكات متعددة الأحرف: عندما يصبح rn m
  • 250,000 زوج مربك. 102 منها مهمة لأسماء النطاقات.

نتائج أنابيب SSIM:

  • عرضت 1,418 زوجًا مربكًا من Unicode عبر 230 خطًا. معظمها ليس مربكًا للعين.
  • 793 حرفًا من Unicode تشبه الحروف اللاتينية ولكنها ليست (بعد) في confusables.txt
  • 28 حرفًا من CJK والهانغول تشبه الحروف اللاتينية
  • 248 زوجًا مربكًا عبر النصوص لا يغطيها أي معيار
  • أسرع بـ148 مرة: إعادة بناء أنابيب مسح Unicode للقياس عبر النصوص
  • عندما يكذب تشابه الأشكال: القطع الأثرية لنسبة الحجم في كشف المربكات
  • DDoS الجديد: مربكات Unicode لا يمكنها خداع LLMs، ولكنها يمكنها مضاعفة فاتورة API 5 مرات

خلفية

كتابات تغطي مساحة المشكلة الأوسع التي حفزت هذا المشروع:

  • نموذج تهديد لانتحال معرفات Unicode
  • جعل مخاطر Unicode قابلة للقياس
  • نموذجك اللغوي الكبير يقرأ نقاط كود Unicode، وليس الحروف الرسومية. هذا سطح هجوم.
  • من يحمي كشف المربكات فعليًا؟
  • Unicode يشحن خريطة مربكة واحدة. تحتاج اثنتين.
  • confusables.txt وNFKC يختلفان على 31 حرفًا

الترخيص

  • الكود (src/, scripts/): MIT
  • البيانات المولدة (data/output/): CC-BY-4.0. حر الاستخدام والمشاركة والتعديل لأي غرض بما في ذلك التجاري، مع الإسناد.
  • الإسناد: بول وود FRSA (@paultendo)، confusable-vision
تنزيل الأداة
المصدرالهدفالنصوصالمتوسطالخطوطالأصفار
w U+0077ԝ U+051DLatin-Cyrillic0.0001919
j U+006Aϳ U+03F3Latin-Greek0.0132118
i U+0069і U+0456Latin-Cyrillic0.0186250
s U+0073ѕ U+0455Latin-Cyrillic0.0186246
c U+0063с U+0441Latin-Cyrillic0.0196145
o U+006Fо U+043ELatin-Cyrillic0.0206144
j U+006Aј U+0458Latin-Cyrillic0.0216048
x U+0078х U+0445Latin-Cyrillic0.0235950
p U+0070р U+0440Latin-Cyrillic0.0246146
e U+0065е U+0435Latin-Cyrillic0.0326144
a U+0061а U+0430Latin-Cyrillic0.0426145
المصدرالهدفالنصوصالمتوسطالخطوط
ο U+03BFჿ U+10FFGreek-Georgian0.0572
ヘ U+30D8へ U+3078Katakana-Hiragana0.12211
丶 U+4E36ヽ U+30FDHan-Katakana0.1259
二 U+4E8Cニ U+30CBHan-Katakana0.24911
口 U+53E3ロ U+30EDHan-Katakana0.26811
الزوج الثنائيالهدفالمتوسطالخطوطملاحظات
ll॥ U+0965 (Devanagari double danda)0.1768عبر النصوص
oyѹ U+0479 (Cyrillic uk)0.32216زوج ثنائي مربك جديد عبر النصوص
rnm U+006D0.5319533 خطًا تحت 0.40
blы U+044B (Cyrillic yeru)0.79749عبر النصوص
أزواج فريدة لحرف واحد
أزواج فريدة متعددة الأحرف
< 0.5013813
< 1.004,1741,631
< 1.5059,700(ضوضاء)
< 2.00249,9762,524,275
الملفالوصف
data/output/confusable-discoveries.json110 زوجًا من TR39 مع SSIM عالي (>= 0.7) أو متطابقة بكسلًا
data/output/candidate-discoveries.json793 زوجًا جديدًا غير موجود في TR39، متوسط SSIM >= 0.7
data/output/confusable-weights.json1,397 حافة موزونة لتكامل namespace-guard
data/output/cross-script-discoveries.json563 زوجًا مربكًا عبر النصوص
data/output/cross-script-summary.jsonملخص عبر النصوص حسب زوج النص
data/output/multichar-discoveries.jsonاكتشافات مربكة متعددة الأحرف
data/output/singlechar-sdf-scores.jsonl
درجات RaySpace لحرف واحد
data/output/multichar-rayspace-scores.jsonlدرجات RaySpace متعددة الأحرف
data/output/signature-bank/بنك توقيعات RaySpace (294,646 إدخال، 7.9GB مضغوط)