阅读:2927回复:11
如何将本机将要对外发出的包copy一份过来检查?
假设本机上有多个应用程序,它们发往外部的包,我的程序如何copy过来检查呢?
我是新手,对网络驱动等等方面了解太少,看了winpcap的部分代码,感觉好像很多是讲如何截获从外面发到(或经过)本机的包,而好像没有将如何截获外发的包的,实在是不懂. 各位大侠多指教~~~~ |
|
最新喜欢:fsb
|
沙发#
发布于:2001-10-24 17:32
winpcap只能截获进来的包,因为它只实现了一个Protocol的接口,也就是说它实际上并不是一个Imtermidiate Driver,而是一个Protocol Driver。
如何截获出去的包,可参考Passthru里面Miniport接口的实现。 |
|
板凳#
发布于:2001-10-24 17:52
十分感谢!
我会去查的. 如果各位大虾还有什么相关的头绪或资料,请不吝赐教~~ |
|
|
地板#
发布于:2001-10-24 19:32
想起一点,那些号称可以盗取本机浏览器信息或者oicq帐号的程序,他们又是如何截获他们所需要的本机发出的信息的呢?总不见的他们也去中间层去截获包啊?
是不是意味着还有些什么比较轻巧容易的办法来得到这些信息? |
|
|
地下室#
发布于:2001-10-24 23:16
又,重看了winpcap的nt下的packet.dll的源码,它通过一个共享事件就从网卡设备上读到了IP包.
我想知道,这样读出来的包是仅仅本机接收到的包,还是说连本机外发的包也在里面? 假如仅仅是接收到的包,那么,我们是不是可以通过类似的共享事件的手段来获得发出的包呢? 如果可以,这个对应的(读外发的包)共享事件的名字或者编号是什么?或者它的其他相关资料在哪里可以找到呢? 心急如焚,万望各位大侠指教~~~~~~~~~~~~~~~ |
|
|
5楼#
发布于:2001-10-25 15:26
关键不在Packet.dll,它使用的事件只是为了等待Driver的响应,因为它向Driver发了读操作的IRP。
在Driver里,函数PacketRead和Packet_tap负责响应这些IRP。 就我所知,并不存在这样的可抓包的共享事件。要抓往外发的包,就实现Miniport吧。 |
|
6楼#
发布于:2001-10-26 01:33
如果你不需要捕获网络原始数据包,可以在TDI层截获数据(9x,NT,2000均可)。如果需要原始数据包,在95/98/ME下,可以使用HOOK_DEVICE_SERVICE系统服务HOOK住NDIS_SENDPACKET,就可以抓到本机发出原始的网络数据包。在NT/2000下,就只能开发NDIS中间驱动程序来捕获了,这个工作量要大得多,呵呵,自己试试就知道了
|
|
7楼#
发布于:2001-10-26 20:31
十分感谢各位大侠!!!
这两天我已经试验过了,在win2000上很好解决的,因为win2000新支持一个socket参数SIO_RCVALL,有了它之后,直接用socket就可以截获本机上进出的所有包.具体例程可以参考http://www.csdn.net/develop/article%5C9%5C9062.shtm 我试验过,没有发现丢包,可以说很好用.(但是我不明白为什么它会同时截获到收到的包以及发出的包,难道它们放在同一队列? 不过事实上它真的截到了,帮我解决了难题). 但还有一头拦路虎-------上述方法win98不支持.而我的程序必须同时支持win2000和win98 我会进一步看看各位大侠对98下解决这个问题的建议,十分感谢!! |
|
|
8楼#
发布于:2001-10-26 20:41
流liu_0:
如何在TDI层截获数据?能否介绍一下?或者指点一下到哪里找相关资料也好 另,我的程序只要能抓到IP包就可以了,不需要抓到物理帧.只需要监听,不需要拦截. thanks~~ [ted 编辑于 2001-10-26 20:45] [ted 编辑于 2001-10-26 20:52] |
|
|
9楼#
发布于:2002-02-28 15:38
十分感谢各位大侠!!! ted大侠,你好: 能否将“http://www.csdn.net/develop/article%5C9%5C9062.shtm ”的例程发给我,我取不到此例程,谢谢。 :o |
|
10楼#
发布于:2002-03-06 16:55
ted大侠,你好:
能否将“http://www.csdn.net/develop/article%5C9%5C9062.shtm ”的例程发给我,我取不到此例程,谢谢。 我也取不到,请转贴于此处或发给大家,谢谢! |
|
11楼#
发布于:2002-03-09 12:15
有关RCV_ALL的例题在那本《WINDOWS网络编程》的光盘中有。祝你好运!
|
|