# Encoding Chaos - Cross-encoding confusion dictionary # Characters produce different results when UTF-8 bytes are # interpreted in GBK/Big5/Shift-JIS/EUC-KR/Latin-1 # Characters: 575 # Combinations (2-char names): 330,625 # Combinations (3-char names): 190,109,375 # # Usage in proguard-rules.pro: # -obfuscationdictionary proguard-dic-encoding-chaos.txt # -classobfuscationdictionary proguard-dic-encoding-chaos.txt # -packageobfuscationdictionary proguard-dic-encoding-chaos.txt # # Encoding collision examples: # α (Greek) → GBK:伪 | Big5:帢 | Shift-JIS:ホア | EUC-KR:慣 # β (Greek) → GBK:尾 | Big5:帣 | Shift-JIS:ホイ | EUC-KR:棺 # γ (Greek) → GBK:纬 | Big5:帠 | Shift-JIS:ホウ | EUC-KR:款 # δ (Greek) → GBK:未 | Big5:帤 | Shift-JIS:ホエ | EUC-KR:灌 # А (Cyrillic) → GBK:餎 | Big5:峝 | Shift-JIS:ミヲ | EUC-KR:뗬 # а (Cyrillic) → GBK:泻 | Big5:帾 | Shift-JIS:ムエ | EUC-KR:뵡 # # Effect: Same obfuscated class name displays as completely # different characters depending on the viewer's encoding, # making manual analysis and pattern recognition nearly impossible. # # Encoding chaos map (character -> decoded form in each encoding): # Ͱ(U+0370) -> gbk:桶 | big5:肭 | euc_kr:叩 # ͱ(U+0371) -> gbk:捅 | big5:舠 | euc_kr:告 # Ͳ(U+0372) -> gbk:筒 | big5:芠 | euc_kr:呱 # ͳ(U+0373) -> gbk:统 | big5:苀 | euc_kr:固 # ʹ(U+0374) -> gbk:痛 | big5:芫 | euc_kr:姑 # Ͷ(U+0376) -> gbk:投 | big5:芘 | euc_kr:尻 # ͷ(U+0377) -> gbk:头 | big5:芛 | euc_kr:庫 # ͺ(U+037A) -> gbk:秃 | big5:芮 | euc_kr:故 # ͻ(U+037B) -> gbk:突 | big5:芼 | euc_kr:敲 # ͼ(U+037C) -> gbk:图 | big5:芞 | euc_kr:暠 # ͽ(U+037D) -> gbk:徒 | big5:芺 | euc_kr:枯 # Ϳ(U+037F) -> gbk:涂 | big5:芨 | euc_kr:沽 # Ρ(U+03A1) -> gbk:巍 | big5:峞 | euc_kr:科 # Σ(U+03A3) -> gbk:危 | big5:峉 | euc_kr:誇 # Τ(U+03A4) -> gbk:韦 | big5:峇 | euc_kr:課 # Υ(U+03A5) -> gbk:违 | big5:峊 | euc_kr:跨 # Φ(U+03A6) -> gbk:桅 | big5:峖 | euc_kr:過 # Χ(U+03A7) -> gbk:围 | big5:峓 | euc_kr:鍋 # Ψ(U+03A8) -> gbk:唯 | big5:峔 | euc_kr:顆 # Ω(U+03A9) -> gbk:惟 | big5:峏 | euc_kr:廓 # Ϊ(U+03AA) -> gbk:为 | big5:峈 | euc_kr:槨 # Ϋ(U+03AB) -> gbk:潍 | big5:峆 | euc_kr:藿 # ά(U+03AC) -> gbk:维 | big5:峎 | euc_kr:郭 # έ(U+03AD) -> gbk:苇 | big5:峟 | euc_kr:串 # ή(U+03AE) -> gbk:萎 | big5:峸 | euc_kr:冠 # ί(U+03AF) -> gbk:委 | big5:巹 | euc_kr:官 # ΰ(U+03B0) -> gbk:伟 | big5:帡 | euc_kr:寬 # α(U+03B1) -> gbk:伪 | big5:帢 | euc_kr:慣 # β(U+03B2) -> gbk:尾 | big5:帣 | euc_kr:棺 # γ(U+03B3) -> gbk:纬 | big5:帠 | euc_kr:款 # Ͱ ͱ Ͳ ͳ ʹ Ͷ ͷ ͺ ͻ ͼ ͽ Ϳ Ρ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο ϡ Ϣ ϣ Ϥ ϥ Ϧ ϧ Ϩ ϩ Ϫ ϫ Ϭ ϭ Ϯ ϯ ϰ ϱ ϲ ϳ ϴ ϵ Ϸ ϸ Ϲ Ϻ ϻ ϼ Ͻ Ͼ Ͽ С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ж з и й к л м н о п ѡ Ѣ ѣ Ѥ ѥ Ѧ ѧ Ѩ ѩ Ѫ ѫ Ѭ ѭ Ѯ ѯ Ѱ ѱ Ѳ ѳ Ѵ ѵ Ѷ ѷ Ѹ ѹ Ѻ ѻ Ѽ ѽ Ѿ ѿ ҡ Ң ң Ҥ ҥ Ҧ ҧ Ҩ ҩ Ҫ ҫ Ҭ ҭ Ү ү Ұ ұ Ҳ ҳ Ҵ ҵ Ҷ ҷ Ҹ ҹ Һ һ Ҽ ҽ Ҿ ҿ ӡ Ӣ ӣ Ӥ ӥ Ӧ ӧ Ө ө Ӫ ӫ Ӭ ӭ Ӯ ӯ Ӱ ӱ Ӳ ӳ Ӵ ӵ Ӷ ӷ Ӹ ӹ Ӻ ӻ Ӽ ӽ Ӿ ӿ ԡ Ԣ ԣ Ԥ ԥ Ԧ ԧ Ԩ ԩ Ԫ ԫ Ԭ ԭ Ԯ ԯ Ա Բ Գ Դ Ե Զ Է Ը Թ Ժ Ի Լ Խ Ծ Կ ա բ գ դ ե զ է ը թ ժ ի լ խ ծ կ հ ձ ղ ճ մ յ ն շ ո չ պ ջ ռ ս վ տ ס ע ף פ ץ צ ק ר ש ת ء آ أ ؤ إ ئ ا ب ة ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ػ ؼ ؽ ؾ ؿ ٮ ٯ ٱ ٲ ٳ ٴ ٵ ٶ ٷ ٸ ٹ ٺ ٻ ټ ٽ پ ٿ ڡ ڢ ڣ ڤ ڥ ڦ ڧ ڨ ک ڪ ګ ڬ ڭ ڮ گ ڰ ڱ ڲ ڳ ڴ ڵ ڶ ڷ ڸ ڹ ں ڻ ڼ ڽ ھ ڿ ۥ ۦ ۮ ۯ ۺ ۻ ۼ ۿ ܡ ܢ ܣ ܤ ܥ ܦ ܧ ܨ ܩ ܪ ܫ ܬ ܭ ܮ ܯ ޡ ޢ ޣ ޤ ޥ ޱ Ά փ स ร ᓥ ィ 㕾 㜱 㤤 㪶 㱩 㷻 㾮 䆡 䌳 䖦 䜸 䤫 䪽 䱰 乣 俵 凨 厺 嗭 垿 奲 嬥 岷 幪 忼 懯 摢 旴 柧 楹 欬 沾 湱 瀤 燶 瑩 痻 矮 禡 笳 糦 繸 耫 臽 葰 蘣 蟵 覨 謺 賭 蹿 進 鈥 鑷 阪 韼 馯 魢 鳴 麧 ठ ป ᒞ て 㔔 㛜 㣂 㪊 㱕 㸞 䀆 䇋 䎓 䕕 䜞 䤃 䫋 䲖 亟 傄 剌 吮 嗖 垛 妄 孌 崗 廠 情 抎 摌 昗 柜 槅 殎 浘 潀 焆 狑 璎 癘 砞 稆 篑 継 羂 腇 茒 蓑 蚙 衟 詇 谒 跚 迃 醈 鍰 锒 雚 颠 骈 鱓 鸛 간 곣 궾 꺞 꽹 나 녴 뉓 댯 듋 떪 뚆 랥 뢀 률 먻 묚 믶 볕 붱 뺎 뽬 삈 셧 쉃 쌢 쒽 얜 외 잗 졳 쥒 쨮 쬊 쯩 쳅 춤 칿 콟 퀺 텙 툵 팔 풰 햌 홫 힇 Ꮧ 㙐 㼝 䐘 䲏 及 婁 挍 析 灠 癝 罁 萙 貐 鏆 騍 끀 돐 띠 쀏 쏍 읝 쿝 폊