From 8cde9a65eef032bff0e280bb6a61a3e736802bd6 Mon Sep 17 00:00:00 2001 From: acidvegas Date: Fri, 12 May 2023 22:40:13 -0400 Subject: [PATCH] Added confusables script --- confusables.py | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 confusables.py diff --git a/confusables.py b/confusables.py new file mode 100644 index 0000000..ceb6440 --- /dev/null +++ b/confusables.py @@ -0,0 +1,94 @@ +#!/usr/bin/env python +# confusables - developed by acidvegas in python (https://git.acid.vegas/random) + +''' +This script contains a dictionary of keyboard typable characters unicode variants that are very similar. +Other possible variants exist, for now we are only matching the ones that do not "look" like unicode. +This can be used to evade spam filtering by replacing characters with their similar unicode variants. +''' + +import random + +def confuse(data): + confused = str() + for char in data: + if char in confusable: + confused += random.choice(list(confusable[char])) + else: + confused += char + return confused + +confusable = { + ' ':'       ', + '.':'܂․.⡀', + '!':'ǃⵑ!', + '$':'$', + '%':'%', + '&':'ꝸ&', + ':':'ː˸։׃⁚∶ꓽ꞉︰:', + ';':';;', + '<':'ᐸ<', + '=':'⹀꓿=', + '>':'ᐳ>', + '?':'?', + '@':'@', + '0':'OΟОՕ௦౦೦ഠဝ၀ჿዐᴏᴑⲞⲟⵔ〇ꓳ0Oo𐊒𐊫𐐄𐐬𐓂𐓪', + '1':'lı1', + '2':'Ƨᒿ2𝟐𝟤𝟮𝟸', + '3':'ƷȜЗӠⳌꝪꞫ3', + '4':'Ꮞ4', + '5':'Ƽ5', + '6':'бᏮⳒ6', + '7':'7𐓒', + '8':'8𐌚𝟖𝟠𝟪𝟴', + '9':'৭୨ⳊꝮ9', + 'A':'ΑАᎪᗅᴀꓮꭺA𐊠', + 'B':'ΒВᏴᗷꓐB𐊂𐊡𝐁𝐵𝑩𝔹𝖡𝗕𝘉𝘽𝚩𝜝𝝗𝞑', + 'C':'СᏟᑕℂⅭ⊂ⲤꓚC𐊢𐐕', + 'D':'ᎠᗞᗪⅮꓓꭰD𝐃𝐷𝑫𝔻𝖣𝗗𝘋𝘿𝙳', + 'E':'ΕЕᎬ⋿ⴹꓰꭼE𐊆', + 'F':'ϜᖴꓝꞘF𐊇𐊥𝟋', + 'G':'ɢԌᏀᏳᏻꓖꮐG𝐆𝐺𝑮𝔾𝖦𝗚𝘎𝙂𝙶', + 'H':'ʜΗНнᎻᕼⲎꓧH𐋏𝐇𝐻𝑯𝖧𝗛𝘏𝙃𝚮𝛨𝜢𝝜𝞖', + 'J':'ͿЈᎫᒍᴊꓙꞲꭻJ𝐉 𝐽 𝑱𝕁𝖩𝗝 𝙹', + 'K':'ΚКᏦᛕKⲔꓗK', + 'L':'ʟᏞᒪⅬⳐⳑꓡꮮL𐐛𐑃', + 'M':'ΜϺМᎷᗰᛖⅯⲘꓟM𐊰𐌑𝐌𝑀𝑴𝕄𝖬𝗠𝘔𝙈𝙼𝚳𝛭𝜧𝝡𝞛', + 'N':'ɴΝⲚꓠN', + 'O':'OΟОՕ௦౦೦ഠဝ၀ჿዐᴏᴑⲞⲟⵔ〇ꓳ0Oo𐊒𐊫𐐄𐐬𐓂𐓪', + 'P':'ΡРᏢᑭᴘᴩℙⲢꓑꮲP𐊕𝐏𝑃𝑷𝖯𝗣𝘗𝙋𝙿𝚸𝛲𝜬𝝦𝞠', + 'Q':'ℚⵕQ𝐐𝑄𝑸𝖰𝗤𝘘𝙌𝚀', + 'R':'ƦʀᎡᏒᖇᚱꓣꭱꮢR𐒴', + 'S':'ЅՏᏕᏚꓢS𐊖𐐠', + 'T':'ΤТтᎢᴛ⊤⟙ⲦꓔꭲT𐊗𐊱𐌕', + 'U':'Սሀᑌ∪⋃ꓴU𐓎', + 'V':'Ѵ٧۷ᏙᐯⅤⴸꓦꛟV', + 'W':'ԜᎳᏔꓪW', + 'X':'ΧХ᙭ᚷⅩ╳ⲬⵝꓫꞳX𐊐𐊴𐌗𐌢', + 'Y':'ΥϒУҮᎩᎽⲨꓬY𐊲', + 'Z':'ΖᏃꓜZ𐋵', + 'a':'ɑαа⍺a𝐚𝑎𝒂𝕒𝖆𝖺𝗮𝘢𝙖𝚊𝛂𝛼𝜶𝝰𝞪', + 'b':'ƄЬᏏᑲᖯb𝐛𝑏𝒃𝖇𝖻𝗯𝘣𝙗𝚋', + 'c':'ϲсᴄⅽⲥꮯc𐐽𝐜𝑐𝒄𝕔𝖈𝖼𝗰𝘤𝙘𝚌', + 'd':'ԁᏧᑯⅆⅾꓒd𝐝𝑑𝒅𝒹𝓭𝖽𝗱𝘥𝙙𝚍', + 'e':'еҽ℮e𝐞𝕖𝖾𝗲𝚎', + 'f':'ẝꞙꬵf', + 'g':'ƍɡցᶃg𝐠𝑔𝒈𝓰𝔤𝕘𝖌𝗀𝗴𝘨𝙜𝚐', + 'h':'һᏂℎh𝒉𝕙𝗁𝗵𝘩𝙝𝚑', + 'j':'ϳјj𝐣𝚓', + 'k':'k𝐤𝑘𝒌𝕜𝖐𝗄𝗸𝘬𝙠𝚔', + 'm':'m', + 'n':'ոռn𝗇𝗻𝘯𝙣𝚗', + 'o':'OΟОՕ௦౦೦ഠဝ၀ჿዐᴏᴑⲞⲟⵔ〇ꓳ0Oo𐊒𐊫𐐄𐐬𐓂𐓪', + 'p':'ρϱр⍴ⲣp𝑝𝕡𝗉𝗽𝘱𝙥𝚙𝛒𝜌𝝆𝞀𝞺', + 'q':'ԛq𝐪𝕢𝗊𝗾𝘲𝙦𝚚', + 'r':'гᴦⲅꭈꮁr𝐫𝗋𝗿𝚛', + 's':'ѕꜱꮪs𐑈', + 't':'t𝘁𝚝', + 'u':'ʋυսᴜꭒu𐓶', + 'v':'νѵᴠⅴ∨⋁ꮩv', + 'w':'ɯѡԝաᴡꮃw', + 'x':'×хⅹ⤫⤬⨯x𝐱𝑥𝒙𝔵𝕩𝖝𝗑𝘅𝘹𝙭𝚡', + 'y':'ɣγуүყỿꭚy', + 'z':'ᴢꮓz' +} \ No newline at end of file