阅读:4345回复:35
想在2000下的kernel过滤包
我现在已经有了winpcap,它里面采用的是BPF过滤机制。想不用BPF来过滤,自己在下面的driver实现过滤,应该怎么做才可以呢?是不是在它下面的PacketRead或者Packet_tap改动就可以,改了以后在NTDDK下编译是否就可以了??要用softice来调试么??我愿意高分请教!真的很急,小女子这里谢谢大家了!
|
|
最新喜欢:luke_g... |
沙发#
发布于:2002-05-24 14:42
我现在已经有了winpcap,它里面采用的是BPF过滤机制。想不用BPF来过滤,自己在下面的driver实现过滤,应该怎么做才可以呢?是不是在它下面的PacketRead或者Packet_tap改动就可以,改了以后在NTDDK下编译是否就可以了??要用softice来调试么??我愿意高分请教!真的很急,小女子这里谢谢大家了! 如果你想做的是防火墙一类的东东,wincap没有用,你要用2kdkk里的passthru来修改。 如果你想做sniffer一类的工具,wincap倒是可以。 |
|
板凳#
发布于:2002-05-24 14:58
是呀,我只要抓到我想要的包再分析就可以了,不是做防火墙,Pcap不可以么?请教!希望能得到回答!
|
|
地板#
发布于:2002-05-24 15:02
PCAP是协议驱动,完全可以。
|
|
地下室#
发布于:2002-05-24 15:21
如果是抓包的话,何必搞的那么麻烦呢,你到网络上找那个isniffer的源程序吧,是delphi的,用zpacket.vxd的,改动一下还可以有发包的功能啊。
|
|
|
5楼#
发布于:2002-05-24 15:31
我知道pcap可以抓包,而且我也在应用层作了一个高层的分析工具。但是老板让我在driver里面就按ip地址,端口号进行过滤,同时过滤掉非IP,非UDP,非TCP的数据包,以及无内容的TCP ACK包,主要是出于性能上的优化。改动driver可以么??怎么改??谁能告诉我?我都要哭了!
|
|
6楼#
发布于:2002-05-24 16:13
98下还是2000下?2000下倒是有速成的方法。
|
|
7楼#
发布于:2002-05-24 16:28
2000下呀,有什么办法??可以告诉我么??我真的很急,感谢万分!
|
|
8楼#
发布于:2002-05-24 16:42
你为什么不在应用层做?简单到只写一个app的事!除了你自己做的应用程序之外,你不需要把数据传给其他app吧(比如ie)?
|
|
|
9楼#
发布于:2002-05-24 16:47
我的目的就是要在driver里做,放到应用层性能太差,我应用层的都作好了,可是不行!老板要在driver里就能达到目的,怎么办?改动pcap可以么?
|
|
10楼#
发布于:2002-05-24 16:52
你为什么不在应用层做?简单到只写一个app的事!除了你自己做的应用程序之外,你不需要把数据传给其他app吧(比如ie)? 除了你自己做的应用程序之外,你不需要把数据传给其他app吧(比如ie)? |
|
|
11楼#
发布于:2002-05-24 16:58
不用呀,我只要把想要的类型的包取出来进行分析就可以了!你有什么办法么?
|
|
12楼#
发布于:2002-05-24 17:06
实际上,libpcap的编程接口是很好用的,特别是做这种过滤什么的,是它最拿手的事了。放在应用层的性能也不见得差到哪里去。你上面的app是不是没有源码所以这样?
|
|
|
13楼#
发布于:2002-05-24 17:11
不是的,我面对的情况是在一个流量非常大的网络环境里,如果把过滤放到应用层,那么接受包的数量就太大了,就会漏包。为了避免这种情况,所以要在kernel里就进行过滤,是应用程序接受包的数量减少不至于丢包!有什么办法???急!
|
|
14楼#
发布于:2002-05-24 17:15
这理论是你说的还是你老师说的?
|
|
|
15楼#
发布于:2002-05-24 17:20
我的目的就是要在driver里做,放到应用层性能太差,我应用层的都作好了,可是不行!老板要在driver里就能达到目的,怎么办?改动pcap可以么? 吹牛吧??驱动都没写呢APP就做好了???? 其实很简单,如果你真的只是要做一个PA[Packet analyser]的话! 你如果想在驱动里面做的话不是不可以,是不实用!!你可以把过滤的部分放在驱动部分,分析的部分一定要在应用层做!要不首先并不好写,再就是耗费系统资源!也就是说你只要用PACKET这个例子来改!其他的都不用看了!怎么改呢?我给你点建议!首先改掉PACKET里面只支持802。3的包这个毛病!加上对WAN的支持!可以参考站上的其他帖子和XP的PASSTHRU里面的PTBINGADAPT函数和DRIVERENTRY函数前面的对载体信息的全局变量的初始化!INF里面加上WAN支持!这些站上都有资料和帖子讨论过,我就不详细说了!然后可以在PACKET驱动部分的PACKETRECIVE和PACKETRECIVEPACKET两个函数里面加入你想做的过滤的代码[如果你要做可设置简单规则的过滤,规则放在注册表里面是最简单的方法,如果真要搞复杂的话就要再写一个服务来协调同步!],那么驱动部分也就完成了!剩下的就是怎么在APP层做分析了!如果你对NDIS开发没什么经验的话,建议你先别开始写代码!首先先要看!怎么看?从DRIVERENTRY看起,然后看BINDADAPT!看懂了就知道OPEN这个东西是怎么来的了!OPEN是什么东西?自己看~再就要从PACKETREAD看起,然后看到RECIVE和RECIVEPACKET,如果是看完RECIVE函数就要接着看TRANSFERDATACOMPLETE!如果是RECIVEPACKET就只看到这里就可以了!可能说的不是很清楚你还看不明白我说什么,先照我说的看吧~~看了1/3你就明白我说什么了!我也好久没看PACKET了所以一些函数的名和变量的名都忘了!大概吧~~具体的问题具体问! |
|
|
16楼#
发布于:2002-05-24 17:20
是老板的要求,我痛苦死了,我都作好一个分析的app了,现在让我改驱动,我是一窍不通。要被开除了!5555555,谁能救救我!
|
|
17楼#
发布于:2002-05-24 17:24
有.X.T.I.M.大侠出手,我就可以接着去调程序了。
|
|
|
18楼#
发布于:2002-05-24 17:35
Packet???是DDK下的那个驱动么??你的意思是可以在协议驱动里过滤包??那么我去改Pcap下的那个驱动也可以么??我没什么经验?我看完了pcap下的那个驱动的源码,结构也了解了一点。我感觉如果要加过滤,先去掉里面的BPF filter。然后在PacketRead和Packet_tap里加上过滤是不是就可以。还有,如果我改好了,怎么调试呢?一定要用softice么?我一用就死机!而且一开始 *.sys就装不上!55555
|
|
19楼#
发布于:2002-05-24 17:45
是老板的要求,我痛苦死了,我都作好一个分析的app了,现在让我改驱动,我是一窍不通。要被开除了!5555555,谁能救救我! 什么老板这么狠,抡起骷髅头砸了过去,什么东西还不得慢慢来啊?博士也是一天一天念出来的吗。 |
|
上一页
下一页