百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

程序员必备,Fiddler和spy-debugger的远程调试手机APP

ninehua 2024-11-17 19:53 37 浏览

背景

笔者从事Web开发,不论是PC端还是APP端,调试抓包都是必不可少的环节,懂前端的人都知道,PC端调试非常方便,Chrome或者火狐等浏览器等都自带了非常方便且易于使用的开发者工具,便于我们抓包调试。但是现在开发不仅仅是PC端,移动端也占了很大的比重,但是在移动端调试就没PC端这么方便了,因此就要借助第三方的抓包工具供我们调试抓包,本文就介绍两个常用的方法进行介绍,分别是Fiddler和开源的抓包工具spy-debugger!



Fiddler

Fiddler是一个用于HTTP调试的代理服务器应用程序,最初由微软Internet Explorer开发团队的前程序经理Eric Lawrence编写。Fiddler能捕获HTTP和HTTPS流量,并将其记录下来供用户查看。它通过使用自签名证书实现中间人攻击来进行日志记录。可以说它是一个非常强大的抓包工具,不过本文仅介绍移动端的调试!

下面我们一起来看看如何操作:

PS:Fidder软件下载可以自行搜索或者在文末获取下载方式


1、解压并打开软件压缩包,将证书插件中的文件dll拷贝到Fiddler的根目录,也就是它本身的上级目录。



2、打开软件后提示更新,点击否,然后点击工具=》选项,并勾选忽略服务器证书错误



3、然后点击连接选项卡,如下所示设置代理端口,其他选项可参考笔者设置,这是为了后面作为抓包代理所使用的



PS:以上操作需要重启Fiddler


4、这个地方我们作为测试,我在本地跑了一个测试的API,仅仅是一个没有任何授权的测试API



5、打开模拟器或者你的手机,手机需要同电脑在同一局域网络环境下,然后打开浏览器,输入你的ip+刚刚设置的端口号,下载证书,按提示安装即可



6、修改模拟器的网络代理




7、在模拟器浏览器重新访问刚刚测试的API,抓包成功



8、测试浏览器访问其他网页,都能成功抓取到



9、抓取酷安应用商店下载APP地址,随便打开一个APP详情页面,点击下载,成功抓取到下载链接




PS:Fiddler简单使用模拟器进行远程调试的方法就此结束,更多高级的用法需要开发者自行摸索,本文在此不在赘述!(软件获取方式在文末)


spy-debugger

spy-debugger是一个开源的抓包调试工具,它相对于Fidder来说更加简单,微信调试,各种WebView样式调试、手机浏览器的页面真机调试。便捷的远程调试手机页面、抓包工具,支持:HTTP/HTTPS,无需USB连接设备。不过得先满足一定的条件,下面我将带大家一起来安装并测试:

https://github.com/wuchangming/spy-debugger


它具备以下特性:


  • 1、页面调试+抓包
  • 2、操作简单,无需USB连接设备
  • 3、支持HTTPS。
  • 4、spy-debugger内部集成了weinre、node-mitmproxy、AnyProxy。
  • 5、自动忽略原生App发起的https请求,只拦截webview发起的https请求。对使用了SSL pinning技术的原生App不造成任何影响。
  • 6、可以配合其它代理工具一起使用(默认使用AnyProxy) (设置外部代理)

我是在Windows环境下,因此演示环境是Windows,首先你得安装过了nodejs,我们使用npm安装它:

 安装:npm install spy-debugger -g


启动:spy-debugger

下面是一些其他启动选项,根据自己的需要自行配置:


1、端口:

(默认端口:9888)

spy-debugger -p 8888

2、设置外部代理(默认使用AnyProxy)

spy-debugger -e http://xxx:8888

spy-debugger内置AnyProxy提供抓包功能,但是也可通过设置外部代理和其它抓包代理工具一起使用,如:Charles、Fiddler。

3、设置页面内容为可编辑模式

该功能使页面内容修改更加直观方便。 (默认: false)

spy-debugger -w true

内部实现原理:在需要调试的页面内注入代码:document.body.contentEditable=true。暂不支持使用了iscroll框架的页面。

4、是否允许weinre监控iframe加载的页面

(默认: false)

spy-debugger -i true

5、是否只拦截浏览器发起的https请求

(默认: true)

spy-debugger -b false

有些浏览器发出的connect请求没有正确的携带userAgent,这个判断有时候会出错,如UC浏览器。这个时候需要设置为false。大多数情况建议启用默认配置:true,由于目前大量App应用自身(非WebView)发出的请求会使用到SSL pinning技术,自定义的证书将不能通过app的证书校验。

6、是否允许HTTP缓存

(默认: false)

spy-debugger -c true

我本地直接使用和Fiddler一样的端口8888,自动打开浏览器后点击请求调试

spy-debugger -p 8888


这个地方由于设置的和Fiddler一样的代理端口,因此模拟器端不必再重新设置网络


然后我们和刚才一样,同样能够进行正确的抓包调试,如下:



总结

本文就笔者的经验而言,介绍两种远程真机或者模拟器调试的方法,整个流程并不是很复杂,笔者也是才接触不久,在此分享给大家,希望对刚刚接触的小伙伴有所帮助!

PS:如果你没有找到Fiddler或者无法使用,可以私信 ‘Fiddler’,自动获取下载方式!

相关推荐

Java 反编译工具的使用与对比分析

前言Java反编译,一听可能觉得高深莫测,其实反编译并不是什么特别高级的操作,Java对于Class字节码文件的生成有着严格的要求,如果你非常熟悉Java虚拟机规范,了解Class字节...

Java代码混淆工具Allatori混淆jar可执行包的使用方法

Allatori简介Allatori是第二代Java混淆器,可为您的知识产权提供全方位的保护。Allatori不只是混淆,它还最小化应用程序大小,并提高速度,同时除了您和您?的团队之外,任何人...

window下将spring boot-jar添加到服务中,实现自动启动

1、下载winsw:https://github.com/winsw/winsw/releases...

idea maven 依赖包报红

有不少小伙伴遇到这个问题问我该怎么破,其实这个问题的答案在网上已经烂大街了,随便一查就一堆(其中不少是复制粘贴的且抄都抄不全,令人汗颜!),在此我记录下解决方案。解决方案如下:maven的settin...

使用 XJar 对程序 jar 包加密,防止被破解

1.新建一个空的maven项目,并在pom文件中添加:<dependencies><dependency><groupId>com.github.c...

maven 处理多版本 jar包依赖冲突

一。参考文档https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-th...

IntelliJ Idea下jar包引入失败的处理方法

IntelliJIdea下jar包引入失败的处理方法标签:IntelliJIDEAIDEA导入新项目或者更新的时候,显示“Cannotresolvesymbol'XXX‘’”,之前有...

将本地jar 批量发布到 Nexus 私服

前言在日常开发过程中,我们有遇到将项目依赖通过mvndeploy发布到自己的公司的私服,以便其他人/环境统一下载入口。但是也有一些特殊情况,比如只能拿到第三方(或甲方)的依赖jar,并不能拿到...

如何优雅替换第三方依赖中的类?

在项目中需要依赖其他第三方的jar包,但有时我们需要扩展第三方jar的功能,或者修复依赖中已知还未修复的bug,但碰到过很多种情况,第三方类库中并没有提供对应的扩展点导致无法优雅的使用继承等方法对代码...

Jarboot-一个功能强大易用的Java进程启动器

什么是JarbootJarboot是一个功能强大易用的Java进程启动器,使用jarboot可以方便的启动一批的Java进程,支持按照依赖的优先级顺序启动、进程守护、文件监控重启、进程在线调试。...

IDEA 这么设置 Maven,再也不用担心依赖下载失败了

Hello,大家好,我是楼下小黑哥。B站视频版本...

一个小技巧,Maven 打 Jar 包体积缩小100倍

大家好,我是互联网架构小马哥!为了大家能够从从项目集成的苦力活中解放出来,最近这一周,整理了两篇关于Jenkins构建、部署的文章,感兴趣的朋友可以看看:【...

还在用nohup启动java jar服务?试试强大的systemctl吧

nohup直译过来就是不挂断,要运行后台中的nohup命令,添加&(表示“and”的符号)到命令的尾部,使用nohup启动的例子:nohup/usr/bin/java-jar/dat...

推荐一款产品-防止JAVA代码反编译

VirboxProtector是深思数盾科技股份有限公司经过多年技术深耕开发的一款高强度虚拟机外壳。VirboxProtector集加密、压缩、混淆虚拟化等于一身。支持的操作系统包括Windo...

如何使用Axure制作交互文档?

编辑导语:Axure作为交互文档有着可交互、兼容性好的优势,本文作者结合亲身的实践操作,为我们分享了如何使用Axure制作交互文档。01Axure软件介绍这次团队决定使用的是Axure9版...