一、抓包工具的使用
1.Charles的使用
Charles 是一个网络抓包工具,可以用它来做 App 的抓包分析,得到 App 运行过程中发生的所有网络请求和响应内容。相比 Fiddler,Charles跨平台支持更好。
原理:
- 首先将 Charles运行在自己的PC上,Charles运行的时候会在PC的8888端口开启一个代理服务
- 确保手机和PC在同一个局域网内
- 设置手机代理为Charles的代理地址,这样手机访问互联网的数据包就会流经Charles
- Charles起到中间人作用,所有HTTP/HTTPS请求和响应都可以捕获到
2.Sniff Master的使用
Sniff Master 是一款专业的网络流量分析工具,相比传统抓包工具具有以下优势:
- 支持更全面的协议解析,包括HTTP/HTTPS、TCP/UDP等
- 提供直观的数据可视化分析界面
- 具备智能流量分类功能,可自动识别常见应用协议
- 支持自定义规则匹配关键数据包
典型应用场景:
- 移动App接口分析
- API调试与测试
- 网络安全监控
- 网络性能优化
3.mitmproxy的使用
mitmproxy 是一个支持HTTP和HTTPS的抓包程序,有类似Fiddler、Charles的功能,但它是控制台形式操作。
核心组件:
- mitmdump:命令行接口,可对接Python脚本
- mitmweb:Web程序,可视化查看捕获的请求
与Sniff Master的对比:
- mitmproxy更适合开发者进行深度定制
- Sniff Master则提供了更友好的用户界面
- 两者都可以作为Charles的替代方案
4.Appium的使用
Appium是一个跨平台移动端自动化测试工具,可以模拟App内部的各种操作。与抓包工具配合使用时,可以:
- 自动化触发特定网络请求
- 验证网络请求的正确性
- 测试不同网络环境下的App表现
5.airtest的使用
Airtest是一个基于图像识别的UI自动化测试框架,与抓包工具结合可以:
- 通过图像识别触发特定网络请求
- 验证网络请求与UI表现的对应关系
- 实现端到端的自动化测试流程
二、App逆向的常见技巧
1.App逆向介绍
很多App在请求API时都有加密参数,需要使用逆向技术分析加密逻辑。常用的方法包括:
- 使用抓包工具(Sniff Master/Charles)捕获原始请求
- 反编译APK分析加密算法
- 动态调试跟踪参数生成过程
2.逆向工具
JEB是一款专业的安卓应用程序反编译工具,配合抓包工具使用时可以:
- 先用Sniff Master捕获关键请求
- 在JEB中搜索相关API字符串
- 跟踪参数生成逻辑
三、智能化解析
1.基本原理
智能化解析是指自动识别网页内容结构的技术。结合抓包工具使用时:
- 使用Sniff Master捕获网页请求
- 分析响应内容结构
- 应用智能解析算法提取关键内容
智能解析的关键特征:
- 区块位置和大小
- 标签密度
- 视觉特征
- 内容模式识别
2.智能化解析工具
Readability算法通过计算DOM文本密度来识别正文内容。与抓包工具配合的工作流程:
- Sniff Master捕获网页请求
- 将响应内容传递给Readability处理
- 提取结构化内容
Newspaper库提供了更高级的内容提取功能,支持:
- 自动提取正文
- 识别发布时间
- 提取关键图片
四、Scrapy的使用
1.Scrapy的介绍
Scrapy是一个基于Twisted的异步爬虫框架,与抓包工具配合使用时可以:
- 使用Sniff Master分析目标网站API
- 在Scrapy中实现对应的请求逻辑
- 监控爬虫请求确保符合预期
2.Spider的用法
抓包工具在爬虫开发中的作用:
- 分析目标网站请求模式
- 识别关键API参数
- 验证爬虫请求的正确性
- 监控反爬机制
典型工作流程:
- 使用Sniff Master分析目标网站
- 在Scrapy中实现对应的请求逻辑
- 使用中间件处理特殊请求头
- 通过Pipeline存储解析结果