• 作者:老汪软件技巧
  • 发表时间:2024-12-12 10:04
  • 浏览量:

像支付宝那样的变态,自己带了一个基于so的HTTP Client库,对于关键数据,都不走URLConnection和OkHttp,而是走自己的HTTP Client库,甚至一些WebView页面的渲染,都是先用自带的HTTP Client请求得到json数据,然后填到HTML模板里面,再在WebView里渲染出来。

③ SSL/TLS Pinning,APP自带服务端证书,除了自带证书什么都不信

apk在开发时就将服务端证书一块打包到客户端里。这样在HTTPS建立时与服务端返回的证书比对一致性,进而识别出中间人攻击后直接在客户端侧中止连接。

解决原理:

客户端不是会做两个证书间的一次性校验吗,那么就通过hook的方式将此次校验的结果返回true或者干脆不让其做校验。当然这种做法只能在越狱环境下实现,但对于抓包来说,这已经足够了。

2.方案一

方案一:Xposed+JustTrustMe+Android模拟器(安卓手机需要Root,该方法有手机变砖风险,建议在模拟器下操作)。

大名鼎鼎得Xposed,是Android平台上最负盛名的一个框架。在这个框架下,我们可以加载很多插件App,这些插件App可以直接或间接操纵系统层面的东西,比如操纵一些本来只对系统厂商才open的功能(实际上是因为Android系统很多API是不公开的,而第三方APP又没有权限)。有了Xposed后,理论上我们的插件APP可以hook到系统任意一个Java进程(zygote,systemserver,systemui)。

功能太强大,自然也有缺点。Xposed不仅仅是一个插件加载功能,而是它从根上Hook了Android Java虚拟机,所以它需要root,所以每次为它启用新插件APP都需要重新启动。而如果仅是一个插件加载模块的话,当前有很多开源的插件加载模块,就没这么复杂了。

Xposed框架以在不修改APK文件的情况下修改程序的运行。

这套框架需要设备解锁了Bootloader方可安装使用[1](root为解锁Bootloader的充分不必要条件,而xposed安装仅需通过TWRP等第三方Recovery卡刷安装包而不需要设备拥有完整的root权限)。

(1) xposed 是啥?

xposed是一个框架,上面有很多模块,这些模块都依赖于xposed这个框架,之所以称xposed是第一神器,就是因为这些模块可以完成许多匪夷所思的功能,例如:修改微信的界面,自动抢红包模块,自定义程序的文本,防止微信消息撤回,防止BAT三大流氓的全家桶相互唤醒、连锁启动,锁屏后自动干掉APP防止后台运行耗电,还有很多修改App或手机数据的装B模块等等。

(2) xposed 的原理?

xposed 原理就是修改系统的关键文件,然后当APP调用系统API时,首先经过xposed,而这些基于xposed的模块就可以选择性的在App调用这些api的时候干一些”坏坏”的事情,或者修改返回的结果,这样app在运行的时候效果就会改变,但app本身并没有被破坏,只是调用系统api的时候,Android系统的表现发生了变化,这就是钩子,专业术语hook。所以,说白了,xposed就是个强大的钩子框架。

来一段专业的原理解释吧:

作者通过替换 /system/bin/app_precesss 程序控制zygote进程,使得它在系统启动的过程中会加载Xposed framework的一个jar文件即XposedBridge.jar,从而完成对Zygote进程及其创建的Dalvik虚拟机的劫持,并且能够允许开发者独立的替代任何class,例如framework本身,系统UI又或者随意的一个app。

除此之外使用这种方法的好处是ROM,APP都没有产生任何变化,因此理论上就不会造成设备变砖,同时撤掉修改也非常容易,仅需要停用 Xposed framework 即可完全恢复原样。

XposedInstaller(xposed框架)是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。

JustTrustMe是Github上的一个开源工程,他是一个Xposed模块,用来禁止SSL证书验证。以下是其简介。

JustTrustMe:An xposed module that disables SSL certificate checking. This is useful for auditing an appplication which does certificate pinning.

Xposed安装器下载地址

安卓5.0版本以下下载地址:/s/1dEToAvJ密码:uiu8

安卓5.0版本以上下载地址:/files/pingm…

JustTrustMe Relese版本下载地址:/files/pingm… github:/Fuzion24/Ju…

以下是安装步骤:

2.1安装Xposed安装器

Xposed是一款特殊的Android应用,通过替换system\bin\下面的的app_process等文件来控制zygote进程,进而实现控制手机上所有的app进程;缺点就是不能hook应用的so中的函数。

官网地址:/module/de.r…。如下图所示:

抓取ua__怎样抓取

敲黑板!!!官网地址中给出两个安装包,一个是Android版本5.0以下下载地址,一个是以上下载地址需要你根据你的手机系统版本去下载。

1.宏哥这里直接在模拟器的浏览器中输入官网地址下载,省的后边还要将安装包拖到模拟器中,宏哥这里的版本是7.0。如下图所示:

_抓取ua_怎样抓取

2.根据官网提示,宏哥下载大于5.0的安装包,也就是最上边的下载地址:/showthread.…。 如下图所示:

抓取ua__怎样抓取

3.下载完成安装包,安装到模拟器,如下图所示:

怎样抓取__抓取ua

2.2安装Xposed框架

安装好Xposed安装器后,发现Xposed框架没有安装,那么接下来就安装Xposed框架,安装过程需要Root权限,完成后重启。具体操作步骤如下:

抓取ua__怎样抓取

1.需要安装插入Xposed框架,点击“Version89”,然后点击“install”,如下图所示:

抓取ua__怎样抓取

竟然提示下载失败,查了下原因应该是网络的关系(不是我们自己的网络,而是无法连接官方获取安装文件),这就说明其实只要能连接,不管是官方也好、神盾也罢,都是可以安装成功的。

既然自动方式行不通,我们就手动解决这个问题。以下步骤我是在夜神模拟器上实现的,不管是真机还是其它模拟器,实现方式都一样。具体解决方法如下:

(1)先把Xposed安装器安装好(随便你用官方的还是神盾的),然后回到主界面,打开系统应用中的文件管理器(其它方式请自行努力找到这个文件夹),如下图所示:

怎样抓取__抓取ua

(2)按此顺序进入文件夹:storage > emulated > 0 > Android > data > de.robv.android.xposed.installer > cache>downloads>framework

注1:在最外层直接点击 sdcard 也能进入到 Android 那一层。

注2:有些版本或设备 Android 直接就在最外层。

注3:你可能只有cache目录,那你自己手动创建后边的两个文件夹,宏哥这里都自动创建好了。

_抓取ua_怎样抓取

(3)点击夜神模拟器侧边栏的电脑图标,选择打开电脑文件夹,会跳转打开电脑的目录C:\Users\Administrator\Nox_share,将下载好的安装器zip文件【xposed-v88-sdk25-x86.zip】复制到ImageShare目录下即可

怎样抓取__抓取ua

抓取ua__怎样抓取

(4)下载MT管理器,下载地址:/apk/bin.mt.…。拖拉到模拟器中安装完成,点击打开应用,左边打开Pictures目录就可以看到刚才电脑ImageShare目录中下载好的安装器zip文件【xposed-v88-sdk25-x86.zip】

_怎样抓取_抓取ua

(5)右边点击进入到storage > emulated > 0 > Android > data > de.robv.android.xposed.installer > cache>downloads>framework目录,然后长按左边的269953fb.0文件,点击复制即可复制到右边打开的目录那里

_抓取ua_怎样抓取

抓取ua__怎样抓取

(6)关键来了,直接重启模拟器,然后打开Xposed安装器,点击右上角的三个点,选中【Show outdated versions】:

_抓取ua_怎样抓取

(7)奇迹出现了可以看到我们下载的Version88导入成功了:

怎样抓取__抓取ua

2.接下来一切就简单了,点击【Version88】,点击【Install】,如下图所示:

_抓取ua_怎样抓取

3.选中【永久记住选择】,点击【允许】,会发现安装器安装成功,那么一切大功告成,

抓取ua__怎样抓取

4.重启模拟器,

怎样抓取_抓取ua_

5.再次打开Xposed安装器,会发现安装器已经激活了:

怎样抓取_抓取ua_

敲黑板!!!如果安装错误,找到模拟器中的“设置”-“应用兼容”-“关闭”,然后重新安装Xposed框架

_怎样抓取_抓取ua

2.3安装JustTrustMe2.3.1JustTrustMe 简介

JustTrustMe 一个用来禁用、绕过 SSL 证书检查的基于 Xposed 模块。

项目地址:/Fuzion24/Ju…

2.3.2实现原理分析

JustTrustMe 是将 APK 中所有用于校验 SSL 证书的 API 都进行了 Hook,从而绕过证书检查的,所以弄请原理之前,先得弄清楚 Android 上实现 Https 通信有哪几种方式。

Android 上实现 Https 的几种方式


上一条查看详情 +这行代码将输入的字符串
下一条 查看详情 +没有了