178_Android抓包-Tcpdump命令+Wireshark

2023-10-29 05:58

本文主要是介绍178_Android抓包-Tcpdump命令+Wireshark,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等。学会抓包分析是测试人员必备的功课之一。最先想的基本上都会是Fiddler代理抓包,但Fiddler有局限,如果APP不支持代理呢?比如邮箱是Imap协议呢?好吧,我们换个思路,安卓是基于linux,那么linux的抓包工具命令是不是也能试用呢?本文主要对tcpdump进行抓包举例。

 

转载请注明出处

作者:Findyou

地址:http://www.cnblogs.com/findyou/p/3491035.html

[目录]

1、抓包原理

2、方法优劣

3、安装准备

4、工具安装

5、实例

 

1、抓包原理

tcpdump(需Root用户运行)拦截和显示发送或收到过网络连接到该机器的TCP/IP和其他数据包。简单说就监控手机进出网络数据。 

不明觉历啊....

官方网站:  http://www.tcpdump.org(Android手机适用的另处下载)

 

2、方法优劣

[优点]:

1).手机数据包无遗漏

 

[缺点]:

1).基本只能针对Android手机

2).不能实时抓包

3).电脑需要安装Android SDK

4).电脑需要安装Wireshark

5).测试手机需要获取root权限

6).测试手机需要安装tcpdump软件

 

3、安装准备

1).手机获得root权限

a.目前Root工具很多,随便下个操作一下即可,都傻瓜式的。比如什么刷机精灵、360一键ROOT、百度等等

 

2).电脑安装Android SDK  

a.下载地址 http://developer.android.com/sdk/index.html

b.解压下载的文件,再配置环境变量即可,具体请问谷哥或度娘,不再另做说明。

 

3).手机安装tcpdump软件  

a.下载地址 http://www.strazzere.com/android/tcpdump

 

4、工具安装

1).Android手机USB连接电脑,打开Windows命令提示符窗口;

2).检查手机连接是否正常; 

adb devices   #检查手机是否已连接

*执行记录*:

注1:已检查到手机连接正常

问题1:adb devices不可用      解决:检查环境变量是否配置正确。

问题2:检不到手机为空           解决:1、驱动是否安装;2、如有装腾讯手机管家,把tadb.exe进程给卡擦掉。

   

3).adb shell  进入手机修改  /data/local/  目录的权限为所有用户可写;

adb shell   #登入手机

su          #切换Root用户

chmod 777 /data/local/    #修改目录权限,修改后Ctrl+C退出adb shell

 

4).将tcpdump程序copy至android手机;

adb push E:\tcpdump /data/local/  #tcpdump文件存放在E盘根目录,/data/local/为手机目标路径

 

5).进入手机修改tcpdump权限,增加可执行权限;

adb shell   #登入手机

su          #切换Root用户

chmod 777 /data/local/tcpdump    #增加可执行权限

 

*执行记录*(第3步至第5步)

注:/data/local/为了安全起见,建议把权限改回原先权限

 

5、实例

ThinkDrive抓包实例

二期测试时,APP已不支持代理,抓不到数据包,测试无法准确知道是服务器问题还是APP问题,此处省略N字...以表对研发的诅咒。开玩笑的,大家目的都是为了版本质量提高,更加完善。下文以登录为例,进行演示。

 

1).连接手机,切换Root用户,执行抓包命令

adb shell   #登入手机

su          #切换Root用户

/data/local/tcpdump -p -vv -s 0 -w /sdcard/ThinkDrive.pcap   #执行抓包命令,结果保存到SD卡ThinkDrive.pcap文件中

 

2).APP操作,生成请求数据

注:如果操作完成,不需要再抓包,则按Ctrl+C中断抓包退出

 

3). 导出抓包结果至电脑

adb pull /sdcard/ThinkDrive.pcap E:/  #前为手机中文件及存放路径,后为电脑E盘根目录

 

4). 使用Wireshark等工具分析抓包文件ThinkDrive.pcap 

注:Wireshark工具使用请Google或百度

这篇关于178_Android抓包-Tcpdump命令+Wireshark的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/298681

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO