有没有什么类似Winpcap的数据包拦截的库?

2014-01-17 10:46:17 +08:00
 keary
如题,我现在想写个需要做到数据包拦截与修改的的程序,比如拦截目的IP为XXX.XXX.XXX.XXX的数据包,然后修改IP字段后再发出去~

Winpcap库感觉简单好用,问题是它只能做到旁路捕包,而不能拦截,所以想问问有没有什么跟它类似的现成的数据包拦截的类库?我看现在要拦截都是写NDIS中间层驱动,不过这个好像稳定性不是很好,而且驱动开发我也不怎么会…
8568 次点击
所在节点    问与答
24 条回复
keary
2014-01-17 10:46:47 +08:00
对了,是Windows平台~
the13matrix
2014-01-17 11:13:25 +08:00
我也在找。
我发现部分扫描器,在线程数较大时,会有部分握手包不经全局代理,直接发向公网。这会导致真实IP暴露。
当时想的是能不能有个软件把违规数据包拦截在本机。可惜没找到。搜“数据包拦截”,搜到的全是抓包软件。
keary
2014-01-17 11:23:05 +08:00
嗯,Windows下拦截数据包好像都是用NDIS中间层驱动来做的,不过这个比较麻烦,而且一不小心就蓝屏了。所以要是有个类似winpcap这样简单好用又稳定的库就好了~
Akagi201
2014-01-17 12:54:02 +08:00
高端, 防火墙 iptables这类不行吗?
keary
2014-01-17 13:45:37 +08:00
@Akagi201 我是Windows…而且还需要修改数据包再发送~
liwei
2014-01-17 16:58:30 +08:00
liwei
2014-01-17 16:59:31 +08:00
这东西要是在linux下做就简单多了,利用iptables把数据包放到NFQUEUE,在用户空间处理NFQUEUE就行了,Windows真是麻烦。
keary
2014-01-17 19:20:46 +08:00
@liwei 要的就是这个!~谢谢!不过要是能支持XP就好了~
lehui99
2014-01-17 23:31:06 +08:00
@keary Winpkfilter http://www.ntkernel.com/?Products:Development_Toolkits:Windows_Packet_Filter_Kit
不过不开源,商业开发和使用都要收费
Tinet
2014-01-18 09:38:15 +08:00
我用过一个叫burpsuite的软件,可以拦截,不知道他是用什么库写的
Tinet
2014-01-18 09:43:28 +08:00
@liwei 学习了
Tinet
2014-01-18 09:48:30 +08:00
@liwei 请问怎么用iptables把数据包放到NFQUEUE
keary
2014-01-18 09:50:12 +08:00
@Tinet Linux下一般是用netfilter写的~
Tinet
2014-01-18 09:54:01 +08:00
@keary 感觉linux下实现的原理蛮有意思的,不知道有没有详细一点的资料啊
liwei
2014-01-18 10:18:47 +08:00
@Tinet NFQUEUE就是iptables的一个target,前面用match条件匹配到数据包后用 -j NFQUEUE 就可以了。
liwei
2014-01-18 10:20:27 +08:00
@keary XP应该只能通过写驱动的方式来完成,在Vista之后才有的 WFP,WinDivert就是用WFP实现的。
http://msdn.microsoft.com/en-us/windows/hardware/gg463267.aspx
keary
2014-01-18 10:43:08 +08:00
@liwei 这个我懂哈哈,再多问一句,那有没有文件过滤的类库~?文件过滤我看是有两种,用户层HOOK住CreateFile这类API,不过很容易被破解;驱动层方法主要就是用miniFilter,这个我学过一下,比较难懂,而且动不动就蓝屏…
liwei
2014-01-18 10:46:16 +08:00
@keary 这个我不懂
Tinet
2014-01-18 11:33:45 +08:00
@liwei 我看了一下相关资料,有一点疑问,就是在用户空间处理后,不需要额外的处理数据包就会自动返回到内核空间吗
keary
2014-01-20 00:39:56 +08:00
@liwei 请问这个WinDivert你用过吗?我用它编译好的版本,导入了.h和.lib文件,结果编译的时候VS提示“error LNK2019: 无法解析的外部符号 __imp__WinDivertOpen,该符号在函数 _main 中被引用”,请问这个怎么弄?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/97352

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX