小米 11|MIUI12.5|Android11 解决 HttpCanary 证书无法安装的问题

之前 MIUI 升级到 12.5,导致了 Android 版本也从 10 升级到了 11,后面手机也初始化了下,导致后面 HttpCanary 虽然恢复到手机中,但是因为 Android11 的相关安装限制无法安装根证书,然后 Baidu 了下,基本都是各种复制粘贴的货,但是基本不能用 😂 ,上 52pojie 看了一篇大佬的文章这才解决。

https://www.52pojie.cn/forum.php?mod=viewthread&tid=1367926&highlight=httpcanary

相关环境

小米 11
MIUI12.5
是否 Root:已经 Root
HttpCanary 3.3.6
Android 11
MT 管理器
Syslock(解锁 system 分区)

操作步骤

  1. 在 MT 管理器中进入路径 /data/data/com.guoshi.httpcanary/cache/ 的目录下将 HttpCanary.pem 证书文件复制一份,并将文件名修改成 87bc3517.0,如果 HttpCanary.pem 证书文件不存在的话,打开 HttpCanary 软件,在设置里面尝试安装根证书已生成证书文件。

  2. 在 MT 管理器中将刚才复制出来并修改了文件名的证书文件 87bc3517.0 移动到 /system/etc/security/cacerts/ 目录下(此步骤需要通过 Syslock 软件解锁 system 分区

    并通过 MT 管理器修改文件权限(长按文件 — 属性 — 权限)为 644

  3. /data/data/com.guoshi.httpcanary/cache/ 的目录下新建一个空文件,文件名为 HttpCanary.jks,并通过 MT 管理器修改文件权限(长按文件 — 属性 — 权限)为 600 即所有者读写,其他无权限。

    368 x 817 1080 x 2400

  4. 完成以上步骤后,重启手机

至此就成功安装根证书了,可以打开 HttpCanary 在设置 — HttpCanary 根证书 — 卸载 HttpCanary 根证书 — 系统,在系统这一栏中检查是否有 HttpCanary 的字样,有就代表根证书安装成功。


又可以愉快的抓包玩耍啦 😝


作者:Jireh
链接:https://ld246.com/article/1625800257413
来源:链滴
协议:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/

==========================================================

原来安装证书时,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 上愉快地抓包了。

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值