最近想在android手机上试下网络抓包 然后晚上都说用tcpdump。
不幸的是研究了两天我那手机死活还是不行,先告一段落把,但是中间还是有很多值得记录下。
======================== adb 简介=================================
先说adb把 具体就不解释了可以自己google下,简单说就是连接android 的一个shell。
对于不同的android希望用相应sdk里的adb。每个版本的sdk在http://developer.android.com/sdk/index.html 找找。
下载好后 在\sdk\platform-tools 里有adb.exe 直接在cmd下 执行 adb shell就可以进入了。
连接进去后 su 就可以获取root权限
1|shell@android:/ $ su shell@android:/ #
$变#号就说明成功 当然要获取root权限自己要先手机root了.
===========================busybox =====================================
进去之后你会发现很多我们linux shell里常用的命令在adb里都没有。
比如 cp vi 都不存在。
我们可以安装下 busybox
下载地址http://www.busybox.net/downloads/binaries/
当然根据手机咯 一般arm的cpu就选 armv6l 就行
adb push busybox /mnt/sdcard
adb shell
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /
system
cp /mnt/sdcard/busybox /
system
/xbin
如果没有cp命令就 用 cat /mnt/sdcard/busybox > /
system
/xbin
chmod
755 busybox
在 /system/xbin 下输入
busybox --install /system/xbin
具体看这篇
为Android安装BusyBox —— 完整的bash shell
================================putty 连接 adb shell==========================
在我们有了正行的shell之后你会发现在windows上 用cmd 的client 在操作简直是噩梦 首先字符编码不对 你会发现当你vi一个文件 时无法操作,其次没有tab什么自动补全,复制黏贴什么就不说了。
后来找到了一篇文件介绍怎么用putty来连接 adb 的。
文章地址:http://forum.xda-developers.com/showthread.php?t=803225
下载 adbputty http://github.com/sztupy/adbputty/downloads
-连接方式选择 adb
-host上填"transport-usb" 引号不要(或者是别的连接字符串 具体查看 adb sockey interface 的文档)
-端口填 5037
-连接
当然之前你先保证你在cmd 里 adb shell能连接的上。
=================================BlueStacks =========================
经过一番努力后,我启动 tcpdump 始终返回给我
shell@android:/system # ./tcpdump
tcpdump: no suitable device found
我网上了很久都说是 没有root权限 但是我发现我su后居然能删除 root的文件 无奈还是放弃了在手机上装tcpdump的想法。
后来我换了个思路 想在windows上执行 apk文件 然后监控 pc的网卡 也是可以起到抓包的效果的,后来我就找到了BlueStacks 。简单讲就是一个android虚拟机,下载好安装后直接可以运行了,不用去装个什么eclipse 和 sdk了。而且也可以直接双击 运行 apk文件来安装到 虚拟机里运行,挺方便的。
一切搞定后就开始抓包了,体力活,用了网上说的Wireshark 不过个人觉得用气来一般。回头再找找别的。
虽然这几天最后没有实现在android上装tcpdump在抓包的任务,但最后也算曲线救国了下,后面就是慢慢研究抓到的数据了。