# ddc 语料验证 **39 个真实 Android 应用,6.4 GB,5,409,658 个类,4,081,503 个反编译文件——全部通过 javac 解析。** 每 APK 严格串行单次运行(空载机器,Apple Silicon 6P+12E),墙钟与峰值 RSS 来自 `/usr/bin/time -l`。语法门是 javac 的解析阶段 (`-XDshould-stop.ifNoError/ifError=PARSE`)——解析全部输出文件、跳过语义分析, 因此计数不含 classpath 缺失噪音。 ## 验证过程中发现并修复的 bug 语料的价值在第一轮就体现出来了——39 个 APK 中 27 个的输出无法通过 javac 解析, 暴露出七个真实缺陷(均已修复并带回归验证): | # | 症状(首轮错误数) | 根因 | 修复 | |---|---|---|---| | 1 | 改名类 2,518–46,774 错/包(MinisApp、WhatsApp、AutoClaw 等 22 个 APK) | 大小写变体类(`Y2.a` vs `y2.a`)重命名为 `_2/_3` 后,构造器/文件名应用了新名,**类头声明没有**——`class a` 里的 `a_2(...)` 构造器被 javac 读成无返回类型的方法 | `emit_class_body` 头部与改名同步 | | 2 | 支付宝 >50 万错(撞 -Xmaxerrs 上限) | 字段/参数名是单个非 ASCII 字符(`支`)——标识符清洗的字符映射把每个非法字符替换成 `_`,**单字符名恰好产出裸 `_`**(Java 9 起保留) | 两侧 `java_ident`:映射结果为 `_` 时再转义为 `__` | | 3 | 淘宝 1 错 / 钉钉 20 错 | 类名叫 `var`/`record` 等受限上下文名(Java 10+ 禁止用于类型声明) | `var/yield/record/sealed/permits` 加入关键字转义列表(声明/引用/文件名三处一致) | | 4 | 豆包(nova) 46 错 | 字段名 `1x`/`2x` 数字开头——声明侧有 digit-start 转义,**jdc-core 引用侧没有** | jdc-core `java_ident` 补 digit-start 分支 | | 5 | 知乎(bangcle) 423 错 / 钉钉残留 | 类型引用的分段清洗器(`sanitize_fq`/`sanitize_source_name`)缺单下划线守卫 | 同 bug 2 的守卫补到分段清洗器 | | 6 | 钉钉残留 5 错 | R8 类名以 `$` 结尾(`ThreadMsg$$$`)——`rsplit('$')` 得到**空段**,qualified-new 渲染成 `v9.new (args)` | 三处空 `$`-段回退到完整简名 | | 7 | UU远程 整跑失败 | `assets/` 里放着假 `.dex`(加密载荷,magic 非法)——一个坏镜像让全量反编译直接退出 | `parse_images` 跳过不可解析镜像(stderr 提示),全部失败才报错 | ## 全量反编译 | 应用 | 包名 | 版本 | 大小 | MD5 | dex | 类 | 墙钟 | 峰值 RSS | 文件 | 语法错误 | |---|---|---|---|---|---|---|---|---|---|---| | 滴滴 | `com.sdu.didi.psnger` | 8.0.14 | 70 MB | `938b1d94` | 8 | 85,460 | 3.90s | 746 MB | 63,039 | 0 | | 高德地图 | `com.autonavi.minimap` | 17.00.0.2005 | 186 MB | `e63b59b0` | 8 | 73,064 | 2.58s | 809 MB | 52,954 | 0 | | 学信网 | `cn.com.chsi.chsiapp` | 2.5.13 | 130 MB | `5222c338` | 1 | 4 | 0.04s | 29 MB | 4 | 0 | | 中国移动 | `com.greenpoint.android.mc10086.activity` | 12.5.4 | 219 MB | `d32b44be` | 1 | 7 | 0.07s | 3 MB | 6 | 0 | | 招商银行 | `cmb.pb` | 14.4.0 | 159 MB | `6baf69c9` | 14 | 41,051 | 2.94s | 452 MB | 30,746 | 0 | | 智谱清言 | `com.zhipuai.qingyan` | 3.7.9 | 98 MB | `f11f004a` | 3 | 29,329 | 0.95s | 303 MB | 18,540 | 0 | | Minis | `com.openminis.app` | 1.13 | 39 MB | `c0d167a7` | 1 | 7,772 | 5.09s | 541 MB | 7,748 | 0 | | 网易云音乐 | `com.netease.cloudmusic` | 9.5.95 | 224 MB | `b38a4723` | 21 | 177,777 | 5.56s | 1148 MB | 101,390 | 0 | | Telegram | `org.telegram.messenger.web` | 12.10.2 | 62 MB | `f4abf9c8` | 4 | 20,134 | 7.85s | 1172 MB | 19,282 | 0 | | 京东 | `com.jingdong.app.mall` | 16.0.0 | 85 MB | `1a78ab63` | 14 | 84,489 | 3.03s | 1088 MB | 61,628 | 0 | | WhatsApp | `com.whatsapp` | 2.26.36.75 | 139 MB | `569cf81e` | 12 | 100,350 | 8.12s | 1197 MB | 99,276 | 0 | | 支付宝 | `com.eg.android.AlipayGphone` | 12.12.26.8100 | 177 MB | `7fb233eb` | 21 | 179,460 | 9.31s | 1364 MB | 139,736 | 0 | | AutoClaw | `com.zai.autoclaw` | 1.5.0 | 64 MB | `b80a00ed` | 2 | 20,852 | 1.59s | 415 MB | 20,079 | 0 | | AutoGLM | `com.zhipu.agent` | 2.0.20 | 122 MB | `55086238` | 4 | 43,516 | 1.77s | 545 MB | 33,296 | 0 | | 懂车帝 | `com.ss.android.auto` | 9.0.8 | 174 MB | `e3148f92` | 27 | 213,523 | 7.98s | 1385 MB | 163,517 | 0 | | 抖音 | `com.ss.android.ugc.aweme` | 40.5.0 | 339 MB | `bb10859f` | 54 | 527,000 | 34.08s | 3096 MB | 518,484 | 0 | | 百度 | `com.baidu.searchbox` | 15.76.0.10 | 160 MB | `d43d5c5d` | 21 | 185,901 | 5.28s | 1088 MB | 99,574 | 0 | | DeepSeek | `com.deepseek.chat` | 2.5.2 | 14 MB | `538e8991` | 3 | 13,311 | 0.82s | 371 MB | 12,481 | 0 | | 知乎 | `com.zhihu.android` | 11.10.0 | 163 MB | `d2e27da3` | 18 | 167,486 | 4.93s | 1003 MB | 107,119 | 0 | | Meituan | `com.sankuai.meituan` | 12.66.202 | 98 MB | `c368a84e` | 12 | 118,168 | 3.91s | 831 MB | 76,048 | 0 | | 哔哩哔哩 | `tv.danmaku.bili` | 9.12.0 | 207 MB | `22eeb540` | 32 | 302,829 | 10.58s | 1741 MB | 221,232 | 0 | | Kimi | `com.moonshot.kimichat` | 3.1.0 | 34 MB | `2196a886` | 3 | 29,752 | 1.63s | 511 MB | 27,941 | 0 | | Lark | `com.larksuite.suite` | 8.0.2 | 398 MB | `ad291240` | 49 | 292,118 | 5.83s | 1519 MB | 118,502 | 0 | | MiniMax | `com.xproducer.yingshiai` | 4.11.1 | 33 MB | `b453a746` | 10 | 30,505 | 1.01s | 420 MB | 18,196 | 0 | | 拼多多 | `com.xunmeng.pinduoduo` | 8.17.0 | 95 MB | `9bb8ba84` | 6 | 57,336 | 1.92s | 535 MB | 39,069 | 0 | | Toutiao | `com.ss.android.article.news` | 18.5.0 | 176 MB | `2855fb2f` | 33 | 306,489 | 15.67s | 1729 MB | 286,767 | 0 | | 豆包 | `com.larus.nova` | 15.1.0 | 395 MB | `62d70e63` | 40 | 474,226 | 16.50s | 2550 MB | 346,129 | 0 | | QQ | `com.tencent.mobileqq` | 9.3.65 | 374 MB | `8e1f7337` | 41 | 428,076 | 16.34s | 2240 MB | 329,101 | 0 | | Reqable | `com.reqable.android` | 3.2.23 | 34 MB | `948d4b61` | 1 | 8,201 | 0.31s | 142 MB | 5,579 | 0 | | DingDing | `com.alibaba.android.rimet` | 8.5.5 | 317 MB | `0833d290` | 33 | 193,909 | 6.54s | 1506 MB | 121,830 | 0 | | 学习通 | `com.chaoxing.mobile` | 7.0.4 | 248 MB | `64fd5211` | 2 | 558 | 0.31s | 251 MB | 380 | 0 | | 淘宝 | `com.taobao.taobao` | 10.66.10 | 90 MB | `12525ac9` | 13 | 102,146 | 4.00s | 1146 MB | 72,150 | 0 | | 同花顺 | `com.hexin.plat.android` | 11.62.03 | 198 MB | `20feb874` | 11 | 72,014 | 2.52s | 529 MB | 50,836 | 0 | | 剪映 | `com.lemon.lv` | 21.5.0 | 438 MB | `39c03cf8` | 46 | 329,997 | 12.74s | 2856 MB | 272,324 | 0 | | Weibo | `com.sina.weibo` | 16.9.1 | 226 MB | `20117d66` | 20 | 145,492 | 6.52s | 1192 MB | 98,347 | 0 | | WeChat | `com.tencent.mm` | 8.0.78 | 268 MB | `846b4111` | 17 | 249,909 | 16.08s | 1346 MB | 239,599 | 0 | | 小红书 | `com.xingin.xhs` | 8.84.5.5 | 112 MB | `418e60cc` | 14 | 170,579 | 4.98s | 714 MB | 116,844 | 0 | | 星野 | `com.xingye.app` | 2.56.702 | 146 MB | `757cfe55` | 38 | 108,449 | 4.30s | 1127 MB | 74,591 | 0 | | UU远程 | `com.netease.uuremote` | 4.40.0 | 25 MB | `de426ecb` | 2 | 18,419 | 1.18s | 375 MB | 17,139 | 0 | ## 子命令测试 13 个子命令对每 APK 各计时一次(本机全部亚秒)。查询目标按 APK 自动选取: 包名给 `listclasses`/`strings`/`findrefs string`,`onCreate` 给 `findrefs method`,启动类给 `members`/`hierarchy`/`disasm`/`getclass`。 `†` 标注加固 APK 的启动类(不在可解析 dex 中)。 | 应用 | info | listclasses | manifest | mainactivity | res | largest | strings | findrefs-string | findrefs-method | members | hierarchy | disasm | getclass | |---|---|---|---|---|---|---|---|---|---|---|---|---|---| | 滴滴 | 0.04s | 0.03s | 0.00s | 0.03s | 0.00s | 0.11s | 0.04s | 0.03s | 0.03s | 0.03s | 0.03s | 0.03s | 0.14s | | 高德地图 | 0.05s | 0.03s | 0.00s | 0.03s | 0.00s | 0.11s | 0.03s | 0.03s | 0.03s | 0.04s | 0.03s | 0.03s | 0.15s | | 学信网 | 0.01s | 0.00s | 0.00s | 0.01s | 0.00s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.02s | 0.01s† | | 中国移动 | 0.00s | 0.00s | 0.00s | 0.00s | 0.01s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s† | | 招商银行 | 0.03s | 0.01s | 0.00s | 0.04s | 0.00s | 0.09s | 0.05s | 0.01s | 0.03s | 0.04s | 0.04s | 0.04s | 0.03s† | | 智谱清言 | 0.02s | 0.02s | 0.01s | 0.02s | 0.00s | 0.06s | 0.02s | 0.02s | 0.03s | 0.02s | 0.02s | 0.02s | 0.06s | | Minis | 0.02s | 0.01s | 0.00s | 0.01s | 0.00s | 0.02s | 0.02s | 0.02s | 0.02s | 0.02s | 0.02s | 0.02s | 0.02s | | 网易云音乐 | 0.06s | 0.06s | 0.00s | 0.07s | 0.01s | 0.29s | 0.10s | 0.05s | 0.05s | 0.08s | 0.08s | 0.08s | 0.33s | | Telegram | 0.03s | 0.03s | 0.00s | 0.03s | 0.00s | 0.05s | 0.03s | 0.03s | 0.04s | 0.03s | 0.03s | 0.04s | 0.42s | | 京东 | 0.05s | 0.03s | 0.00s | 0.04s | 0.00s | 0.16s | 0.06s | 0.03s | 0.04s | 0.06s | 0.05s | 0.06s | 0.17s | | WhatsApp | 0.04s | 0.01s | 0.00s | 0.05s | 0.01s | 0.13s | 0.07s | 0.04s | 0.04s | 0.05s | 0.05s | 0.05s | 0.13s | | 支付宝 | 0.08s | 0.06s | 0.00s | 0.09s | 0.00s | 0.33s | 0.12s | 0.08s | 0.08s | 0.11s | 0.10s | 0.09s | 0.38s | | AutoClaw | 0.03s | 0.02s | 0.00s | 0.02s | 0.00s | 0.04s | 0.02s | 0.02s | 0.03s | 0.02s | 0.02s | 0.02s | 0.04s | | AutoGLM | 0.01s | 0.01s | 0.00s | 0.00s | 0.00s | 0.05s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.00s | 0.07s | | 懂车帝 | 0.08s | 0.05s | 0.00s | 0.08s | 0.02s | 0.38s | 0.11s | 0.05s | 0.07s | 0.11s | 0.12s | 0.09s | 0.42s | | 抖音 | 0.14s | 0.09s | 0.00s | 0.15s | 0.02s | 0.68s | 0.19s | 0.13s | 0.16s | 0.19s | 0.19s | 0.17s | 0.75s | | 百度 | 0.05s | 0.04s | 0.01s | 0.07s | 0.06s | 0.28s | 0.09s | 0.05s | 0.06s | 0.08s | 0.08s | 0.07s | 0.31s | | DeepSeek | 0.03s | 0.02s | 0.00s | 0.03s | 0.00s | 0.04s | 0.03s | 0.04s | 0.04s | 0.03s | 0.03s | 0.03s | 0.04s | | 知乎 | 0.07s | 0.06s | 0.00s | 0.07s | 0.01s | 0.26s | 0.09s | 0.04s | 0.05s | 0.08s | 0.08s | 0.07s | 0.29s | | Meituan | 0.05s | 0.02s | 0.00s | 0.05s | 0.01s | 0.19s | 0.07s | 0.04s | 0.05s | 0.06s | 0.08s | 0.06s | 0.22s | | 哔哩哔哩 | 0.09s | 0.07s | 0.00s | 0.09s | 0.01s | 0.46s | 0.15s | 0.06s | 0.07s | 0.12s | 0.12s | 0.11s | 0.55s | | Kimi | 0.03s | 0.02s | 0.00s | 0.02s | 0.00s | 0.05s | 0.03s | 0.04s | 0.04s | 0.03s | 0.02s | 0.04s | 0.05s | | Lark | 0.09s | 0.05s | 0.00s | 0.11s | 0.01s | 0.42s | 0.18s | 0.04s | 0.07s | 0.13s | 0.14s | 0.12s | 0.52s | | MiniMax | 0.02s | 0.02s | 0.00s | 0.03s | 0.00s | 0.07s | 0.04s | 0.01s | 0.02s | 0.04s | 0.03s | 0.03s | 0.06s | | 拼多多 | 0.03s | 0.01s | 0.01s | 0.02s | 0.00s | 0.08s | 0.02s | 0.03s | 0.03s | 0.03s | 0.02s | 0.02s | 0.09s | | Toutiao | 0.10s | 0.05s | 0.00s | 0.12s | 0.02s | 0.52s | 0.14s | 0.06s | 0.09s | 0.14s | 0.15s | 0.13s | 0.49s | | 豆包 | 0.14s | 0.11s | 0.00s | 0.13s | 0.02s | 0.59s | 0.23s | 0.07s | 0.11s | 0.16s | 0.17s | 0.15s | 0.95s | | QQ | 0.13s | 0.07s | 0.00s | 0.16s | 0.02s | 0.60s | 0.24s | 0.10s | 0.12s | 0.19s | 0.18s | 0.18s | 0.88s | | Reqable | 0.01s | 0.01s | 0.00s | 0.01s | 0.00s | 0.02s | 0.01s | 0.02s | 0.02s | 0.01s | 0.01s | 0.01s | 0.02s | | DingDing | 0.10s | 0.06s | 0.00s | 0.13s | 0.01s | 0.36s | 0.16s | 0.06s | 0.07s | 0.15s | 0.13s | 0.12s | 0.40s | | 学习通 | 0.16s | 0.00s | 0.00s | 0.16s | 0.01s | 0.17s | 0.16s | 0.16s | 0.16s | 0.16s | 0.16s | 0.17s | 0.16s† | | 淘宝 | 0.05s | 0.04s | 0.00s | 0.05s | 0.00s | 0.19s | 0.06s | 0.04s | 0.06s | 0.06s | 0.06s | 0.06s | 0.19s | | 同花顺 | 0.04s | 0.02s | 0.00s | 0.04s | 0.01s | 0.14s | 0.05s | 0.03s | 0.03s | 0.06s | 0.05s | 0.04s | 0.04s† | | 剪映 | 0.14s | 0.08s | 0.00s | 0.13s | 0.02s | 0.54s | 0.28s | 0.07s | 0.10s | 0.16s | 0.16s | 0.15s | 0.73s | | Weibo | 0.06s | 0.05s | 0.00s | 0.07s | 0.02s | 0.28s | 0.11s | 0.06s | 0.06s | 0.09s | 0.08s | 0.08s | 0.30s | | WeChat | 0.06s | 0.06s | 0.00s | 0.08s | 0.01s | 0.28s | 0.12s | 0.09s | 0.07s | 0.11s | 0.09s | 0.10s | 0.37s | | 小红书 | 0.04s | 0.04s | 0.00s | 0.05s | 0.02s | 0.18s | 0.05s | 0.03s | 0.04s | 0.05s | 0.05s | 0.05s | 0.23s | | 星野 | 0.06s | 0.03s | 0.02s | 0.07s | 0.00s | 0.22s | 0.12s | 0.03s | 0.04s | 0.12s | 0.09s | 0.08s | 0.19s | | UU远程 | 0.02s | 0.02s | 0.00s | 0.02s | 0.00s | 0.04s | 0.02s | 0.02s | 0.03s | 0.02s | 0.02s | 0.02s | 0.04s | ## 备注 - **加固 APK**:学信网/中国移动只有 4-7 个类、UU远程/学习通仅数百类——壳 dex 只包含 加载器,真实代码在加密载荷里(这本身就是有效情报);知乎与招商银行的启动类不在 可解析 dex 中(`getclass` 返回明确的 not found 提示,其余子命令正常)。 - **病态类超时**:全量反编译中每 APK 0-2 个 R8 巨型方法类(gson adapter、 SendMessagesHelper 族)走截止期降级——输出该类缺失,其余完整;这是已记录的 设计行为(受控线程 + 1.5s/方法截止期),不是崩溃。 - **假 dex 跳过**:UU远程的 `assets/39285EFA.dex` 是加密载荷,非 DEX magic—— 跳过并提示,17,139 个真实类正常输出。