Find unicode codepoints to use in normalisation and transformation attacks.
output is in the format:
replacement char -> char its replacing | codepoint of replacement -> codepoint of char its replacing | name : normalization format
Search for unicode codepoints that you can use to replace characters in a given string
$ ./normal.py -s bountyplz.xyz
...
πΎ -> u | (U+120062) -> [117] | (MATHEMATICAL BOLD SCRIPT SMALL U) : NFKC
π -> x | (U+120065) -> [120] | (MATHEMATICAL BOLD SCRIPT SMALL X) : NFKD
π -> x | (U+120065) -> [120] | (MATHEMATICAL BOLD SCRIPT SMALL X) : NFKC
π -> y | (U+120066) -> [121] | (MATHEMATICAL BOLD SCRIPT SMALL Y) : NFKD
π -> y | (U+120066) -> [121] | (MATHEMATICAL BOLD SCRIPT SMALL Y) : NFKC
π -> z | (U+120067) -> [122] | (MATHEMATICAL BOLD SCRIPT SMALL Z) : NFKD
...
Check every normalized codepoint against a regex pattern to find useful characters:
$ ./normal.py -r "\.\."
β₯ -> .. | (U+8229) -> [46, 46] | (TWO DOT LEADER) : NFKD
β₯ -> .. | (U+8229) -> [46, 46] | (TWO DOT LEADER) : NFKC
β¦ -> ... | (U+8230) -> [46, 46, 46] | (HORIZONTAL ELLIPSIS) : NFKD
β¦ -> ... | (U+8230) -> [46, 46, 46] | (HORIZONTAL ELLIPSIS) : NFKC
οΈ -> ... | (U+65049) -> [46, 46, 46] | (PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS) : NFKD
οΈ -> ... | (U+65049) -> [46, 46, 46] | (PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS) : NFKC
οΈ° -> .. | (U+65072) -> [46, 46] | (PRESENTATION FORM FOR VERTICAL TWO DOT LEADER) : NFKD
οΈ° -> .. | (U+65072) -> [46, 46] | (PRESENTATION FORM FOR VERTICAL TWO DOT LEADER) : NFKC
$ ./normal.py -r "[a-z]/[a-z]"
β -> a/c | (U+8448) -> [97, 47, 99] | (ACCOUNT OF) : NFKD
β -> a/c | (U+8448) -> [97, 47, 99] | (ACCOUNT OF) : NFKC
β -> a/s | (U+8449) -> [97, 47, 115] | (ADDRESSED TO THE SUBJECT) : NFKD
β -> a/s | (U+8449) -> [97, 47, 115] | (ADDRESSED TO THE SUBJECT) : NFKC
β
-> c/o | (U+8453) -> [99, 47, 111] | (CARE OF) : NFKD
β
-> c/o | (U+8453) -> [99, 47, 111] | (CARE OF) : NFKC
β -> c/u | (U+8454) -> [99, 47, 117] | (CADA UNA) : NFKD
β -> c/u | (U+8454) -> [99, 47, 117] | (CADA UNA) : NFKC
Look up specific unicode characters/codepoints for a list of details and transformations.
$ ./normal.py -c 127277
CIRCLED CD : π
Unicode codepoint: U+127277
URL Encoded: %F0%9F%84%AD
NFD : π [127277]
NFC : π [127277]
NFKD : CD [67, 68]
NFKC : CD [67, 68]
HTML Entity decimal: 🄭
HTML Entity hex: 🄭
To upper-case π
To lower-case π
$ ./normal.py -c Γ
LATIN SMALL LETTER SHARP S : Γ
Unicode codepoint: U+223
URL Encoded: %C3%9F
NFD : Γ [223]
NFC : Γ [223]
NFKD : Γ [223]
NFKC : Γ [223]
HTML Entity name: ß
HTML Entity decimal: ß
HTML Entity hex: ß
To upper-case SS
To lower-case Γ