Skip to content
typoscan

Typo patterns / 02

Homoglyphs

Characters that look the same but aren't. Nobody mistypes these: they're registered on purpose and sent in links, where they pass a quick glance.

You meant

example.com

You typed

examp1e.com

What they are

A homoglyph is a character that looks like another one. Some pairs live on every keyboard: the digit 0 and the letter o, or rn and m set close together. Others come from different alphabets entirely: Cyrillic has letters drawn exactly like Latin a, e, o, p and more.

Unlike the other patterns, these aren't typos. Someone registers the look-alike and sends it to you: in an email, a text message, an ad. The link reads as your name, so people click it.

  • example.com

    examp1e.com

    “l” looks like “1”

  • microsoft.com

    rnicrosoft.com

    “m” looks like “rn”

  • google.com

    g0ogle.com

    “o” looks like “0”

Look-alikes on any keyboard

Shown in a sans-serif face, the way an address bar or email client shows them.

  • rnm

    rn looks like mEasy to miss
  • o0

    o looks like 0Easy to miss
  • 0o

    0 looks like oEasy to miss
  • l1

    l looks like 1Easy to miss
  • 1l

    1 looks like lEasy to miss
  • vvw

    vv looks like wEasy to miss
  • li

    l looks like iEasy to miss
  • il

    i looks like lEasy to miss
  • i1

    i looks like 1Easy to miss
  • 1i

    1 looks like iEasy to miss
  • cld

    cl looks like dEasy to miss
  • nnm

    nn looks like mCloser look
  • gq

    g looks like qCloser look
  • qg

    q looks like gCloser look
  • uv

    u looks like vCloser look
  • vu

    v looks like uCloser look
  • e3

    e looks like 3Closer look
  • s5

    s looks like 5Closer look
  • a4

    a looks like 4Closer look
  • g9

    g looks like 9Closer look
  • b6

    b looks like 6Closer look

Other alphabets

Each pair below is a Latin letter and a Cyrillic one. They render the same; the code points show they're different.

  • aа

    U+0061
    U+0430

    Latin a and Cyrillic а look the same but are different characters.
  • cс

    U+0063
    U+0441

    Latin c and Cyrillic с look the same but are different characters.
  • dԁ

    U+0064
    U+0501

    Latin d and Cyrillic ԁ look the same but are different characters.
  • eе

    U+0065
    U+0435

    Latin e and Cyrillic е look the same but are different characters.
  • hһ

    U+0068
    U+04BB

    Latin h and Cyrillic һ look the same but are different characters.
  • iі

    U+0069
    U+0456

    Latin i and Cyrillic і look the same but are different characters.
  • jј

    U+006A
    U+0458

    Latin j and Cyrillic ј look the same but are different characters.
  • lӏ

    U+006C
    U+04CF

    Latin l and Cyrillic ӏ look the same but are different characters.
  • oо

    U+006F
    U+043E

    Latin o and Cyrillic о look the same but are different characters.
  • pр

    U+0070
    U+0440

    Latin p and Cyrillic р look the same but are different characters.
  • qԛ

    U+0071
    U+051B

    Latin q and Cyrillic ԛ look the same but are different characters.
  • sѕ

    U+0073
    U+0455

    Latin s and Cyrillic ѕ look the same but are different characters.
  • wԝ

    U+0077
    U+051D

    Latin w and Cyrillic ԝ look the same but are different characters.
  • xх

    U+0078
    U+0445

    Latin x and Cyrillic х look the same but are different characters.
  • yу

    U+0079
    U+0443

    Latin y and Cyrillic у look the same but are different characters.

Most registries won't register a name that mixes alphabets, and browsers display mixed names as punycode. So the dangerous case is a name where every letter has a look-alike in one other alphabet. TypoScan only generates those whole-alphabet swaps.

Realapple.comFakeаррӏе.comReallyxn--80ak6aa92e.com
Realpaypal.comFakeраураӏ.comReallyxn--80aa0cbo65f.com

Punycode

DNS only understands ASCII letters, digits and hyphens. Names in other scripts are stored in an ASCII encoding called punycode, which starts with xn--. The fake аррӏе.com above is really xn--80ak6aa92e.com.

Browsers decide whether to show the Unicode form or the punycode form. Most show punycode when a name mixes scripts, and some also when it imitates a well-known domain, which defeats many of these attacks in the address bar. Email clients, chat apps and printed links are less consistent, which is where look-alikes still work.

If a link's address shows xn-- where you expected a familiar name, treat it as fake.

Try it

Type any domain to see its look-alikes.

apple.com5 lookalikes
  • app1e.comLook-alike · “l” looks like “1”High likelihood, 76
  • аррӏе.comOther alphabet · Every letter swapped for a Cyrillic look-alikeMedium likelihood, 74
  • appie.comLook-alike · “l” looks like “i”Medium likelihood, 72
  • appl3.comLook-alike · “e” looks like “3”Medium likelihood, 52
  • 4pple.comLook-alike · “a” looks like “4”Low likelihood, 48
  • No more lookalikes of this kind for apple.com.
Full scan of apple.com, with registration checks

See these on your own domain

Every pattern, scored and checked for registration, in one scan.