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,可以看到成功绕过,可以收到内容,而且成功抓到数据包
notion image
notion image
notion image

2、检查网络接口进行检测(VPN检测):

这个部分借鉴的正己大佬的,学到很多
这个检测函数的关键是getName函数,这里虽然我用的是name,但是本质还是getName函数起作用,所以还是直接hook getName函数
notion image
notion image

3、通过网络能力进行检查:

使用函数是
NetworkCapabilities类的hasTransport()函数
这里的函数主要使用了两个校验
一个是hasTransport函数,他会与TRANSPORT_VPN这个进行比较,我们直接返回false
第二个就是networkCapabilities函数会生成一个字符串数组列表,里面会显示有VPN,所以我们将WIFI/VPN换成WIFI也就成功过掉了
 
 
notion image
notion image
可以发现成功过掉
 
附一下完整代码:
 
 

3、SSL Pinning

名词解释:SSL Pinning
也称为证书锁定,是Google官方推荐的检验方式,意思是将服务器提供的SSL/TLS证书内置到移动客户端,当客户端发起请求的时候,通过对比内置的证书与服务器的证书是否一致,来确认这个连接的合法性。
下面借用正己大佬的图文解释,(大佬写的真好hhh)
notion image
 
SSL Pinning主流的三套方案:公钥校验证书校验Host校验

1、指纹校验:

提到指纹就让我想起来了hash256加密hhh,这个检验也是在本地进行的,客户端会检验服务器返回的证书链与我们本地预设的是不是一致的
在okhttp框架中找到一个sslpinning的校验代码
 
可以看到这个check函数的绕过也是很简单的,直接让他返回空就行,所以直接hook这个check函数,然后就可以进行绕过
 
我的代码运行时一直过不了,即使没挂代理也会显示校验不通过
下面用frida进行hook
还有一种方法是使用 MagiskXposed 框架禁用 SSL/TLS 校验
 
 
 
 
 
 
 
 
 
 

借鉴文章:

 
腾讯游戏安全2023安卓初赛题解2024强网杯re复现
Loading...