当前位置:  技术问答>linux和unix

请教:Linux下抓包功能的编程实现

    来源: 互联网  发布时间:2015-10-14

    本文导语:  本人现在需要做Linux下的入侵检测系统,基础部分就是网络数据包的提取。前一段时间在网上下载了libpcap库,看了源代码,好多--没办法全部理解。现在的设想是借鉴libpcap库,自己做一个跟libpcap差不多的,功能不...

本人现在需要做Linux下的入侵检测系统,基础部分就是网络数据包的提取。前一段时间在网上下载了libpcap库,看了源代码,好多--没办法全部理解。现在的设想是借鉴libpcap库,自己做一个跟libpcap差不多的,功能不需要那么全,只要能提取出数据包来就行,哪位高手指点指点。
--或者给一下Linux下抓包功能的最基本实现(不要基于libpcap库的,只用Linux自带的库函数)
--推荐几本书或网上的资料也可以。

---先谢过各位了!

|
其实也没那么复杂啦,关键是你要用tcpdump之类的程序跑起来,然后动态的跟踪一下,看看一个数据包都经过些什么处理过程。一个开源代码应当经过静态分析和动态分析两个过程,相互结合才能确知其工作过程,光看源代码是不行的,你会对很多非主流代码过于关注,失去你的注意焦点。从代码看一个大概结构,然后用KDBG动态跟踪,你就能找到程序的主流程在哪里,以此为依据,一步步化繁为简,也没什么难了。

|
应用程序通过PF_PACKET协议簇直接利用网络驱动程序发送和接收报文。
recvfrom将数据拷贝到用户空间。

发生漏包现象首先要看看是不是自己的代码有问题。
收包与处理可以分开做,有足够多的方法保证正确性。

再有的话就用module吧,避免多次在内核空间与用户空间切换。

|
用socket(PF_PACKET, SOCK_RAW, int protocol)抓包

|
或者写个module,用netfilter抓。。。

|
buf中就是读到的数据包,层层判断协议头就可以了。


    
 
 

您可能感兴趣的文章:

  • 请教终端编程&curses编程高手
  • 请教一个shell编程的问题,就是如何在shell编程中读一个文件的内容?谢谢啦!
  • 请教linux下的编程的选择:我听说有gtk+gnome的编程,也有kde里的 什么编程,到底应该选择哪个呢?好象一个是技术好一点,一个是市场占有
  • 请教:我想在unix编程领域发展,我应该在哪些方面努力?
  • 请教Linux下的编程工具
  • 新手请教,linux网络编程。
  • 请教一个多进程编程问题
  • 请教高手:如何学习内核编程?
  • 请教gcc编程 问题 关于调用中断 实现 图形模式
  • 请教高手, 如何用expect实现BBS的自动登陆? iis7站长之家
  • 急!!请教关于linux socket编程的一个问题!!
  • 请教LINUX下的网络编程?
  • 请教:想学LINUX内核编程,请指点
  • 请教:Linux下的C++编程和Windows下有什么不同,要注意什么?
  • 请教一下哪里有UNIX下C编程标准下载?
  • 请教串口通信的编程
  • 请教一下:Linux下如何编程制作系统托盘
  • arm串口缓冲和c编程请教
  • 菜鸟请教linux下的网络编程
  • 请教如何学习Linux上的编程
  • 谁用Ias成功实现过ejb呢,我成了!!可是我想实现分布式时却失败了,请教!
  • 请教在soket中怎样实现断点续传?
  • 请教包过滤c实现原理细节
  • 请教java中如何实现vb中chr() ,asc() 类似的功能?
  • 请教,怎样实现IIS和resin 整合?
  • 请教如何用b shell/awk实现汇总
  • 请教:关于如何实现文件监控的问题
  • 请教一下:在UNIX下怎样实现和Windows下“计划任务”一样的功能。
  • 请教:两服务器之间的HTTP请求(非RMI实现)
  • sh 脚本:请教实现非root退出
  • 请教高手, 如何用expect实现BBS的自动登陆?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3