咨询发布 发表于 2026-4-18 23:15:34

安卓加密算法分析:从定位到Frida监控Cipher和Mac

安卓 App 的加密算法分析是逆向核心环节。找到加密逻辑才能构造请求或解密响应。

一、常见加密场景

[*]请求签名:把参数排序拼接+时间戳+密钥做 MD5/SHA256,放在 sign 头里
[*]数据加密:请求体或响应体用 AES 加密,密钥可能动态生成
[*]RSA 加密:登录密码用 RSA 公钥加密传输
[*]自定义算法:把标准算法魔改,增加逆向难度


二、定位加密函数

[*]jadx 搜关键词:encrypt、decrypt、sign、AES、DES、Cipher、Mac
[*]搜字符串:如果 App 里有"AES/CBC/PKCS5Padding"这种算法标识符,搜它
[*]用 Frida 监控 javax.crypto.Cipher 类的所有方法调用


三、Frida 监控加密调用
Java.perform(function() {
    var Cipher = Java.use("javax.crypto.Cipher");
   
    Cipher.init.overload('int', 'java.security.Key').implementation = function(mode, key) {
      console.log("Cipher init mode=" + mode + " key=" + key.getEncoded());
      return this.init(mode, key);
    };
   
    Cipher.doFinal.overload('[B').implementation = function(input) {
      var result = this.doFinal(input);
      console.log("doFinal input=" + bytesToHex(input));
      console.log("doFinal output=" + bytesToHex(result));
      return result;
    };
   
    // 监控 Mac(HMAC)
    var Mac = Java.use("javax.crypto.Mac");
    Mac.doFinal.overload('[B').implementation = function(input) {
      var result = this.doFinal(input);
      console.log("HMAC input=" + bytesToHex(input));
      console.log("HMAC output=" + bytesToHex(result));
      return result;
    };
});

四、分析密钥来源
密钥从哪来是关键。常见来源:硬编码在代码里(搜 SecretKeySpec)、从服务器获取、从 SharedPreferences 读取、设备相关信息生成(IMEI+时间戳)。用 Frida 监控 SecretKeySpec 的构造函数可以看到密钥内容。

五、自定义算法处理
如果 App 没用标准 Java crypto,而是 native 层自己实现。在 IDA 里找 so 库中的加密函数(搜 AES、encrypt 等字符串),用 Frida Interceptor.attach hook native 函数打印输入输出。

https://www.metk.cn/img/posts/android_crypto.jpg

发表于 2026-9-17 18:32:56

看起来好像不错的样子

半盏 发表于 2026-9-17 18:41:29

这类活很吃经验,工具只是辅助。你们环境是怎么解决版本兼容的?

林间寒山 发表于 2026-9-17 18:45:17

实际做的时候最花时间的是环境搭建而不是分析本身。有没有推荐的入门资料?

南山 发表于 2026-9-17 18:48:17

加固厂商之间差异挺大,同一套思路不一定通用。这类分析一般要多久能出结果?

慢半拍拾光 发表于 2026-9-17 18:51:56

做这类分析一定要有授权,边界要清楚。

有点困看海 发表于 2026-9-17 18:55:18

实际做的时候最花时间的是环境搭建而不是分析本身。

寻梅柚子 发表于 2026-9-17 18:58:09

加固方案升级挺快的,去年那套方法今年可能就失效了。

柚子阿澈 发表于 2026-9-17 19:01:10

这类问题排查最怕环境差异,先在本地复现会快很多。你们环境是怎么解决版本兼容的?

陆离 发表于 2026-9-17 19:03:12

遇到卡住的地方,换个思路往往比死磕更快。想了解下有没有遇到反调试的坑?
页: [1] 2 3 4 5 6
查看完整版本: 安卓加密算法分析:从定位到Frida监控Cipher和Mac