前言
需要手机和电脑在同一局域网下
重要提醒
仅供学习使用,请勿用做商业用途
怎么抓包
- 1.下载安装Fiddler
下载链接,需要填写邮箱和选择国家,然后下一步
- 2.配置
打开Tools
-Connections
,选中Allow remote computers to connect
,将请求信息发送至电脑端,并设置端口,一般用默认8888
即可。
- 3.配置手机代理
在cmd中输入ipconfig
,查看本机ip
image.png
然后在手机的wifi设置下选择代理,填写电脑的ip和第2步中设置的端口
打开目标app,即可在电脑上看到请求信息
image.png
查看接口返回的json
image.png
- 4.HTTPS
电脑端需要下载certificates 插件,选择CertMaker for iOS and Android
,下载后安装。
在手机浏览器打开http://192.168.10.221:8888
,也就是电脑端的ip和第二步中设置的端口
选择You can download the FiddlerRoot certificate
,下载https 证书下载到手机,安装证书。
需要注意的是,一般只能在手机自带的文件管理中找到证书,然后打开安装。
打开目标app,即可看到https请求信息
JSON信息
image.png
视频信息
image.png
重要提示 仅供学习使用,请勿用做商业用途
怎么防止被抓包
- 1.okhttp 设置无代理
client = new OkHttpClient.Builder()
.proxy(Proxy.NO_PROXY)
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.build();
- 2.目前抓包基本上都是通过代理,只要使用了代理,就不请求接口即可。
public static boolean isWifiProxy(Context context) {
final boolean IS_ICS_OR_LATER = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
String proxyAddress;
int proxyPort;
if (IS_ICS_OR_LATER) {
proxyAddress = System.getProperty("http.proxyHost");
String portStr = System.getProperty("http.proxyPort");
proxyPort = Integer.parseInt((portStr != null ? portStr : "-1"));
} else {
proxyAddress = android.net.Proxy.getHost(context);
proxyPort = android.net.Proxy.getPort(context);
}
return (!TextUtils.isEmpty(proxyAddress)) && (proxyPort != -1);
}
网友评论