某购票平台App的抓包问题(解决实现)
软件地址:
aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9hcHBzLzY2MjI2MjgvaGlzdG9yeV92MjAyMzAxMTE=(BASE64)
App版本: 5.2.1
手机: Google Son (Pixel 4)
系统: Android 11
本文利用工具: HttpCanary Frida Objection JADX
一 、先判断问题
利用Charles抓包不出包,为了方便我用的是httpCanary,指定该应用抓包显示网络异常(根证书已导入系统)
二、尝试利用插件解决
利用Xposed插件JustTrustMe或SSLUnpinning,这里框架我用的是Magisk+LpPosed
结果一样 网络异常
三、列出解决办法
1、利用大牛写好的CaptrueHook(有现成,可自行百度),从发包位置进行Hook,这样就绕过了所有抓包检测,实现应用层无限制抓包(抓包检测,框架检测当我没说😅)
2、找出检测的代码段并Hook改变判断检测的结果
四、上手
1.第一步普遍就是查壳(Apkcan)
2.上一步经过分析,确实有壳,那首要的工作就是去壳(这里不细说,主要工作还是今天的主题)
3.脱壳完后,使用Objection查看目前App加载的Acitivity(指令: android hooking list activities)
找到可能的Activity,目前在登录的界面一般名字都是...LoginActivity
搜索出现两个关于Login的Activity
不确定哪个,那就利用Intent指令进行launch(指令:android intent launch_activity com.showstartfans.activity.activitys.
login.XDLoginActivity)
在进行launch第一个Activity的时候,界面进入了账号密码登录,最很显然就是该Acitvity
4.在源码里搜索该类,找到处理请求的位置
进入g方法
进入s方法
可以看到第一行代码,调用了a方法,进入a方法看该方法实现了什么
就可以看到,出现了网络异常四个字,就可以猜到这个地方就是检测抓包的地方
如果 !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
代码就不展示了,写的丑文章来源:https://www.toymoban.com/news/detail-474504.html
六、最后测试抓包(成功抓到)
文章来源地址https://www.toymoban.com/news/detail-474504.html
到了这里,关于某购票平台APP的抓包问题(解决过程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!