最近做一个Android联网抓包的工具

自己在网上搜索了好久

发现还是没有头绪

于是考虑在linux层上下功夫

于是采用linux的tcpdump来实现了抓包的功能

用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。

  作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东东之一。

对于tcpdump详细的可以参考http://baike.baidu.com/view/76504.htm?fr=ala0_1_1百度百科的介绍

我这里主要介绍一下如何在Android上使用tcpdump

我所采用的测试机是破解版G2和模拟器

具体的就是在APK程序里执行linux命令

  1. tcpdump -p -vv -s 0 -w /sdcard/capture.pcap

这样就能够将抓到的包在sdcard上写一个capture.pcap文件

而这个文件可以用wireshark在PC上打开进行查看 非常方便

具体的源代码如下

MainHook.java

  1. package zy.hook;
  2. import java.io.IOException;
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.util.Log;
  6. public class MainHook extends Activity {
  7. /** Called when the activity is first created. */
  8. @Override
  9. public void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.main);
  12. try {
  13. //Runtime.getRuntime().exec("su");
  14. //Runtime.getRuntime().exec("dd if=/sdcard/tcpdump of=/data/local/tcpdump");
  15. //Runtime.getRuntime().exec("chmod 6755 /data/local/tcpdump");
  16. Runtime.getRuntime().exec("tcpdump -p -vv -s 0 -w /sdcard/capture.pcap");
  17. Log.i("run","success!!!!!!!!!");
  18. } catch (IOException e) {
  19. // TODO Auto-generated catch block
  20. e.printStackTrace();
  21. Log.i("run",e.toString());
  22. }
  23. }
  24. }

AndroidManifest.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="zy.hook"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <application android:icon="@drawable/icon" android:label="@string/app_name">
  7. <activity android:name=".MainHook"
  8. android:label="@string/app_name">
  9. <intent-filter>
  10. <action android:name="android.intent.action.MAIN" />
  11. <category android:name="android.intent.category.LAUNCHER" />
  12. </intent-filter>
  13. </activity>
  14. </application>
  15. <uses-sdk android:minSdkVersion="7" />
  16. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  17. </manifest>

尤其不要忘记了权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

的声明

运行程序我们就可以抓包了

会在sdcard上生成capture.pcap文件

抓一段时间之后,将文件从sdcard上导出

然后我们用wireshark打开

可以非常方便的查看我们抓到的包

希望能够对大家有用

本文版权归csdn博主曾阳所有

http://blog.csdn.net/Zengyangtech/archive/2010/08/31/5853366.aspx

转载请注明此句

Android 联网监控抓包工具的制作(tcpdump的使用)的更多相关文章

  1. 网络抓包工具wireshark and tcpdump 及其实现基于的libpcap

    最近无意中看到博客园中一篇介绍wireshark的文章,写得不错,它简单清楚介绍了wireshark的使用 简介 wireshark以前叫做Ethereal, 在大学时候的网络课程中就常看到它,它是世 ...

  2. tcpdump抓包工具

    tcpdump抓包工具 一:TCPDump介绍 ​ TcpDump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and ...

  3. Android利用Fiddler进行网络数据抓包,手机抓包工具汇总

    Fiddler抓包工具 Fiddler抓包工具很好用的,它可以干嘛用呢,举个简单例子,当你浏览网页时,网页中有段视频非常好,但网站又不提供下载,用迅雷下载你又找不到下载地址,这个时候,Fiddler抓 ...

  4. Fiddler 抓包工具怎么使用?怎么在Android手机端的APP抓包

    https://blog.csdn.net/loner_fang/article/details/83309266 参考这个人的微博上有fiddler主要功能使用的步骤. 序章 Fiddler是一个蛮 ...

  5. Android利用Fiddler进行网络数据抓包,手机抓包工具汇总,使用mono运行filddler

    Fiddler抓包工具 Fiddler抓包工具很好用的,它可以干嘛用呢,举个简单例子,当你浏览网页时,网页中有段视频非常好,但网站又不提供下载,用迅雷下载你又找不到下载地址,这个时候,Fiddler抓 ...

  6. Android 常用抓包工具介绍之Charles

    ➠更多技术干货请戳:听云博客 Charles是一款抓包修改工具,相比起TcpDump,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!前面介绍了如 ...

  7. Android常用抓包工具之TcpDump

    ➠更多技术干货请戳:听云博客 做为一个测试人员,工作中经常会用到数据抓包工具来进行数据分析和验证,下面就简单介绍一下工作中常用的抓包工具. TcpDump抓包 Tcpdump是一个用于截取网络分组,并 ...

  8. fiddler+android抓包工具配置使用

    今天临时增加一个工作,手机需要抓包,查看了不同的抓包工具,最后确定使用fiddler抓包工具进行操作,这里以android为例记录一下工具的配置和使用操作. fiddler的安装 网上有很多fiddl ...

  9. android抓包工具——使用fiddler4在安卓手机抓包

    Fiddler是一款非常流行并且实用的http抓包工具,它的原理是在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应,因此,它比一般的firebug或者是chrome自带的抓包 ...

随机推荐

  1. NEU OJ 1644 Median I

    优先级队列 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> ...

  2. jQuery实现 图片的局部放大效果

    <html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title> ...

  3. 一个forward_list C++primer

    #include<iostream> #include<forward_list> using namespace std; int main() { forward_list ...

  4. Fragment和Activity之间通过广播的方式传递数据

    四大组件之间传递数据可以用广播,但是有次面试官说太重了,用eventbus代替.下面的广播传递数据方法仅当学习参考. 1.管理类 /** * 广播管理类:注册广播.注销广播.发送广播 * @autho ...

  5. 图片应该放在drawable-hdpi下不要放在drawable下

    图片应该放在drawable-hdpi下或者mipmap-hdpi 不要放在drawable下,要不然显示有些不同

  6. ajax实例及实现文本框异步搜素

    search.jsp(WebContent/jsp/search.jsp) <%@ page language="java" contentType="text/h ...

  7. docker install for centos7

    CentOS Docker runs on CentOS 7.X. An installation on other binary compatible EL7 distributions such ...

  8. HttpWebRequest 抓取页面异常处理办法

    抓取页面异常处理办法 public static string GetHtmlTest(string URI) { string fullhtml = null; while (true) { try ...

  9. 这几天用到的 Linux 命令

    下面总结一下这几天用到的linux 命令,记录一下: 13 netstat -atunlp 26 apt-get install python-pip 27 pip install shadowsoc ...

  10. 文字在边界自动换行word-wrap:break-word

    div容器内中内容将在边界内换行,(word-wrap)英语句子中单词内不强制换行.(word-break)如果需要词内换行