«

Android 系统上抓取数据包方法

时间:2024-3-2 17:32     作者:韩俊     分类: Android


最近在做一个项目,有关功能是实现两台手机设备的数据交流。项目中需要分析两台手机互发的数据包,所以要抓取手机的报文进行分析。我尝试了很多方法,包括传统的wireshark抓包、sniffer嗅探、用commView For WIFI嗅探,遇到了很多麻烦的问题最终并没能达到理想效果(具体原因继续研究)。

之前尝试的是在手机设备的上层设备进行数据包的抓取,另外一个思路是直接在手机设备上抓取。下边介绍下怎么直接在android手机上抓取数据报文。


工具准备

android设备(已经root)

adb.exe

tcpdump


工具包下载路径:http://download.csdn.net/detail/duval_yang/8684177


详细步骤


(1) android手机连接电脑,并打开USB调试。命令行进入adb.exe目录,输入 命令adb devices 可以查看连接上电脑的设备。如图:


(2) 然后把 tcpdump 推送到手机设备上,在命令行输入命令 adb push tcpdump /data/local/tmp ,即可将tcpdump 推送到手机的/data/local/tmp目录下。( 网上有人介绍推送到 /data/local/tcpdump目录下,涉及到权限修改,但我尝试多次都是遇到permission denied错误。未解。) 如图:


(3) 然后可以进入手机系统去查看 tcpdump包的情况。如图:



(4)然后开始抓包,将报文保存到SD卡中。抓包前先su root 进入ROOT权限,抓包结束后可以Ctrl+C结束。如图:




tcpdump抓包命令自行搜索~



(5) 将数据导出到电脑,用wireShark打开查看。命令 adb pull <remote> <local>



常见问题:


1. adb error 错误

            <br />


解决办法:Ctrl+Alt+Del 进入任务管理器,找到 kadb.exe进程,结束掉它即可。如图:



2.error:device not found 错误


解决办法:Ctrl+Alt+Del 进入任务管理器,找到 kadb.exe进程; 把手机USB拔出,重新插进。


3. stopped (signal) 错误




解决办法:进入root用户再操作。(命令 su root)



标签: android

热门推荐