Android抓包技术

前言

首先我们需要明确抓包的目的:

  • 1、分析数据传输协议
  • 2、定位网络协议的问题
  • 3、从数据包中获取想要的信息
  • 4、 将截取到的数据包进行修改,伪造,重发

举个栗子:
电话会议通话中,此时通话突然异常中断。查看日志后发现没有收到心跳response回应,那么此时就需要抓包,来确认对方设备是否发送了response信息,从而来确定问题根源。

抓包的几种方式:

1、电脑开放热点,手机连接电脑热点,通过charles或wireshark

charles的有点不言而喻,简单,上手快,但是只能抓取HTTP协议。
wireshark功能强大,学习成本比较高,但是可以抓取TCP、UDP协议满足我们现有业务需求。

具体步骤:

1、把电脑的网络做为热点
2、开启wifi热点后,被测设备连接到该热点;
3、启动wireshark/charles,选择做为热点的网卡,开始抓包;
4、操作手机,可以抓取到手机所有与网络交互的数据包
5、操作结束后停止抓包即可。

以上方式对于我们目前的开发条件来说局限性较大,目前没有笔记本可以开启热点供抓包(笔记本开启热点需要申请权限)

2、tcpdump

安卓tcpdump下载地址:https://download.csdn.net/download/github_33304260/10820344

此方式使用有个前提就是待抓包设备必须具有root权限,因为我们需要往data/local下写入文件,如果非eng版本或非root版本会遇到权限问题,如下如图:
Android抓包技术_第1张图片

接下来开始我们的抓包

1、下载tcpdump文件

2、将下载好的tcpdump文件,放入设备的data/local下

执行如下命令:

adb push 路径:/tcpdump /data/local

eg:adb push  c:/tcpdump /data/local

3、进入shell

输入如下命令进入shell

adb shell

4、给tcpdump分配权限

进入/data/local目录下,执行如下命令:

chmod 777 tcpdump

对linux权限不太清楚的同学可以自行google

5、开始抓包

/data/local目录下输入如下命令:

./tcpdump -p -s 0 -w 文件名.cap

eg:抓包并写入文件名为text.cap

./tcpdump -p -s 0 -w test.cap

Android抓包技术_第2张图片
看到如上命令说明抓包成功,可以坐等。

6、结束
等待抓包结束后,直接按ctrl+c 结束抓包
Android抓包技术_第3张图片
看到上图说明成功结束此次抓包。
7、退出sehll

执行如下命令:

exit

8、导出cap文件

执行如下命令:

adb pull cap文件路径 将要保存的路径

eg:将/data/local/下的text.cap文件导出到d盘workSpace文件夹下

adb pull /data/local/test.cap D:\workSpace

附录:常用的tcpdump命令

-a:尝试将网络和广播地址转换成名称;
-c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作;
-d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出;
-dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出;
-ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出;
-e:在每列倾倒资料上显示连接层级的文件头;
-f:用数字显示网际网络地址;
-F<表达文件>:指定内含表达方式的文件;
-i<网络界面>:使用指定的网络截面送出数据包;
-l:使用标准输出列的缓冲区;
-n:不把主机的网络地址转换成名字;
-N:不列出域名;
-O:不将数据包编码最佳化;
-p:不让网络界面进入混杂模式;
-q :快速输出,仅列出少数的传输协议信息;
-r<数据包文件>:从指定的文件读取数据包数据;
-s<数据包大小>:设置每个数据包的大小;
-S:用绝对而非相对数值列出TCP关联数;
-t:在每列倾倒资料上不显示时间戳记;
-tt: 在每列倾倒资料上显示未经格式化的时间戳记;
-T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型;
-v:详细显示指令执行过程;
-vv:更详细显示指令执行过程;
-x:用十六进制字码列出数据包资料;
-w<数据包文件>:把数据包数据写入指定的文件。

~~号外~~福利~~号外~~
程序员的福音: “老曾筋骨祛痛贴”,百年祖传配方,专治腰间盘肩周颈椎坐骨神经腰腿疼痛等,博主亲测效果非常棒,因长期久坐写代码,坐姿不规范导致脖子疼,腰椎疼,用过之后疼痛逐渐缓解,现在已无任何疼痛,用过后让你写代码一身轻松,so easy,妈妈再也不用担心我们写代码了。
购买链接: https://k.weidian.com/tja7GYzB

扫码下方二维码,关注公众号“伟大程序猿的诞生“,回复“膏药”领取优惠券
扫码关注公众号“伟大程序猿的诞生“,更多干货新鲜文章等着你~

公众号回复“资料获取”,获取更多干货哦~
公众号回复“膏药”,领取优惠券哦~

有问题添加本人微信号“fenghuokeji996” 或扫描博客导航栏本人二维码

你可能感兴趣的:(安卓菜鸟进阶)