|
事情是这样的,前几天分析某游戏的协议时,发现某黄鸟总是抓不到包(配置了JustTrustMe也不行)
经过了几天的分析,发现此应用使用了udp传输数据,而黄鸟只能抓tcp包(甚至tcp包都抓不全undefined )
但是,使用WireShark无法实现指定app抓包,于是我想起了万能的tcpdumpundefined
经过几天的探(bai)索(du),便有了这个脚本:
- #!/system/bin/sh
- AUTHOR="ggggmllll"
- readonly AUTHOR
- echo AUTHOR: $AUTHOR
- if [`id -u` -ne 0]
- then
- echo 脚本需要以root权限执行, 当前不是root用户
- exit -1
- fi
- echo user id = $1
- echo start....
- iptables -A OUTPUT -m owner --uid-owner $1 -j CONNMARK --set-mark $1
- iptables -A INPUT -m connmark --mark $1 -j NFLOG --nflog-group $1
- iptables -A OUTPUT -m connmark --mark $1 -j NFLOG --nflog-group $1
- sleep 10
- tcpdump -i nflog:$1 -w uid-$1.pcap
- echo end....
复制代码
当然,这个脚本问题还是很多的,不过至少能成功抓包了。。。
原理:iptables设置规则,mark所有uid为目标uid的数据包,并加入消息池(我个人理解undefined ),理论上通用
使用方法:
1,以root身份运行脚本,传入目标app的uid
2,打开目标应用,随便干点什么
3,及时关闭应用(tcpdump会保存所有数据包,长时间不关闭应用可能会占用大量空间)
4,将dump下来的.pcap文件拖入WireShark分析
|
|