谷歌应用市场上架风控

536 阅读2分钟

一、高权限滥用以及设备和网络滥用:

  1. Android权限列表:developer.android.com/reference/a…
  2. 找出代码中Protection level: dangerous标记的权限,删除。
  3. 后续提高保活能力和页面打开能力。需要的危险权限要添加对应的功能项
  4. support.google.com/googleplay/… googleplay规定的隐私权限滥用内容。

二、风险代码反射实现

  1. 初始方案:保活能力+页面打开jni实现。
  2. chatgpt确认风险点。jni加密肯定会查,反射可能会查
  3. 最终确定。反射实现风险代码。具体步骤:
    1. 实例对象类反射创建
    2. 每个方法反射实现
    3. 过程中设计的类名全路径,方法名,加密后放到c++

三、降低代码重复率

  1. 加入垃圾代码。
    1. 动态。gradle脚本执行,重复度依据代码量配置添加
    2. 静态。垃圾代码可配置。寻找生成工具。
  1. 代码重复率检测:jplag工具使用(参考github地址:github.com/jplag/JPlag
  2. 混淆字典
    1. python脚本生成。每次打包前更换混淆字典
    2. 收集变态混淆字典。为马甲包做准备
  1. 代码每次上线更改包和类名。xmlguard 脚本使用

四.增加逆向难度

  1. 加固对谷歌应用市场上架意义不大
  2. jni代码谷歌会检查。只能用来存放一些常量加密字符串。其中包括:
    1. 日志类加密字符串。

    2. 功能类类名,全路径包名、方法名(四大组件即相关的方法名)

    3. 谷歌规定的不安全的加密方式,整改参考地址:support.google.com/faqs/answer…

    4. jni代码混淆。需要配置ollvm环境编译Android的ndk设计混淆的so库。主要是clang.so的生成

五.禁止出现中文字符

六.场景广告页面打开采用随机类

  • python脚本批量生成随机类文件,生成后Manifest.xml批量注册

七.针对google不安全加密问题的解决方法:接口返回加密密钥以及反射用到的相关string,加密类完全使用反射来实现;参考support.google.com/faqs/answer…

八.风险代码设置依赖归因开关

九.保活修改

采用弱保活。去除文件锁。jni代码被标记。禁止使用

账号同步功能。冗余兼容功能删除。一像素页面低版本兼容

去除provider进程