识别一款APP或游戏包有没有加固并不难,难的是判断加固后还暴露了多少代码和结构,常用工具能否快速找到分析入口。
静态强度要结合DEX业务代码、Native SO的ELF结构、符号、字符串、重定位、函数边界和附加载荷综合判断。只看有没有壳、文件大小、整体熵值或总分,很容易漏掉影响分析成本的细节。本专题整理了字节暗面对Android APK、游戏包和安全模块进行的多轮测试;完整过程和原始数据可进入对应报告查看。
时效与适用范围
本专题中的测试结果来自特定时间、应用版本和样本配置,仅对应文中列出的文件与测试条件,不代表其他版本的实际情况。同一产品在版本更新或保护配置变化后,文件结构、代码暴露和分析结果都可能发生变化。不同批次测试使用的指标和评分权重也可能存在差异,因此分数只适合在同一轮测试中比较,不能合并为统一排名。
本页最后更新:2026年9月18日。
测试方法:AI测评与人工审核
多轮测试主要使用ChatGPT 5.6 Sol、Claude等AI模型。APK或Native SO文件交给模型后,由AI调用本地工具完成解析、统计、特征归纳和量化对比。作者再审核模型输出、关键数据和结论。
Android APK重点检查:
- AndroidManifest中的Application入口,以及标准DEX的数量、类定义和方法引用;
- 应用包名、业务类及其他可读代码是否暴露;
- assets目录中的独立载荷、异常数据文件及其分布;
- 壳SO的节区、动态符号、字符串和基础安全属性。
Native SO重点检查:
- ELF节区表、程序头、可执行加载段及
.text、.rodata、.dynsym等结构; - 导入导出、JNI接口、RTTI、字符串、编译路径和检测关键词;
DT_INIT、.init_array、重定位、FDE记录和函数边界;- 高熵数据、零填充、未被节区表描述的区域及基础安全属性。
同一轮样本使用相同的指令和指标。AI负责提取数据、整理异常、横向比较和初步评分;作者核对样本归属、应用版本、文件架构、异常值和评分依据,并检查结论是否超出静态证据。
目前公开结果只涉及静态抗分析强度。代码恢复、反调试、Hook检测、内存保护、启动速度和资源占用,需要另做运行时测试。
静态加固强度主要看什么
| 评估维度 | 主要检查内容 | 可以反映的问题 | 不能直接证明的内容 |
|---|---|---|---|
| APK与DEX暴露 | Application入口、DEX数量、类与方法、业务包名 | 业务代码能否被标准工具直接读取 | 运行时脱壳和代码恢复难度 |
| ELF结构 | 节区、程序段、入口、附加载荷 | 工具能否快速建立代码结构 | 运行时检测是否真正触发 |
| 语义信息 | 符号、导出接口、JNI映射、RTTI、字符串 | 能否快速定位初始化、通信和检测逻辑 | 功能是否启用及实际拦截效果 |
| 函数与引用关系 | 重定位、INIT/FINI、FDE、函数边界 | 反编译器能否恢复交叉引用和代码地图 | 代码恢复后的明文驻留时间 |
| 数据分布 | 局部熵值、零填充、未描述区域 | 是否存在压缩、加密或自定义布局线索 | 具体算法、密钥强度和密钥管理方式 |
| 基础安全属性 | NX、RELRO、BIND_NOW、TEXTREL、RWX | ELF基础安全配置是否完整 | 产品整体加固和反外挂能力 |
关于各项指标的具体含义,可以继续阅读:SO加固强度怎么判断:从ELF结构、符号、字符串到加载链。
01|腾讯ACE与FairGuard安全模块静态强度对比
测试时间:2026年9月
测试模型:ChatGPT 5.6 Sol,推理强度“极高”
测试范围:ELF结构、符号、字符串、重定位、函数边界、数据分布和基础安全属性
测试对象
| 项目 | FairGuard | 腾讯ACE |
|---|---|---|
| 游戏样本 | 《闪烁之光》4.4.8 | 《火影忍者》1.79.79.9 |
| 测试文件 | libFairGuard.so |
libtersafe.so |
| 架构 | AArch64 | AArch64 |
| 文件大小 | 5.16 MiB | 5.52 MiB |
| 本轮总分 | 92 | 53 |
量化评分
| 评分维度 | 权重 | FairGuard | 腾讯ACE |
|---|---|---|---|
| ELF结构与节区隐藏 | 25 | 23 | 8 |
| 符号与接口信息隐藏 | 20 | 18 | 11 |
| 字符串与构建信息保护 | 15 | 14 | 8 |
| 初始化、重定位及FDE隐藏 | 15 | 14 | 7 |
| 数据不透明度与局部熵特征 | 15 | 13 | 9 |
| 基础ELF安全属性 | 10 | 10 | 10 |
| 总分 | 100 | 92 | 53 |
关键结果
| 指标 | FairGuard | 腾讯ACE |
|---|---|---|
| 节区表覆盖文件比例 | 6.94% | 99.96% |
| 最大无节区区域占比 | 88.80% | 0.03% |
| 可读符号比例 | 2.24% | 99.65% |
| 可读导出接口 | 0 | 71 |
| 长度不少于8字节的字符串 | 427 | 4,224 |
| 可恢复FDE记录 | 0 | 16,286 |
本轮静态测试中,FairGuard得分92,腾讯ACE得分53。FairGuard样本隐藏了代码主体、符号和函数边界,常用ELF工具难以直接建立代码地图;腾讯ACE样本保留了较标准的ELF结构,以及更多可读接口、字符串、重定位和FDE信息,静态定位入口更明显。
完整测试报告
查看样本信息、量化指标和完整分析过程:
阅读《腾讯ACE与FairGuard安全模块静态强度对比》 →
02|四款Android APP静态加固强度对比
测试时间:2026年8月
测试模型:ChatGPT 5.6 Sol,推理强度“高”
测试范围:Application入口、DEX暴露、业务类、附加载荷和壳SO特征
测试对象与结果
| APP样本 | 加固产品 | 标准DEX、类与方法 | 业务代码暴露 | 本轮分档 |
|---|---|---|---|---|
| 起点读书 7.9.472 | 360加固 | 12个DEX;70,798个类;553,107个方法引用 | 较高,约27,739个com.qidian.*类 |
C+ |
| 123云盘 3.2.16 | 爱加密 | 1个DEX;4个类;106个方法引用 | 未发现 | A |
| 汽车街 4.0.5 | 梆梆安全 | 1个DEX;5个类;190个方法引用 | 未发现 | A |
| 凤凰视频 7.40.1 | 腾讯乐固 | 3个DEX;39个类;369个方法引用 | 未发现;其中两个DEX为占位类 | A- |
结果摘要
本轮静态分档为:梆梆安全A、爱加密A、腾讯乐固A-、360加固C+。爱加密、梆梆和腾讯乐固样本均隐藏了主业务DEX,差异主要在载荷布局和Native壳的信息暴露;360样本仍保留大量标准DEX和业务类,静态业务代码暴露最明显。
完整测试报告
查看四个APK的壳特征、载荷数据和逐项分析:
阅读《四款Android APP静态加固强度对比》 →
03|三款手游SO静态强度历史实测
测试时间:2026年5月
测试模型:Claude Sonnet 4.6,Effort设置为High
测试范围:SO文件结构、符号、字符串、编译信息和数据分布
测试对象与当轮评分
| 游戏样本 | 安全模块 | 测试文件 | 当轮评分 |
|---|---|---|---|
| 《夜幕之下》1.0.41 | FairGuard | libFairGuard.so |
91 |
| 《合金弹头觉醒》1.27.0 | 腾讯ACE | libtersafe.so |
77 |
| 《远光84》1.4.0.0.1639369 | 网易易盾 | libNetHTProtect.so |
63 |
结果摘要
本轮静态测试中,FairGuard得分91,腾讯ACE得分77,网易易盾得分63。FairGuard样本隐藏了较多节区、符号和字符串信息;腾讯ACE样本保留了更多接口、检测关键词和构建信息;网易易盾样本的标准代码结构和编译信息相对完整,常规工具更容易恢复分析入口。
完整测试报告
查看三款手游SO的样本数据和当轮评分依据:
阅读《三款手游SO加固静态强度对比》 →
这些结果可以说明什么
静态测试能看出业务代码是否仍在标准DEX或ELF结构中,工具能恢复多少类、函数和交叉引用,符号与字符串又暴露了多少语义。独立载荷、自定义布局和异常数据区域,也会直接影响第一阶段的定位成本。
这些数据适合做静态初筛或POC的一部分。正式验收还要检查代码恢复和明文驻留、调试与Hook检测、文件完整性,以及保护后的性能和兼容性。
常见问题
Android APP和游戏SO的加固强度怎么判断?
需要同时看代码暴露、文件结构和语义信息。APK重点检查DEX、业务类、Application入口和附加载荷;SO重点检查ELF节区、符号、字符串、重定位、函数边界和加载入口。完整验收还要补充运行时、性能和兼容性测试。
APK加固强度主要看哪些指标?
主要看Application入口是否被替换、业务DEX是否隐藏、还能恢复多少类和方法,以及包名和业务载荷是否暴露。壳SO留下的符号、字符串和加载入口也会影响分析成本。
SO加固强度主要看哪些指标?
主要看ELF节区与程序段、可读符号、导入导出、字符串、重定位、FDE记录、附加载荷和初始化入口。这些信息会影响工具恢复函数边界、交叉引用和代码结构的能力。
文件熵值越高,是否代表加固越强?
不能。高熵数据可能来自加密,也可能来自压缩;大量零填充还会拉低整体熵值。熵值只是线索,必须结合节区、加载段、文件头和载荷位置判断。
SO无法被IDA或Ghidra正常打开,就代表加固很强吗?
只能说明常规静态分析的起步成本较高。运行时若一次恢复完整代码,仍会留下内存窗口。还要继续检查加载链、恢复粒度、明文驻留、完整性校验和反调试响应。
可以根据一个APK判断某家厂商的整体能力吗?
可以在一定程度上反映厂商的部分能力,但厂商可能提供多个版本,应用方也可能只保护部分模块,单个样本不能代表产品的全部能力。
以前发布的加固测试结果现在还有效吗?
结果对文中列出的样本、版本和测试条件有效,不代表其他版本。应用升级、产品更新或配置变化后,文件结构和静态暴露都可能改变。本专题保留测试日期、应用版本、分析模型和原始报告链接,方便回查。
AI可以测评APK和SO的加固强度吗?
可以。具备本地工具调用能力的AI模型可以解压APK、解析Manifest和DEX,也能调用readelf、strings等工具读取SO。它适合批量统计、异常筛查和多样本对比,但结果仍受样本、模型、工具输出和指标口径影响。