Flutter 逆向安全

 前言:

前几天在 "学习" 一个项目, 发现是用 Flutter 开发的。之前研究过 flutter 的逆向,早期 Flutter 有工具可以通过快照进行反编译:《对照表如下》

新的版本开发者没有维护了。 目前没有很好的工具 可以对 Flutter 进行反编译!

所以现状就是使用 Flutter开发的应用  比使用传统原生的开发应用更安全!

安装包分析:

我们使用  AndroidKille 拆包查看:  因为是 Flutter 开发的 代码都在  libapp.so 中:

 我们通过 IDA 在浏览  libapp.so  过程中 发现了一行 可疑 字符

是不是特征很明显了:接下来就分析下  API的请求:

API请求分析:

我们通过 抓包软件 抓一个 API请求:

sign 字段是关键:

通过大量测试发现:签名规律:

前面是url 固定然后 是请求的参数 key-value,进行 ASCII 顺序拼接

编写脚本:

因为是个抢购软件,刚开始用 python编写发现效率不高而且 比较吃机器性能,后来改用 go 编写发现,不管是效率 还是对机器性能 都是一个质的提升。

警示:

API 请求秘钥形式特征明显

  1. 秘钥特性明显 容易被察觉
  2. 不管是 签名还是加密,在秘钥隐藏方面 要做到深入。秘钥不可转化为其他字符串。
  3. 对于特征明显的秘钥可以采用 切割, 算法进行处理

API 请求加密方式单一:

  1. 所有请求的方式 加密都是用一种方式,可以采用多种方式 复合使用;
  2. 特别重要的接口 可以使用不同的规则;以免一个接口攻破 所有接口都没有全军覆没

不管是加密还是哈希签名,对于 秘钥 或者 特征字符串 的隐藏是一个值得好好处理的事情。

隐藏的越深 越额普通 那你的安全就越高;