吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20509|回复: 69
收起左侧

[Android 原创] HttpCanary 在 Android 11 上的使用 - 简单逆向分析

    [复制链接]
Ercilan 发表于 2021-2-7 19:53

前言

HttpCanary 是一款不错的 Android 手机端抓包软件,相比 Packet Capture 而言视图更加友好,更加方便复制数据,窗口模式抓包,还可以 json 格式化、实现注入拦截等操作。如果无 root 则需要安装平行空间来抓取 SSL/TLS 加密数据包。
目前 Android 11 收紧了 APP 安装 CA 证书的权限,只能用户手动安装。而 HttpCanary 已经很长一段时间没有更新了,导致 Android 11 上面无法正常安装证书抓包。
本文通过简单的逆向分析,解决了证书安装问题,实现了 Android 11 下 HttpCanary 的正常使用。

  • 之前是我已经发布在其他地方了。站内有某用户转载了解决方法且未注明出处,因此这里完整的发布一下过程,并且作为自己在吾爱的第一帖。
  • 2020-11,纯手机端 MT 管理器分析的,并不难。

过程

我们需要看看 HttpCanary 是如何判断证书是否安装的。
刚开始,尝试使用 android 内证书管理的相关关键字代码搜索,没有找到。绕了一圈,最后还是从经典的 UI 入手,查看 APP 安装证书的时候是怎么操作的。
定位到安装证书 activicty,反编译查看,APP 混淆了,控制流平坦化,变量名也很恶心。
1612697751288
但是其实这里也不是十分复杂,经过计算,追踪,最终发现了 HttpCanary 对证书的检查逻辑。(下图是经过我修改显示 toast 了,不是原 smali 的转化)
1612697759510

  • 原来是通过检测某个后缀名为“.jks”的文件的存在来判定是否已安装证书的。  

但是为了准确判断是这个起作用,我们继续查找关键词“.jks”,查看这个文件在哪里被创建的。最后追溯到了证书安装的 Activity 了。
1612697786525
原来安装证书时,HttpCanary 重写了 onActivityResult(),通过自动安装返回的 resultCode 判断了证书是否安装,如果安装成功便会在 cache 目录下写入一个无内容的 .jks。安装失败就无操作。而这个文件就是它判断是否安装了证书(有点不妥哈,但是没了解过,不太清楚有无更好的方法)。
因此,Android 11 上不能自动安装证书,就没有 .jks 文件,那么应用也就无法识别安装了证书,即使你早已手动安装。所以需要手动建立一个。
经过多次测试,确实如此。  

解决方法

通过暴力修改 app,让它无论证书安装成功与否都生成 .jks 也是可行的,但是不是很好。前提都是你要手动安装了证书。
下面就手动改吧,正版盗版都适合。  

1. 获取证书

较新的版本未安装证书是无法导出证书的,所以需要在 /data/data/com.guoshi.httpcanary/cache/ 目录下找到 HttpCanary.pem。
没有上述文件的话,请到设置里尝试安装证书生成证书。有一些盗版的包名是不一样的,目录也就不同。
将 HttpCanary.pem 复制到内部储存空间上,更名为 87bc3517.0,这便是证书文件了
【别人的证书,你不一定能用,试试看就知道了】  

2. 安装证书

应该没人会安装为用户证书吧?那样就无法抓取加密数据。
安装为系统证书:将证书移到 /system/etc/security/cacerts/ 目录下设置好权限,或者自己弄一个 Magisk 模块替换。这个 Magisk 模块不难,就是模板压缩包里添加一个文件而已。  

3. 修改数据

在 /data/data/com.guoshi.httpcanary/cache/ 目录下新建一个 HttpCanary.jks 无内容的文件,改好权限 600,就是改得跟旁边的文件一样的权限就行了。  

其他改法

说到底,就是安装证书后需要创建 .jks 文件来使得 APP 识别为已安装证书。至于安装为系统证书都可以自行安装。比如通过手机设置里的安装证书安装为用户证书,再在 Magisk 库里搜索安装 Move Certificates 模块将用户证书迁移为系统证书也是可以的。


最后 HttpCanary 就可以在 Android 11 上愉快地抓包了。
1612698463671

免费评分

参与人数 26威望 +1 吾爱币 +44 热心值 +23 收起 理由
huawuya + 1 + 1 谢谢@Thanks!
52pmap + 1 + 1 我很赞同!
dhwc + 1 + 1 我很赞同!
liujm + 1 鼓励转贴优秀软件安全工具和文档!
我是老周 + 1 + 1 我很赞同!
遛娃追狗看夕阳 + 1 用心讨论,共获提升!
qiucx + 1 + 1 我很赞同!
yuanyxh + 1 + 1 谢谢@Thanks!
习惯模仿 + 1 + 1 谢谢@Thanks!
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
miner123 + 1 我很赞同!
陈天堂233 + 1 + 1 谢谢@Thanks!
i66235 + 1 + 1 谢谢@Thanks!
北冥鱼 + 1 我很赞同!
5ud0 + 1 + 1 我很赞同!
某些人 + 1 + 1 谢谢@Thanks!
AdidasOriginals + 1 + 1 我很赞同!
notpasser + 1 + 1 谢谢@Thanks!
染个我 + 1 + 1 谢谢@Thanks!
readme + 1 + 1 谢谢@Thanks!
tanlini + 1 + 1 我敬你是条大神,这也能行,是个高手。
本物天下霸唱 + 1 + 1 以前搜过论坛没有,谢谢分享
小十二 + 1 + 1 热心回复!
blywq + 1 + 1 谢谢@Thanks!
孤狼微博 + 1 + 1 我很赞同!
xinyangtuina + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Ercilan 发表于 2021-2-9 16:50
本帖最后由 Ercilan 于 2021-2-9 17:34 编辑

klxn0-0 发表于 2021-2-9 15:26
这个控制流混淆是破解者混的  原版的并没有

你倒可以过签自己来改

我这是正版,我以前有捐赠的。
再次编辑:

哦,忘了,我好像确实是看盗版的分析的,因为原版加固了。那时候发现盗版的没有加固,就直接看盗版的了。
 楼主| Ercilan 发表于 2021-2-8 09:51
开创者 发表于 2021-2-7 21:08
我也很想知道对于加密的内容如何解密。现在比以前都难了,想弄的都加密了

加密的内容肯定就要逆向对应APP了啊,首先要学习哪些基本经典的加密方式,后面可能还会涉及so逆向。
klxn0-0 发表于 2021-2-9 15:26
这个控制流混淆是破解者混的 原版的并没有

你倒可以过签自己来改
wdjingang 发表于 2021-2-7 20:03
感谢分享!
dongge666 发表于 2021-2-7 20:40
感谢分享,解决了我一大难题
先有我后有天 发表于 2021-2-7 20:42
大佬,问一下,抓包抓到的都是乱码,加密的,有没有什么办法看内容啊
xinyangtuina 发表于 2021-2-7 20:46
正在学这个
candyl6 发表于 2021-2-7 21:00
关键是没root的情况下怎么整
开创者 发表于 2021-2-7 21:08
我也很想知道对于加密的内容如何解密。现在比以前都难了,想弄的都加密了
孤狼微博 发表于 2021-2-7 21:13
这个是一个技术贴虽然没有打算升级安卓11但是还要收藏一下
花好s月圆 发表于 2021-2-7 21:23
这个抓包软件不错的,可以很多app都是加密传输的。
小十二 发表于 2021-2-7 21:52
感谢分享,解决了我一大难题
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 22:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表