用于 -obfuscationdictionary、-classobfuscationdictionary 和 -packageobfuscationdictionary 的免费预设字典。所有字符都已验证为合法 Java 标识符起始字符。
| 字典 | 分类 | 字符数 | 3 字符组合数 | |
|---|---|---|---|---|
| Homoglyph ↗ 跨脚本视觉相似字符 | 视觉 | 255 | 16,581,375 | 下载 |
| Greek ↗ 希腊字母和扩展形式 | 脚本 | 122 | 1,815,848 | 下载 |
| Cyrillic ↗ 西里尔基础和扩展字符 | 脚本 | 296 | 25,934,336 | 下载 |
| Latin Extended ↗ 变音符号、IPA 和拉丁扩展字符 | 脚本 | 494 | 120,553,784 | 下载 |
| Hebrew + Arabic ↗ 希伯来语、阿拉伯语和展示形式 | 脚本 | 423 | 75,686,967 | 下载 |
| East Asian ↗ CJK 部首、片假名、平假名和半角字符 | 脚本 | 246 | 14,886,936 | 下载 |
| Modifier & Tone ↗ 修饰字母、声调符号、上标和下标 | 视觉 | 244 | 14,526,784 | 下载 |
| Indigenous Scripts ↗ 切罗基、格鲁吉亚、亚美尼亚、泰语、老挝语等 | 脚本 | 1,146 | 1,505,060,136 | 下载 |
| Encoding Chaos ↗ 在 GBK、Big5、Shift-JIS、EUC-KR 中显示差异明显 | 编码 | 575 | 190,109,375 | 下载 |
| Minimal Confusable ↗ 每个 ASCII 字母选择一个最佳替代字符 | 轻量 | 52 | 140,608 | 下载 |
| Ultimate ↗ 合并全部脚本,提供最大字符集 | 合集 | 3,056 | 28,540,399,616 | 下载 |
下载字典文件后放到 Android 项目中,例如和 proguard-rules.pro 放在一起,然后在 ProGuard 配置中添加对应指令:
也可以在 ADB Pro 插件的 R8 Assistant → Dictionary 标签页中直接下载、管理并应用这些字典。
每个字典都包含通过 Character.isJavaIdentifierStart() 校验的 Unicode 字符。这些字符利用不同书写系统之间的视觉相似性,也就是 homoglyph,或者利用同一 UTF-8 字节在不同系统编码下显示差异明显的特性。
例如,Homoglyph 字典包含看起来像拉丁字母的希腊和西里尔字符,比如希腊 alpha α 与拉丁 a。Encoding Chaos 字典则选择在 GBK、Big5 或 Shift-JIS 环境中可能被解释成完全不同字符的内容。
全部 11 个字典都是开放且免费使用的,即使不安装 ADB Pro 插件也可以直接下载。