使用网络流量分析工具更好调试Android应用

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 11:10 我要评论(0)

在Android应用开发中,网络流量的监测是十分重要的一个环节。在本文中,将指导开发者在开发者在开发android应用时,如何监视所有跟网络相关 的流量(流出或流入),这将对提供android应用的性能有十分明显的效果,尤其是当应用为跟互联网相关时。

作为开发者,我们都很清楚,我们开发的跟网络相关的程序,一般都会通过使用HTTP协议,发出相关的请求信息。当在应用运行之初时,这些网络上的信 息的传递是十分畅顺的,我们获得的信息都是我们期望所获得的。

然而,开发者会发现经常都不会出现上面说的情况,尤其是在应用连接在网络中的时候,特别是当高并发流量时,如果出现了数据的丢失或错误,没人准确知 道当前已发送和接受的数据是什么,这样对我们的程序调试是很不利的。这就要求我们必须能够抓取网络中的相关包数据,对数据进行解包分析验证。

前言

对网络中的数据包进行抓取为稍后的分析是很有用的,但如果我们在抓取数据包的同时就能够开展这种分析那将获得更好的效果。这样做的话,开发者能很清 晰了解到对每一个测试用例中的请求和应答的数据是哪些。在本文中,将展示如何实时地抓取Android应用联网程序中的数据包,并且将使用著名的网络数据 分析利器Wireshark进行分析。

教程详情

技术:Android+Wireshark

难度:中等

完成时间:30-45分钟

步骤1安装tcpdump软件

首先必须在设备上安装tcpdump软件。Tcpdump是一款命令行下的网络数据抓包工具,并能将抓取的数据存放到文件系统中,可以在这个地址下 载:http://www.tcpdump.org/

当下载完tcpdump文件后,我们需要做的只需要使用adb命令去将其放到设备中去。首先当然要将手机连接到电脑上,使用的命令如下:

adbdevices

这样就会列出当前已连接到电脑上的设备。再用如下命令将tcpdump文件push到设备中去,如下命令:

adb push /home/tcpdump/data/local

在接下来的几个步骤中,必须要使用root的权限进行操作,并且要使的tcpdump为可执行属性,如下:

adb shell

cd data/local

su

chmod 777 tcpdump

步骤2保存抓包数据到文件

我们可以在adbshell中启动tcpdmup,命令如下:

/tcpdump-s0-v-wout.pcap

完整的tcpdump的命令参数请参考这个地址:http://www.tcpdump.org/tcpdump_man.html

运行后如下图所示:

可以看到,tcpdump会监控当前网卡的数据包情况,当用户想停止监控时,只需要CTRL+C即可停止监控了,并使用pull将其保存到文件系统 中去,以方便使用Wireshark去进行分析,命令如下:

adb pull/data/local/out.pcap/home/out.pcap

保存在本地文件系统中的数据将稍后使用Wireshark进行分析。

步骤3捕捉指定端口的数据

接下来,我们更改下tcpdump的输出格式,将其输出不输出到文件,而输出到指定的输出端口中,以方便使用netcat这个工具去过滤数据,这个 工具等下会讲解到。命令如下:

adb shell "./data/local/tcpdump -n -s 0 -w - | nc -l -p 12345"

这样的话,所有的网络流量数据包将会经过12345端口。

步骤4安装netcat

首先在http://www.securityfocus.com/tools/139这个地址下载windows版本的netcat进行安装,这 个工具的原理是:,从网络的一端读入数据,然后输出到网络的另一端,它可以使用tcp和udp协议.

步骤5使用Wireshark分析网络数据包

下面我们开始使用Wireshark分析网络数据包。首先使用adb的forward指令,将数据包从手机设备的12345端口重定向到PC电脑的 54321端口,然后再通过netstat工具捕获进入54321端口的数据,最后再通过管道操作交给wireshark进行分析,命令如下:

adb forward tcp:12345 tcp:54321 && nc 127.0.0.1 54321 | wireshark -k -S -i -

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...