type
status
date
slug
summary
tags
category
icon
password
1、objection使用
1、安装:
pip install objection
2、启动:
1、以attach模式启动(常规启动) 需要先启动frida
objection -g 包名 explore
2、以spawn模式启动: —start-command “hook的代码段”
3、用法
1、Memory指令。提取内存信息:
2、任务管理:
3、root指令:
4、关闭ssl校验:
5、heap 内存堆搜索与执行:
6、强制启动activity:
7、hook内存漫游:
8、日志:
日志文件在C:\Users\waaa\.objection\objection.log
2、网络抓包:
通过写一段代码来学习他是怎么实现反检查的,从而有思路来学习我们怎么绕过检查
下面的例子都是基于OKHTTP框架进行开发的,可以熟悉一下okhttp的使用
1、正常的get请求(无检验):
2、检查是否存在代理/VPN检测:
1、使用System.getProperty进行代理检测(代理检测):
这个的作用类似于开启Proxy.NO_PROXY
System.getProperty函数解析:
检测代码:
其实开启VPN可以绕过这个
接下来写一个frida的hook对他进行过滤
这个函数的关键代码是System.getProperty()这样的函数,所以我可以让其返回null或者让其返回0(这里不考虑直接修改返回值为0的情况)
ok,可以看到成功绕过,可以收到内容,而且成功抓到数据包



2、检查网络接口进行检测(VPN检测):
这个部分借鉴的正己大佬的,学到很多
这个检测函数的关键是getName函数,这里虽然我用的是name,但是本质还是getName函数起作用,所以还是直接hook getName函数


3、通过网络能力进行检查:
使用函数是
NetworkCapabilities
类的hasTransport()函数这里的函数主要使用了两个校验
一个是hasTransport函数,他会与TRANSPORT_VPN这个进行比较,我们直接返回false
第二个就是networkCapabilities函数会生成一个字符串数组列表,里面会显示有VPN,所以我们将WIFI/VPN换成WIFI也就成功过掉了


可以发现成功过掉
附一下完整代码:
3、SSL Pinning
名词解释:SSL Pinning
也称为证书锁定,是Google官方推荐的检验方式,意思是将服务器提供的SSL/TLS证书内置到移动客户端,当客户端发起请求的时候,通过对比内置的证书与服务器的证书是否一致,来确认这个连接的合法性。
下面借用正己大佬的图文解释,(大佬写的真好hhh)

SSL Pinning
主流的三套方案:公钥校验
、证书校验
、Host校验
1、指纹校验:
提到指纹就让我想起来了hash256加密hhh,这个检验也是在本地进行的,客户端会检验服务器返回的证书链与我们本地预设的是不是一致的
在okhttp框架中找到一个sslpinning的校验代码
可以看到这个check函数的绕过也是很简单的,直接让他返回空就行,所以直接hook这个check函数,然后就可以进行绕过
我的代码运行时一直过不了,即使没挂代理也会显示校验不通过
下面用frida进行hook
还有一种方法是使用 Magisk 或 Xposed 框架禁用 SSL/TLS 校验
借鉴文章:
- Author:xiaowaaa
- URL:https://www.xiaowaaa.asia//article/14b5df8d-8884-805f-9424-c67b14c3ba08
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!