Thor HTTP 网络开发调试技巧

Thor 并非万能,只工作在系统 HTTP 层: 不支持非 HTTP 流量(TCP, UDP)及不经过系统 HTTP 代理的流量。

抓包技巧

  • 抓取其它设备流量时,关闭本机监听代理,可以避免非目标数据的干扰

  • 关闭本机监听代理,只会忽略本机系统代理设置,手动设置的任何应用内或代码内的 localhost 代理并不受关闭影响

  • 合理设置过滤器,滤除非目标数据既能提高抓包效率,又能降低性能消耗

  • 利用搜索和筛选器,筛选已经记录的有用数据

  • 监控目标设备数据记录的实时更新,并实时清除历史数据

开发调试技巧

  • 应用代码中,设置 HTTP 代理为 Thor 以进行网络调试,比如 localhost:8423

  • 追踪应用代码发起的请求,可以在代码中设置『请求头』关键字段和值,并在 Thor 的过滤器中设置相应匹配关键字,以解决请求原本的信息不足以利用过滤器精准滤出的情况

  • 调试并防止 HTTPS MiTM 的方法: 实施后,用 Thor 调试得到的目标域名记录全是 CONNECT 请求,即为成功

调试协作和数据共享

  • 导出 .f4thor 过滤器配置: 自己创建的过滤器可以导出并分享给团队中的其他人共享协作

  • 导出 .p4thor: 与团队成员协作调试记录,并且可以导入 Anubis 进行重放调试

  • 导出 .har: HTTP Archive File

    • 查看预览: 用浏览器 HarViewer 插件或上传至网页查看

    • 效率开发: 许多三方脚本和软件支持 .har 作为数据导入

  • .p4thor -> .har: .p4thor 导入 Thor,再重新导出为 .har

  • .har 格式标准化: 其它来源的非标准 .har 文件可以导入 thor,再导出完成标准化

部分支持 .har 文件的三方软件,可能无法正确处理 HTTP 标准的 chunked body 和 非 gzip 压缩方法,所以从 Thor 导出的这类 har 包在那些软件中会报错。