APP小程序相关抓包方式与绕过思路整理
APP小程序相关抓包方式与绕过思路整理
一、APP抓包
APP抓包相关教程链接:
模拟器逆向第一步,如何配合BurpSuite抓到模拟器的包?
首先进行模拟器抓包,我使用的是mumu模拟器
导入证书方式:
下载好burp证书,burp开启代理后,浏览器打开代理模式,访问127.0.0.1:8080,进行下载证书,下载的证书格式为.der

证书格式转换:
将.der证书复制到kali中,使用kali内置的openssl模块进行转换
openssl x509 -inform der -in cacert.der -out burp.pem
openssl x509 -subject_hash_old -in burp.pem
mv burp.pem 9a5ba575.0 //将证书重命名为 9a5ba575.0
电脑安装adb配置及系统环境变量,模拟器在网络诊断中查看相关adb链接信息

mumu模拟器相关配置
打开设备设置
磁盘共享改为可写入


使用相关ip加adb端口的方式链接模拟器:

使用ADB导入证书
# 查看设备列表
adb devices
# 连接设备
adb connect 127.0.0.1:16384
# adb获取root权限
adb -s 127.0.0.1:16384 root
# 将当前目录下的 9a5ba575.0 复制到设备的 /system/etc/security/cacerts/ 路径下
adb -s 127.0.0.1:16384 push 9a5ba575.0 /system/etc/security/cacerts/
# 验证是否导入成功
adb -s 127.0.0.1:16384 shell
# 打开导入的文件夹查看是否有 9a5ba575.0 这个文件
cd /system/etc/security/cacerts
配置burp和mumu模拟器的代理
查看本机wlan网卡的ip地址

查看mumu模拟器中的dns 地址

到bp中添加代理监听器

到mumu模拟器中,设置->网络和互联网->互联网->点击wifi的设置图标

抓包测试
随便点击mumu模拟器的应用,bp拦截发现已经能够抓到相关特征的包了,宣布成功

1. 无限制类抓包问题(基础问题)
这类问题通常与环境配置或协议有关:
- 抓包工具证书未正确配置
- 流量不走HTTP/HTTPS协议(如自定义协议、TCP/UDP)
一般游戏的数据包多走TCP协议,而burpsuite只抓http/https的协议
2. 有限制类抓包问题(重点)
这类问题属于移动端软件自身的安全防护机制:
- 反And模拟器检测
- 反代理检测
- SSL证书校验(证书绑定 / SSL Pinning)
二、相关学习Demo
可以通过以下项目来理解这些防护在代码层面的实现:
- 反抓包Demo:相关环境)
- 反调试Demo:https://github.com/lamster2018/EasyProtector
三、反抓包相关机制
1. 反模拟器检测
作用:禁止在模拟器环境中运行移动端软件
常见检测逻辑包括:
- 是否存在真实硬件(如磁盘信息)
- 是否存在运营商信息
- 是否存在手机号或IMEI
- 还有更深的逻辑
2. SSL证书校验(SSL Pinning)
分为两种:
- 单向校验:客户端验证服务端证书是否合法
- 双向校验:客户端验证服务端证书,同时服务端也验证客户端证书
3. 反代理与虚拟专用网络检测
表现形式包括:
- 配置代理后无法访问
- 使用虚拟专用网络后强制退出
- 数据异常或请求失败
- 表面正常但抓不到数据包
四、反抓包相关绕过思路
1. 非HTTP/HTTPS流量抓包
解决方法:
-
使用封包工具抓包
WinsockPacketEditor网络封包拦截器:
https://www.wpe64.com/tutorials.html
https://github.com/x-nas/WinsockPacketEditor

-
使用科来、Wireshark等工具
某些游戏(如斗地主类应用)使用自定义协议,BurpSuite无法抓包。
解决方式:
使用封包工具或Wireshark抓取底层数据包。


2. 反模拟器绕过
解决方法:
- 使用真机
- 修改模拟器参数(磁盘、运营商等)
- 逆向分析并删除检测逻辑后重打包
反模拟器:

解决思路:
修改模拟器设备信息--这种方法只适用于检测机制逻辑简单的情况

- 若无效,则逆向删除检测逻辑
- 或直接使用真机
4. 反代理与虚拟专用网络绕过
解决方法:
- 使用移动端软件代理工具(Postern、SocksDroid)
- 使用PC代理工具(Proxifier)抓取模拟器流量
- 逆向删除检测逻辑
现象:
- 开启WiFi代理后无法使用 --我们较为常见的代理配置就是在模拟器网络上面进行配置,有一些移动端软件就会对此进行验证,比如下面的社交移动端软件

5. SSL证书校验绕过(单向)
防护机制:
- 单向证书校验:有一些移动端软件在访问它本身的服务器时,会校验校验服务器端是否使用了指定的SSL证书,如果没有那就禁止进行数据的交换。
- 双向证书校验:除了服务器要证明自己是真的,服务器还要验证客户端是否是真的。
现象:我们这里先讲单向认证的绕过机制
不做任何校验时:可以看到成功抓到请求包

当我们开启SSL校验的环境再次请求发包时:

原理分析(代码层面): 如下图所示
客户端内置证书或其哈希值(如SHA256),请求时进行校验。
我们如果向之前一样通过BP的证书去发送请求,就会导致sha256的值不同,则校验失败。

解决方法:
-
使用Xposed框架绕过 -- 加载模块JUSTTRUESTME ,也就是通过HOOK技术将验证证书的过程kill掉
-
安装教程:可以参考小迪第85课,有详细的安装教程
-
安装完成后如图:将对应的模块进行加载,重启后即可绕过SSL证书验证



解决方法:
1)使用第三方移动端软件代理(如Postern)
- 首先关闭WIFI代理,在配置代理处新建一个代理(用户名和密码非必要可以不填


-
之后找到配置规则,按如下信息输入并保存


之后我们在环境中点击检查代理,可以看到成功请求

2)使用PC工具(Proxifier)通过进程数据包抓取模拟器流量
打开proxifier,配置代理服务器 -- 这个主要用来和bp进行连接

burp设置如下:

打开代理规则,如下图配置,这里的进程就是模拟器的网络通信进程,一般模拟器的该进程都是Headless.exe,比如MemuHeadless.exe,还有下面的ldVBoxHeadless.exe

- 配置完即可尝试抓包,如下图我们通过了代理的检测,并且可以成功抓到包

五、重打包机制
重打包指对APK进行逆向修改后重新打包。
问题:
●移动端软件通常会校验签名
●重打包后签名变化,会导致运行失败
检测方式:
●通过签名值判断是否被篡改
绕过思路:
●修改或绕过签名校验逻辑(需逆向分析)
六、微信小程序抓包
1.Proxifier+burpsuite的配置
Proxifier:

配置文件-->代理规则-->添加-->浏览文件


微信小程序路径一般就是:
C:\Users\Administrator\AppData\Roaming\Tencent\xwechat\XPlugin\Plugins\RadiumWMPF\17127\extracted\runtime
当然以防万一,最稳妥的方式还是打开任务管理器检查微信相关进程的目录进行查询


这个代理的意思是这个WeChatAppEx.exe程序的流量会走127.0.0.1:8083的代理地址,现在主包需要配置burpsuite的代理和WeChatAppEx.exe程序走的代理需要一样

现在直接打开小程序或者公众号都能直接抓取数据包

2.yakit上配置代理地址和端口

启动代理后打开微信公众号或者小程序

3.fiddler+burpsuie的配置
打开burpsuite和fiddler直接进行配置,这里burp默认配置即可

在来到fiddler这里的配置

这里默认配置即可




之后来到https这里需要信任证书

进入小程序一样直接能抓到数据包

- 感谢你赐予我前进的力量