免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: linux_sjj

[其他] 请问那个大神可以告诉小弟,看连接跟踪的代码,从哪里入手。 [复制链接]

论坛徽章:
5
15-16赛季CBA联赛之山东
日期:2016-03-22 11:49:0815-16赛季CBA联赛之八一
日期:2016-03-22 14:06:00IT运维版块每日发帖之星
日期:2016-03-27 06:20:0015-16赛季CBA联赛之天津
日期:2016-03-28 15:22:28IT运维版块每日发帖之星
日期:2016-07-16 06:20:00
发表于 2016-03-10 17:26 |显示全部楼层
回复 20# nswcfd
你好!非常谢谢你。领导是让在用户态模拟一个连接跟踪,然后组合数据包,在将其中html,jpg,js等下载下来。但是我始终想不通,我就算是用个链表把读来的五元组,都存在链表里面(感觉没什么意义啊,就是只有源ip,目的ip,协议,源端口,目的端口),我继续读取包的时候,继续往里面添加五元组,可是我包读完了,链表里面也只是存在一个五元组的链表,这个没有什么意义啊。每个包里面的内容也不会存在链表里面。

   

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-03-10 22:57 |显示全部楼层
回复 21# linux_sjj

按照你领导的要求,你是肯定要存储内容的。之所以让你用连接跟踪,其实就是要有 session 的了逻辑。比如你收到一个报文,里面有数据,你怎么知道这是谁的数据,OK,找到他对应的 session,然后就知道这段数据该怎么保存了。


   

论坛徽章:
5
15-16赛季CBA联赛之山东
日期:2016-03-22 11:49:0815-16赛季CBA联赛之八一
日期:2016-03-22 14:06:00IT运维版块每日发帖之星
日期:2016-03-27 06:20:0015-16赛季CBA联赛之天津
日期:2016-03-28 15:22:28IT运维版块每日发帖之星
日期:2016-07-16 06:20:00
发表于 2016-03-11 08:37 |显示全部楼层
回复 22# Godbach


   你说的这个会话是指什么,我不就是存了个五元组嘛,来了一个报文,我把五元组存在链表里面,我也没有存取这个报文的内容,之后,就算再来这个会话,也只是查找了一下链表存不存在这个五元组,不存在加上,存在的话直接跳过,没什么实际作用啊。没有你说的还能去查找会话内容这一说啊

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-03-11 10:46 |显示全部楼层
回复 23# linux_sjj

session 可以理解为 conntrack 的概念。

你要知道你用 五元组是干嘛的。你最终不是为了读取里面的数据吗。


   

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-03-11 10:47 |显示全部楼层
回复 23# linux_sjj

你只要五元组,不需要内容吗。

单独保存五元组,其他信息不保存,够你实际的需要吗?



   

论坛徽章:
5
15-16赛季CBA联赛之山东
日期:2016-03-22 11:49:0815-16赛季CBA联赛之八一
日期:2016-03-22 14:06:00IT运维版块每日发帖之星
日期:2016-03-27 06:20:0015-16赛季CBA联赛之天津
日期:2016-03-28 15:22:28IT运维版块每日发帖之星
日期:2016-07-16 06:20:00
发表于 2016-03-11 11:31 |显示全部楼层
回复 25# Godbach


    我的所有wireshark捕捉到的包,不都是类似于这个图片上的内容,这样一个传输的建立之后,所有内容都放一起吗。
QQ图片20160311112841.png

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-03-11 14:56 |显示全部楼层
回复 26# linux_sjj

LZ,你先扎实的了解一下一些 kernel 网络方面的基础吧,比如最核心的 skb 结构等等。


   

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2016-03-11 16:19 |显示全部楼层
基于会话分析内容有两大流派:
A。 把连接的报文全部拼接/缓存起来,作为一个整体去分析。
B。 逐包分析,不断更新状态,所谓的流式引擎。
有点像当年的DOM和SAX

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2016-03-11 16:33 |显示全部楼层
对于保存html/jpg这个任务来说,需要在http header包里分析出content-type/content-length,记录文件名,类型,长度(这都是保存在session上的状态,不仅是五元组)。
然后对于后续报文(假设没有tcp乱序\丢包发生),不断追加文件,直到剩余长度(也是状态)小于等于0为止。

论坛徽章:
13
15-16赛季CBA联赛之八一
日期:2016-07-08 21:00:1415-16赛季CBA联赛之同曦
日期:2017-02-15 14:26:1515-16赛季CBA联赛之佛山
日期:2017-02-20 14:19:2615-16赛季CBA联赛之青岛
日期:2017-05-07 16:49:1115-16赛季CBA联赛之广夏
日期:2017-07-30 09:13:1215-16赛季CBA联赛之广东
日期:2018-07-05 22:34:3615-16赛季CBA联赛之江苏
日期:2018-09-03 12:10:2115-16赛季CBA联赛之上海
日期:2018-09-25 03:49:2215-16赛季CBA联赛之广东
日期:2018-09-25 04:09:12
发表于 2016-03-11 16:55 |显示全部楼层
回复 26# linux_sjj


协议分层的,把每一层的头去掉了,就是你要的应用数据,这些数据拼起来就得到你要的文件了,关于怎么拼,这些文件是什么后缀,要看你是从头到尾到自己实现还是底层用第三方库吧,你要知道进入你程序的数据是哪一层协议的数据。
可以先用pcap库的接口,看看官网的示例,试着从一个pcap文件中“抓”出来文件,有个感性的认识,然后再去考虑怎么写你的程序。如果你能自己从网卡获取数据,并且支持主流协议解析,最终放到一个大的网关上抓文件,效率和正确性都没问题,你一定很收获到很多很多东西,加油吧。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2021中国系统架构师大会

【数字转型 架构重塑】2021年5月20日-22日第十三届中国系统架构师大会将在云端进行网络直播。

大会为期3天的议程,涉及20+专场,近120个主题,完整迁移到线上进行网络直播对会议组织来说绝非易事;但考虑到云端会议的直播形式可以实现全国各地技术爱好者的参与,也使ITPUB作为技术共享交流平台得到更好的普及,我们决定迎难而上。
http://sacc.it168.com/


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP