首页 > 代码库 > 手机抓包方法

手机抓包方法

1  Adb工具简介

  adb是一个客户端-服务器端程序, 其中客户端是你用来操作的电脑, 服务器端是android设备。安装方法:电脑上需要安装客户端,客户端包含在sdk里(android sdk的tools目录中自带),或单独安装adb,设备上不需要安装,只需要在手机上打开选项settings-applications-development-USBdebugging(USB调试模式)。常用adb命令:

1)查看设备

  adb  devices  查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示

2)安装软件

  adb  install   将指定的apk文件安装到设备上

3)卸载软件

  adb uninstall  <软件名>

  adb uninstall -k  <软件名>  如果加-k参数,为卸载软件但是保留配置和缓存文件

4)登录设备shell

  adb  shell  将登录设备的shell,后面将是直接运行设备命令, 相当于执行远程命令

5)从电脑上发送文件到设备

  adb  push  <本地路径>  <远程路径>  用push命令可以把本机电脑上的文件或者文件夹复制到设备

6)从设备上下载文件到电脑

  adb  pull  <远程路径>  <本地路径>  用pull命令可以把设备(手机)上的文件或者文件夹复制到本机

7)启动和终止adb服务

     adb  start-server   启动adb服务进程

     adb  kill-server    终止adb服务进程

8)显示帮助信息,查看adb所支持的所有命令

  adb  help

 

2  Android抓包方法

工具包内容如下:

      技术分享

adb ——谷歌提供的安卓远程调试工具 。(用于PC连接手机并输入命令)

tcpdump——Linux系统中普遍使用的一款开源网络协议分析工具。(放在手机内部进行抓包)

wireshark——window 系统下的抓包工具。(查看分析抓取的数据包)

 

抓包条件:手机需要取得 root权限

使用方法:

1、  把adb工具放到PC任一目录,然后进入cmd切换到工具目录,如:

       技术分享

2、  通过USB线把手机和PC连接,并打开手机的USB调试模式

3、  cmd 输入:adb devices  这个命令是查看当前连接的设备,如

      技术分享

4、  把tcpdump 工具拷贝到手机,cmd输入:  adb push <本地路径> <远程路径> ,如:

     技术分享

5、  给tcpdump 执行权限,分别输入adb shell -> su ->chmod 6755 /data/local/tcpdump

     技术分享

6、  开始抓包,输入:/data/local/tcpdump –p –s 0 –w /sdcard/test.pcap

    技术分享

crtl+c 结束抓包,这样在手机/sdcard目录里面就会保存一个test.pcap的文件.

7、  把抓取的报文从手机上拷贝回电脑,输入:adb pull <远程路径> <本地路径> ,如:

    技术分享

   然后就可以用 wireshark打开查看报文内容了。

 

技术分享

可以看到向10.0.0.172发送的报文,即是移动网络发送的报文。

中国移动  网关:10.0.0.172  HTTP端口: 80和8080  WAP端口:9201

中国联通  网关:10.0.0.172  HTTP端口: 80和8080  WAP端口:9201

中国电信  网关:10.0.0.200  HTTP端口: 80

 

3  使用Fiddler工具进行抓包

3.1 Fiddler工具简介

Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展,在web开发和调优中经常配合firebug使用。

Fiddler的运行机制其实就是本机上监听8888(默认)端口的HTTP代理。 对于PC端Fiddler启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置,所以如果需要监听PC端Chrome或其他应用的网络数据包,将其代理改为127.0.0.1:8888就可以监听数据了,手机端按照下面的设置即可完成整个系统的http代理。

相对于通过adb使用tcpdump+wireshark抓包的优势在于:

1)  无需取得手机root权限

2)  对Android和Iphone同样适用

3)  操作更简单方便(第一次安装配置,第二次只需设置代理即可)

4)  可以利用Fiddler的强大功能对数据包进行各种操作

5)  可以查看https请求(Fiddler提供解密)

注意:只能是手机已经连接上网,且与Fiddler所在的PC在同一局域网内,手机能通过fiddler代理上网才能使用该方法进行抓包。

3.2 通过Fiddler进行手机抓包方法

1、  PC端安装Fiddler,Fiddler作为代理服务器模式

     技术分享

 

2、  配置Fiddler允许监听https

打开Fiddler菜单项Tools->Fiddler Options,选中decrypt https traffic和ignore server certificate errors两项,如下图:

     技术分享

第一次会提示是否信任fiddler证书及安全提醒,选择yes,之后也可以在系统的证书管理中进行管理。

 

3、  配置Fiddler允许远程连接

如上图的菜单中点击connections,选中allow remote computers to connect,默认监听端口为8888,若被占用也可以设置,配置好后需要重启Fiddler以使配置生效,如下图:

     技术分享

 

4、  配置手机端

       打开手机连接到同一局域网的wifi,并修改该wifi网络详情(长按wifi选择->修改网络)->显示高级选项,选择手动代理设置,主机名填写Fiddler所在机器ip(与手机同一局域网的IP),端口填写Fiddler端口,默认8888,如下图:

       技术分享

      这时,手机上的网络访问在Fiddler就可以查看了:

     技术分享

 

手机抓包方法