window filter platform (wfp)修改TCP数据包的方法

原创 2015年12月28日 10:58:35

问题描述:使用WFP重定向了TCP链接到本地localhost后,为了能够告诉应用层原始链接的地址和端口,需要修改数据包,即在三次握手后插入一个自定义包。在实现这个小小功能时,遇到了不少问题,走了很多弯路,希望在此记录一下,以备不时之需,也希望能够对有需要的朋友有所帮忙,因为WFP驱动,基本没有中文资料,所有的资料和问题都需要亲自到MSDN找,也是大费周折。
很显然,TCP的重定向,参考了MSDN的资料后(tcp重定向之MSDN资料),很快的实现了重定向到本地服务进程,但是要让服务进程知道原始链接的地址和端口,我一开始是在FWPM_LAYER_OUTBOUND_TRANSPORT_V4这一层去设置ClassiFy回调函数,因为按照数据传输流程,在这一层,数据包已经包含了TCP头,所以要想在这里改变数据包,十分困难,需要自行维护SYN和ACK计数,这基本是出力不讨好的事,很容易出错。经历了两周的不同方法的尝试,最后在FWPM_LAYER_STREAM_V4这一层设置回调函数,成功的改变了数据包的内容,之所以能成功,是因为这一层,数据包还没有进行任何的tcp或者ip组包,这就不需要自己去维护SYN和ACK计数,十分方便,只要判断好streamFlag是FWPS_STREAM_FLAG_SEND还是FWPS_STREAM_FLAG_RECV就可以控制数据了。就这么一个简简单单的问题,我曾在MSDN发帖相问,也没人愿意解答,所以就只能自己摸索,这里因为商业的事情,就不再贴代码了,不过已经将解决类似问题的方法给了出来。
此外,很有必要了解一下WFP分层模型的数据传输流程(tcp数据传输流程)。在国内,因为不能再方便的使用谷歌搜索,用百度基本无法搜索这些技术问题,所以推荐使用必应搜索,搜英文关键词,或者直接到MSDN搜索关键词或者相关的WFP的API,基本都能找到要找的东西。
因为我的职业规划是先成为一名架构师,也希望在大数据这方面有所作为,所以不想再从事驱动或者纯PC客户端软件的开发。如果有架构师或者大数据这方面的牛人,还希望能够指点一二。如果牛人你希望能够方便的交流,可以加群——496187602(本群宗旨:阅好书,乐分享,善交流,施仁义,绘人生,追梦!),不愿意交流,不愿意分享者勿扰!

WFP 原理

(WIN7 32位开发驱动: X86的纯净版的KEY: HTXFV-FH8YX-VCY69-JJGBK-7R6XP) 数据流处理: (入站和出站都是一样) 1. 一个包进入到了协议栈 ...

Windows驱动_WFP之三Callout驱动的操作

还是没最终下那个决定,也许自己真的没有做大事的魄力,或者根本就做不成大事。做大事者,最忌,犹豫不决,婆婆妈妈,拖泥带水。但是,我有那么多的牵绊,我不得不考虑。其实,我心里已经做了决定,现在只是时间的问...

wfp网络过滤框架总结(一)-主要翻译msdn ---发文于2013-11-24

By feivirus 一。基本术语定义 callout 为扩展wfp性能提供的一个功能,由一系列call function和一个guid key组成,wfp内置了几个callouts...

应用层HTTP数据包的截获与还原技术的实现

摘要:在因特网日益发展壮大的今天,万维网在其上的通信量已经超过90%,万维网信息的安全问题已经越来越被人们所重视,而作为万维网应用层核心协议的http协议是基础。当网络发生异常时,对网络上传输的数据进...

网络数据包拦截之:修改TCP包内容时注意的问题

首先描述一种现象,曾经家里的ADSL宽带,当用IE浏览器浏览网页时候, 不管你打开什么类型的网站,都会出现电信广告,或是嵌入到原来网页中或是弹出广告框,十分的讨厌。 曾经天真的以为是每个网站都跟电...

Windows Filtering Platform 结构和简介

这两天一直在写一个用tdi实现的tcp Redirector ,说白了就是一个tcp连接的重定向器,本来已经写的差不多了,前两天在google上搜索tdi的关键字时一不小心连接到在线msdn上,却看见...

使用windows filter platform(wfp)开发TCP重定向的方法

项目的需求背景: 早先的lsp模型做的TCP重定向功能

数据流重定向

实验介绍 你可能对重定向这个概念感到些许陌生,但你应该在前面的课程中多次见过>或>>操作了,并知道他们分别是将标准输出导向一个文件或追加到一个文件中。这其实就是重定向,将原本输出到标准输出的数据...
  • jijerry
  • jijerry
  • 2016年12月09日 09:51
  • 590

Windows驱动_WFP之一WFP是什么

每天进步一点点,一步一步来,慢慢的就会有从量变到质变的过程。我应该勇于去接受挑战,这个世界,没有人会同情弱者,只会去赞美强者,羡慕强者。适者生存。如果你不想被世界淘汰。那就赶紧去淘汰别人,淘汰你身边的...

Windows 筛选平台 (WFP)

原文路径::http://msdn.microsoft.com/zh-cn/library/windows/hardware/gg463267.aspx 引用于微软官方 Windo...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:window filter platform (wfp)修改TCP数据包的方法
举报原因:
原因补充:

(最多只允许输入30个字)