Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
confusable-vision — Unicode TR39 से गायब 793 भ्रामक जोड़े, दुनिया का पहला क्रॉस-स्क्रिप्ट डेटासेट, 230 फोंट और 22,000+ वर्णों में फ़ॉन्ट-जागरूक SSIM स्कोरिंग | Kitploit
उपकरण/GitHubGitHub/paultendo/confusable-vision
OSINT (खुला स्रोत खुफिया)टोहीवेब सुरक्षाखतरा खुफियाआपूर्ति श्रृंखला सुरक्षापेपर और शोधलर्निंग और शिक्षाचयनित संसाधन
GitHubpaultendo/confusable-vision

confusable-vision

Unicode TR39 से गायब 793 भ्रामक जोड़े, दुनिया का पहला क्रॉस-स्क्रिप्ट डेटासेट, 230 फोंट और 22,000+ वर्णों में फ़ॉन्ट-जागरूक SSIM स्कोरिंग

रिपॉजिटरी देखें
115 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

confusable-vision

वेक्टर-आउटलाइन रे कास्टिंग का उपयोग करके अनुभवजन्य ग्लिफ़ समानता स्कोरिंग। 245 सिस्टम फ़ॉन्ट्स में यूनिकोड कन्फ्यूज़ेबल कैरेक्टर पेयर प्रस्तुत करता है, फ़ॉन्ट आउटलाइन से सीधे संरचनात्मक समानता मापता है (कोई रैस्टराइज़ेशन नहीं), और प्रति-फ़ॉन्ट सतत दूरी स्कोर के साथ स्कोर किए गए JSON आर्टिफैक्ट तैयार करता है।

22,581 कैरेक्टर और 12 लेखन प्रणालियों में 52.6 मिलियन सिंगल-चार और 190 मिलियन मल्टी-चार तुलनाओं के प्रमुख परिणाम:

  • 249,976 अद्वितीय सिंगल-चार कन्फ्यूज़ेबल पेयर 245 फ़ॉन्ट्स, 12 स्क्रिप्ट्स, 66 क्रॉस-स्क्रिप्ट पेयर में। कुल 764,395 फ़ॉन्ट-स्तरीय खोजें।
  • 2,524,275 अद्वितीय मल्टी-चार (बिग्राम) कन्फ्यूज़ेबल पेयर जिसमें 95 फ़ॉन्ट्स में rn/m (33 दूरी 0.40 से नीचे) और 16 फ़ॉन्ट्स में oy/सिरिलिक uk शामिल हैं।
  • प्रति-फ़ॉन्ट सतत दूरी स्कोर, बाइनरी सूचियाँ नहीं। प्रत्येक जोड़ी का प्रति फ़ॉन्ट मापित रे दूरी है, जो डाउनस्ट्रीम सुरक्षा टूलिंग के लिए फ़ॉन्ट-जागरूक आत्मविश्वास प्रदान करता है।
  • SDF की तुलना में 305% अधिक खोजें, 29% तेज़। समृद्ध पाँच-परत रे सिग्नेचर SDF निष्कर्षों का एक सख्त सुपरसेट है; SDF-विशेष जोड़े मैन्युअल समीक्षा में दोहराए नहीं गए।

आउटपुट सीधे namespace-guard में फीड होता है, पैकेज नामों, डोमेन नामों और पहचानकर्ताओं में रनटाइम कन्फ्यूज़ेबल डिटेक्शन के लिए।

यह कैसे काम करता है

RaySpace 36 कोणों पर फ़ॉन्ट आउटलाइन के माध्यम से समानांतर किरणें डालता है और प्रति ग्लिफ़ पाँच परतों की जानकारी कैप्चर करता है: क्रॉसिंग काउंट, क्रॉसिंग पोज़िशन, क्रॉसिंग एंगल, पिंग दूरियाँ (प्रत्येक क्रॉसिंग पर स्ट्रोक चौड़ाई), और पिंग मैक्स (क्रॉसिंग के बीच काउंटर चौड़ाई)। यह प्रति कैरेक्टर प्रति फ़ॉन्ट एक कॉम्पैक्ट सिग्नेचर तैयार करता है। दो सिग्नेचर की तुलना सभी पाँच परतों पर भारित L1 दूरी से की जाती है।

एक तीन-चरणीय फिल्टर कैस्केड व्यापक तुलना को संभव बनाता है:

  1. अग्रिम चौड़ाई फ़िल्टर (15% सहनशीलता) विभिन्न कैरेक्टर चौड़ाई वाले जोड़ों को समाप्त करता है। 63% उम्मीदवारों को हटाता है।
  2. रे तुलना (थ्रेसहोल्ड 2.0, बड़े स्क्रिप्ट जोड़ों के लिए 1.0 तक कड़ा)। अन्य 33% हटाता है।
  3. केवल 3.3% उम्मीदवार खोज बनने तक जीवित रहते हैं।

सिग्नेचर बैंक (245 फ़ॉन्ट्स में 294,646+ प्रविष्टियाँ; --include-uppercase के साथ अधिक) एक बार प्रीकंप्यूट किया जाता है। फिर खोज बैंक पर सिंगल-थ्रेडेड अंकगणित के रूप में चलती है, बिना किसी वर्कर थ्रेड या GPU के 52.6 मिलियन जोड़ी तुलनाओं को 31 मिनट में पूरा करती है।

त्वरित शुरुआत

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-आधारित पाइपलाइन ने 230 फ़ॉन्ट्स में 26.5 मिलियन तुलनाओं को स्कोर किया। यह अभी भी कार्यात्मक है, लेकिन सभी खोज और स्कोरिंग कार्यों के लिए 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 फ़ॉन्ट्स में समान है जिनमें दोनों ग्लिफ़ मौजूद हैं।

क्रॉस-स्क्रिप्ट सफलताएँ (सिंगल-चार)

जॉर्जियाई कोडा (U+10FF) लैटिन o, सिरिलिक o, और ग्रीक ओमाइक्रोन के साथ चार-तरफ़ा कन्फ्यूज़ेबल रिंग बनाता है, सभी दूरी 0.08 से नीचे।

मल्टी-चार हेडलाइन परिणाम

oy/सिरिलिक uk खोज सबसे उल्लेखनीय नई खोज है: लैटिन बिग्राम "oy" सिरिलिक डाइग्राफ अक्षर uk (ѹ) के साथ हेल्वेटिका में 0.000 और एरियल यूनिकोड MS में 0.0005 दूरी पर दृष्टिगत रूप से समान है।

थ्रेसहोल्ड कैलिब्रेशन

तीन अनुशंसित ऑपरेटिंग स्तर:

  • सख्त (< 0.50): 138 सिंगल-चार जोड़े, लगभग शून्य झूठी सकारात्मकताएँ। स्वचालित अवरोधन (IDN पंजीकरण, पैकेज नाम मान्यता) के लिए उपयुक्त जहाँ झूठी सकारात्मकताओं की वास्तविक लागत है।
  • मानक (< 1.00): 4,174 सिंगल-चार जोड़े, कवरेज और सटीकता का अच्छा संतुलन। सुरक्षा टूलिंग में फ़्लैगिंग और मैन्युअल समीक्षा के लिए उपयुक्त।
  • खोजपूर्ण (< 2.00): पूर्ण खोज सेट। ऊपरी सिरे पर शोर है, लेकिन अनुसंधान, फ़ॉन्ट ऑडिटिंग और प्रशिक्षण सेट बनाने के लिए उपयोगी।

फ़ॉन्ट क्वेरी करना

पता करें कि किसी विशिष्ट फ़ॉन्ट के लिए कौन से कन्फ्यूज़ेबल जोड़े मौजूद हैं। एक नया टाइपफ़ेस जारी करने वाले फ़ॉन्ट डिज़ाइनरों, सिस्टम फ़ॉन्ट परिवर्तन का मूल्यांकन करने वाले ब्राउज़र विक्रेताओं, या IDN डोमेन जैसे सुरक्षा-संवेदनशील संदर्भों में प्रदर्शन फ़ॉन्ट चुनने वाले किसी भी व्यक्ति के लिए उपयोगी।

root@kitploit:~
npx tsx scripts/query-font.ts --list-fonts                    # 218 फ़ॉन्ट खोज डेटा में
npx tsx scripts/query-font.ts "Arial"                         # Arial के सभी जोड़े (SSIM >= 0.7)
npx tsx scripts/query-font.ts "Arial" --threshold 0.8         # केवल उच्च-आत्मविश्वास वाले
npx tsx scripts/query-font.ts "Arial" --compare "Georgia"     # SSIM डेल्टा द्वारा दो फ़ॉन्ट की तुलना
npx tsx scripts/query-font.ts "Arial" --json                  # डाउनस्ट्रीम प्रसंस्करण के लिए JSON

फ़ॉन्ट नाम मिलान केस-असंवेदनशील सबस्ट्रिंग है, इसलिए "arial" Arial, Arial Black, और Arial Unicode MS से मेल खाता है। तुलना मोड सबसे बड़े SSIM अंतरों के अनुसार क्रमबद्ध करता है, जिससे पता चलता है कि फ़ॉन्ट बदलने पर वास्तव में कौन से जोड़े बेहतर या बदतर होते हैं।

स्कोरिंग पाइपलाइन से खोज फ़ाइलों की आवश्यकता है (gitignored, स्थानीय रूप से पुनर्जनरेट करें)।

आउटपुट

प्रतिबद्ध (CC-BY-4.0)

जनरेटेड (gitignored, पुनर्जनरेट करने के लिए पाइपलाइन चलाएँ)

फ़ाइलविवरण
data/output/render-index/रेंडर PNGs + इंडेक्स (SSIM पाइपलाइन)

प्रगति

  • TR39 सत्यापन (1,418 जोड़े, 230 फ़ॉन्ट, SSIM पाइपलाइन)
  • नई कन्फ्यूज़ेबल खोज (23,317 उम्मीदवारों में से 793 उच्च-स्कोरिंग जोड़े, SSIM)
  • क्रॉस-स्क्रिप्ट कन्फ्यूज़ेबल स्कैनिंग (12 ICANN स्क्रिप्ट, 23.6M जोड़े, 563 खोजें, SSIM)
  • प्रति-फ़ॉन्ट क्वेरी और फ़ॉन्ट तुलना
  • RaySpace पाँच-परत वेक्टर-आउटलाइन स्कोरर (खोज के लिए SDF और SSIM को बदलता है)
  • सिंगल-चार RaySpace खोज (249,976 अद्वितीय जोड़े, 245 फ़ॉन्ट, 12 स्क्रिप्ट)
  • मल्टी-चार RaySpace खोज (2,524,275 अद्वितीय बिग्राम जोड़े, 245 फ़ॉन्ट)
  • RaySpace के साथ क्रॉस-स्क्रिप्ट खोज (SDF से 305% अधिक जोड़े, सख्त सुपरसेट)
  • प्रति-जोड़ी वितरणात्मक रिकॉर्ड के साथ confusable-weights-v2.json तैयार करें: मीन, p50, p90, फ़ॉन्ट गणना, शून्य-दूरी गणना, शून्य अंश, और अनुशंसित स्तर (सख्त/मानक/खोजपूर्ण)। RaySpace दूरियाँ SSIM को बदलती हैं। मानक थ्रेसहोल्ड पर 4,174 जोड़े।
  • बाइनरी सिग्नेचर बैंक प्रारूप (273s लोड समय को सेकंड में कम करें)
  • पूर्ण पाइपलाइन फिर से चलाए बिना पथ द्वारा मनमाने फ़ॉन्ट को स्कोर करें

संबंधित

  • namespace-guard (v0.16.0+) मापी गई दृश्य जोखिम स्कोरिंग के लिए confusable-weights.json का उपभोग करता है confusableDistance({ weights }) के माध्यम से
  • REPORT.md: SSIM पाइपलाइन से पूर्ण तकनीकी रिपोर्ट (12 खंड, प्रति-फ़ॉन्ट विश्लेषण, परिशिष्ट)

ब्लॉग पोस्ट

paultendo.github.io पर इस परियोजना के निष्कर्षों और पद्धति को कवर करने वाली लेख:

RaySpace पद्धति और निष्कर्ष:

  • RaySpace: वेक्टर-आउटलाइन रेकास्टिंग के साथ ग्लिफ़ समानता मापना
  • CT स्कैनर से कन्फ्यूज़ेबल कैरेक्टर तक: RaySpace के पीछे की पूर्व कला
  • मल्टी-कैरेक्टर कन्फ्यूज़ेबल: जब rn, m बन जाता है
  • 250,000 कन्फ्यूज़ेबल जोड़े। 102 जो डोमेन नामों के लिए मायने रखते हैं।

SSIM पाइपलाइन निष्कर्ष:

  • मैंने 230 फ़ॉन्ट्स में 1,418 यूनिकोड कन्फ्यूज़ेबल जोड़े प्रस्तुत किए। अधिकांश आँखों को कन्फ्यूज़ नहीं करते।
  • 793 यूनिकोड कैरेक्टर लैटिन अक्षरों की तरह दिखते हैं लेकिन (अभी तक) confusables.txt में नहीं हैं
  • 28 CJK और हंगुल कैरेक्टर लैटिन अक्षरों की तरह दिखते हैं
  • 248 क्रॉस-स्क्रिप्ट कन्फ्यूज़ेबल जोड़े जो कोई मानक कवर नहीं करता
  • 148x तेज़: क्रॉस-स्क्रिप्ट पैमाने के लिए यूनिकोड स्कैनिंग पाइपलाइन का पुनर्निर्माण
  • जब आकार समानता झूठ बोलती है: कन्फ्यूज़ेबल डिटेक्शन में आकार-अनुपात कलाकृतियाँ
  • नया DDoS: यूनिकोड कन्फ्यूज़ेबल LLM को मूर्ख नहीं बना सकते, लेकिन आपके API बिल को 5x कर सकते हैं

पृष्ठभूमि

वे पोस्ट जो व्यापक समस्या स्थान को कवर करते हैं जिसने इस परियोजना को प्रेरित किया:

  • यूनिकोड पहचानकर्ता स्पूफिंग के लिए एक खतरा मॉडल
  • यूनिकोड जोखिम को मापने योग्य बनाना
  • आपका LLM यूनिकोड कोडपॉइंट पढ़ता है, ग्लिफ़ नहीं। यह एक हमला सतह है।
  • कन्फ्यूज़ेबल डिटेक्शन वास्तव में किसकी रक्षा करता है?
  • यूनिकोड एक कन्फ्यूज़ेबल मानचित्र भेजता है। आपको दो चाहिए।
  • confusables.txt और NFKC 31 कैरेक्टर पर असहमत हैं

लाइसेंस

  • कोड (src/, scripts/): MIT
  • जनरेटेड डेटा (data/output/): CC-BY-4.0. वाणिज्यिक सहित किसी भी उद्देश्य के लिए, एट्रिब्यूशन के साथ उपयोग, साझा करने और अनुकूलित करने के लिए स्वतंत्र।
  • एट्रिब्यूशन: Paul Wood FRSA (@paultendo), confusable-vision
टूल डाउनलोड करें
स्रोतलक्ष्यस्क्रिप्ट्समीनफ़ॉन्ट्सज़ीरोज़
w U+0077ԝ U+051Dलैटिन-सिरिलिक0.0001919
j U+006Aϳ U+03F3लैटिन-ग्रीक0.0132118
i U+0069і U+0456लैटिन-सिरिलिक0.0186250
s U+0073ѕ U+0455लैटिन-सिरिलिक0.0186246
c U+0063с U+0441लैटिन-सिरिलिक0.0196145
o U+006Fо U+043Eलैटिन-सिरिलिक0.0206144
j U+006Aј U+0458लैटिन-सिरिलिक0.0216048
x U+0078х U+0445लैटिन-सिरिलिक0.0235950
p U+0070р U+0440लैटिन-सिरिलिक0.0246146
e U+0065е U+0435लैटिन-सिरिलिक0.0326144
a U+0061а U+0430लैटिन-सिरिलिक0.0426145
स्रोतलक्ष्यस्क्रिप्ट्समीनफ़ॉन्ट्स
ο U+03BFჿ U+10FFग्रीक-जॉर्जियाई0.0572
ヘ U+30D8へ U+3078कटकाना-हिरागाना0.12211
丶 U+4E36ヽ U+30FDहान-कटकाना0.1259
二 U+4E8Cニ U+30CBहान-कटकाना0.24911
口 U+53E3ロ U+30EDहान-कटकाना0.26811
बिग्रामलक्ष्यमीनफ़ॉन्ट्सनोट्स
ll॥ U+0965 (देवनागरी डबल दंड)0.1768क्रॉस-स्क्रिप्ट
oyѹ U+0479 (सिरिलिक uk)0.32216नई क्रॉस-स्क्रिप्ट बिग्राम कन्फ्यूज़ेबल
rnm U+006D0.5319533 फ़ॉन्ट 0.40 से नीचे
blы U+044B (सिरिलिक 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/रे सिग्नेचर बैंक (294,646 प्रविष्टियाँ, 7.9GB संपीड़ित)