查看: 57|回复: 54

[相关教程] 安卓加密算法分析:从定位到Frida监控Cipher和Mac

[复制链接]

96

主题

5

回帖

951

积分

UID
2
贡献
9 点
钻石
7 个
C币
993 个
发表于 2026-4-18 23:15:34 | 显示全部楼层 |阅读模式
安卓 App 的加密算法分析是逆向核心环节。找到加密逻辑才能构造请求或解密响应。

一、常见加密场景

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


二、定位加密函数

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


三、Frida 监控加密调用
  1. Java.perform(function() {
  2.     var Cipher = Java.use("javax.crypto.Cipher");
  3.    
  4.     Cipher.init.overload('int', 'java.security.Key').implementation = function(mode, key) {
  5.         console.log("Cipher init mode=" + mode + " key=" + key.getEncoded());
  6.         return this.init(mode, key);
  7.     };
  8.    
  9.     Cipher.doFinal.overload('[B').implementation = function(input) {
  10.         var result = this.doFinal(input);
  11.         console.log("doFinal input=" + bytesToHex(input));
  12.         console.log("doFinal output=" + bytesToHex(result));
  13.         return result;
  14.     };
  15.    
  16.     // 监控 Mac(HMAC)
  17.     var Mac = Java.use("javax.crypto.Mac");
  18.     Mac.doFinal.overload('[B').implementation = function(input) {
  19.         var result = this.doFinal(input);
  20.         console.log("HMAC input=" + bytesToHex(input));
  21.         console.log("HMAC output=" + bytesToHex(result));
  22.         return result;
  23.     };
  24. });
复制代码

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

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

温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!
回复

使用道具 举报

匿名  发表于 2026-9-17 18:32:56
看起来好像不错的样子
回复

使用道具

0

主题

362

回帖

362

积分

UID
873904
贡献
0 点
钻石
0 个
C币
1 个
发表于 2026-9-17 18:41:29 | 显示全部楼层
这类活很吃经验,工具只是辅助。你们环境是怎么解决版本兼容的?
回复

使用道具 举报

0

主题

363

回帖

0

积分

UID
478699
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-9-17 18:45:17 | 显示全部楼层
实际做的时候最花时间的是环境搭建而不是分析本身。有没有推荐的入门资料?
回复

使用道具 举报

0

主题

387

回帖

50

积分

UID
767379
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-9-17 18:48:17 | 显示全部楼层
加固厂商之间差异挺大,同一套思路不一定通用。这类分析一般要多久能出结果?
回复

使用道具 举报

0

主题

380

回帖

0

积分

UID
406169
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-9-17 18:51:56 | 显示全部楼层
做这类分析一定要有授权,边界要清楚。
回复

使用道具 举报

0

主题

366

回帖

43

积分

UID
809976
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-9-17 18:55:18 | 显示全部楼层
实际做的时候最花时间的是环境搭建而不是分析本身。
回复

使用道具 举报

0

主题

372

回帖

372

积分

UID
738620
贡献
0 点
钻石
0 个
C币
1 个
发表于 2026-9-17 18:58:09 | 显示全部楼层
加固方案升级挺快的,去年那套方法今年可能就失效了。
回复

使用道具 举报

0

主题

390

回帖

45

积分

UID
481551
贡献
0 点
钻石
0 个
C币
1 个
发表于 2026-9-17 19:01:10 | 显示全部楼层
这类问题排查最怕环境差异,先在本地复现会快很多。你们环境是怎么解决版本兼容的?
回复

使用道具 举报

0

主题

391

回帖

42

积分

UID
928478
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-9-17 19:03:12 | 显示全部楼层
遇到卡住的地方,换个思路往往比死磕更快。想了解下有没有遇到反调试的坑?
回复

使用道具 举报

温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!
您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

QQ客服返回顶部