保护 Native 核心算法,也守住启动与兼容性

御盾围绕 SO、JNI、动态库依赖和关键 Native 函数设计保护范围,同时在目标 ABI 上验证加载、启动和真实调用路径,避免保护强度变成线上兼容问题。

你的 App 是否正遇到这些问题

  • 核心算法放进 SO 后仍能被符号和字符串快速定位
  • 调整导出或加载方式后出现 JNI 方法找不到
  • 第三方 Native SDK 与保护策略发生冲突
  • arm64-v8a 正常,其他目标 ABI 却无法启动

御盾如何处理

  • SO VMP 与 Native 保护

    针对高价值 Native 函数、符号、字符串和常量选择保护方式,避免无差别覆盖。

  • JNI 与加载链复核

    检查注册方式、依赖库、加载顺序和第三方 SDK,保证保护前后调用关系可验证。

  • ABI 兼容性测试

    在每个目标架构上验证安装、启动、库加载和关键 JNI 业务路径。

公开测评:SO 文件名存在,不等于 Native 载体可以直接读取

御盾 S21-R43 候选测评同时查看 release 静态结构和 debug 动态烟测,避免只凭文件名判断 SO 保护效果。

查看 Native 测评

本次公开了什么

  • 复核 Native stripped 状态、assets 载体和入口代理链
  • 把静态结构与动态加载现象放在同一份记录中
  • 明确区分候选证据、动态烟测与最终发布结论

说明: 结果只覆盖该候选和已执行的烟测范围,不替代完整设备、ABI 与性能矩阵。

从评估到交付

查看交付方法
  1. 01

    梳理 Native 资产

    提供主库、依赖库、JNI 入口、目标 ABI 和需要保护的关键函数。

  2. 02

    选择保护组合

    按函数价值、调用频率和加载约束配置 SO 与 VMP 保护。

  3. 03

    逐架构验收

    对目标 ABI 和系统版本运行真实路径,记录异常并保留回滚配置。

客户经常关心的问题

查看全部文章

购买前常见问题

SO 加固是否会影响 JNI 调用?

可能。入口注册、符号可见性、加载时机和第三方依赖都需要在目标架构上复核。

删除符号就等于完成 SO 保护吗?

不等于。符号收敛只减少一类线索,字符串、常量、控制流、装载链和运行材料仍需单独评估。

为什么 ABI 是硬门槛?

不同 ABI 的指令、链接和依赖产物不同。缺少目标 ABI 的构建与运行验证,不能推断兼容性。

SO VMP 应覆盖哪些函数?

优先选择高价值、输入输出明确、能够独立回归的 Native 函数,避免无差别覆盖初始化和频繁调用路径。

安全标准与平台依据

  1. Android NDK ABI 指南

    Native 架构、ABI 和打包兼容

  2. Android 安全最佳实践

    Android 应用安全设计与发布边界

  3. OWASP MASVS

    移动应用安全控制与验证范围

  4. Android 应用签名

    签名身份、升级链和发布一致性

  5. Play Integrity API

    服务端判定与应用完整性信号边界