用 AI 测了四款 APP 加固强度(附:强度自测 Checklist)

122 阅读3分钟

我用 AI 对四个真实上线的包做了一轮静态加固强度实测(起点读书/360、123云盘/爱加密、汽车街/梆梆、凤凰视频/乐固)。这篇先把测评结果摆出来,再附一套做静态强度自测的 Checklist,建议收藏备查。

一、测评标准:静态强度看什么

就一条能落地的:业务代码(DEX)藏没藏住。 加固壳的第一目标是让你光靠静态分析拿不到业务逻辑,所以外层 classes.dex 还能不能看到业务类,是最直接的强度信号;壳自己泄露多少(ELF 节区、动态符号、hook 框架名)算第二层。

二、实测结果对比

四个包按上面的标准过下来:

样本 / 加固外层 classes.dex业务类可见壳信息残留静态藏得深浅
汽车街 / 梆梆30MB(正经 DEX 19KB 就断,尾部追加数据)只剩 5 个壳类最深
123云盘 / 爱加密14KB stub只剩 4 个壳类少,载荷独立拆分最深
凤凰视频 / 乐固80 多 KB(3 个壳 dex)只剩包装类偏多(节区/符号/hook 名)深,但壳好摸
起点读书 / 36012 个 dex、七万多类com.qidian.* 大面积可见最浅

排序:梆梆 ≈ 爱加密 > 腾讯乐固 > 360。

有一条得说清楚,别读歪:360 排最后 ≠ 360 加固最弱。 它业务 DEX 可见,是因为这个包更像只对敏感方法、native 逻辑做定点保护,没做整包隐藏,壳本身(libjiagu_vip)裁得并不差。准确说法是这个包"静态藏得最少"。

三、给你自己的包做强度自测 Checklist

同一套标准,拿去测你自己 App 加固后的包,判断这层加固到底顶不顶用:

  • 解压看外层 classes.dex 大小:只有几十 KB → 大概率是壳 stub;几 MB 起 → 可能没做整包隐藏
  • jadx 拖进去搜自己的业务包名 com.yourcompany.*
    • 搜不到、只剩壳类 → 业务 DEX 藏住了 ✅
    • 大片业务类直接可见 → 静态基本是漏的(或只做了定点保护)⚠️
  • 看壳 SO 是否 stripped、有没有留一堆动态符号和 hook 框架名(残留越多,壳自身暴露面越大)
  • 别只信加固平台回的那句"加固完成",上线前自己走一遍这套自测

命令示例:

# 外层 dex 布局 + 壳 SO
unzip -l app.apk | grep -E 'classes.*\.dex|lib/.*\.so'

# Application 入口类(androguard)
python3 -c "from androguard.core.apk import APK; a=APK('app.apk'); print(a.get_attribute_value('application','name'))"

四、边界

这套测评只算静态这一层——拿到包、第一轮静态分析能看到多少。真正难不难脱还得看动态:Frida 附加、内存 dump、重放是另一本账,业务代码藏得再干净,运行时长期以明文躺内存里照样能被捞。


完整的测评流程、每个包的详细拆解和数据,放在字节暗面主站那篇里了(含可复现全流程),想深挖的可以去看,或搜「字节暗面 加固强度对比」。