某购票平台APP的抓包问题(解决过程)

本文介绍了如何解决某购票平台App的抓包问题,包括使用HttpCanary抓包失败,尝试Xposed插件解决无效,最终通过Frida Hook特定方法成功实现抓包。详细步骤涉及App分析、去壳、查找关键代码段,并通过Frida进行动态代码修改,实现在Android系统上抓取App网络流量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

某购票平台App的抓包问题(解决实现)

软件地址:

aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9hcHBzLzY2MjI2MjgvaGlzdG9yeV92MjAyMzAxMTE=(BASE64)

App版本: 5.2.1

手机: Google Son (Pixel 4) 

系统: Android 11

本文利用工具: HttpCanary Frida Objection JADX

一 、先判断问题

利用Charles抓包不出包,为了方便我用的是httpCanary,指定该应用抓包显示网络异常(根证书已导入系统)

f1e11074ceca4a60bd2dd1ac644c2019.png

 二、尝试利用插件解决

利用Xposed插件JustTrustMe或SSLUnpinning,这里框架我用的是Magisk+LpPosed

结果一样 网络异常

三、列出解决办法

1、利用大牛写好的CaptrueHook(有现成,可自行百度),从发包位置进行Hook,这样就绕过了所有抓包检测,实现应用层无限制抓包(抓包检测,框架检测当我没说😅)

2、找出检测的代码段并Hook改变判断检测的结果

四、上手

1.第一步普遍就是查壳(Apkcan)

2.上一步经过分析,确实有壳,那首要的工作就是去壳(这里不细说,主要工作还是今天的主题)

3.脱壳完后,使用Objection查看目前App加载的Acitivity(指令: android hooking list activities)

7d4d44bbe1ad472cb8ad9ae56e5025d0.png

 找到可能的Activity,目前在登录的界面一般名字都是...LoginActivity

搜索出现两个关于Login的Activity

9bde0c8395364207aac2b9ee34f730d9.png

 不确定哪个,那就利用Intent指令进行launch(指令:android intent launch_activity com.showstartfans.activity.activitys.
login.XDLoginActivity)

cf8fc753b575478fbca6733a2edcb837.png

在进行launch第一个Activity的时候,界面进入了账号密码登录,最很显然就是该Acitvity

4.在源码里搜索该类,找到处理请求的位置

c125a55ed98543adaf6f24a2d0625f1a.png

 进入g方法475d92f674b4458ea23bac800fa5f724.png

 进入s方法

02d73b9e44c84b80a6c6a738ce055243.png

可以看到第一行代码,调用了a方法,进入a方法看该方法实现了什么

540470b407764543b668fcd5215efb19.png

就可以看到,出现了网络异常四个字,就可以猜到这个地方就是检测抓包的地方

如果 !n0.a() = 真 也就是 n0.a() = 假 返回 true 也就是网络异常

如果 !v0.c() = 真 也就是 v0.c() = 假 返回false 网络正常

最后一个else 返回true 并显示网络异常

这里就不说该app检测抓包的原理(主要在这两个方法里,如果想了解可以后续自己查看)

到这里就有解决办法了

h.y.a.n.n0.a 的返回值改为true

h.y.a.n.v0.c 的返回值改为false

h.y.a.m.h.a 的返回值改为false

五、上Frida

代码就不展示了,写的丑

六、最后测试抓包(成功抓到)

30a70c6aca44403d9405ae11365a2045.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值