需要截获本机发出和收到的数据包,是基于PPP连接的,看了众多朋友的贴子,好像都是工作在网络层的捕获数据包,libpcap和Winpcap可以做到,但是WinPcap只能够工作在局域网,对于ppp连接暂时作用不了!libpcap在unix下工作,不再windows平台下!看来截获是好像只能够在链路层才能够做到这一点,用NDIS实现,但是太复杂了,不知道还有什么办法吗?
19 个解决方案
#1
只能在链路层实现拦截,唯有改驱动程序或加入hook之内的东西到内核中
#2
写一个 dll 调用 改名的 winsock32.dll ,然后将此dll 改名为winsock32.dll
#3
to 贴主:winpcap确实只能在局域网上使用,难道你知道有什么其它的好东东??
#4
to wolfsquare(狼平方):
那你这个程序怎么分发?
那你这个程序怎么分发?
#5
应该可以用在PPP上吧,以下是Winpcap开发人员的回答
Q-4: Can I use WinPcap on a PPP connection?
A: We have tested WinPcap on PPP connections under Windows 95, Windows 98 and Windows ME. In Windows 95, due to a bug in NDIS, WinPcap sometimes resets the PPP connection. In Windows 98/ME this bug appears to be corrected, and WinPcap seems to work properly. Under Windows NT and Windows 2000 there are problems with the binding process, that prevents a protocol driver from working properly on the WAN adapter.
Q-4: Can I use WinPcap on a PPP connection?
A: We have tested WinPcap on PPP connections under Windows 95, Windows 98 and Windows ME. In Windows 95, due to a bug in NDIS, WinPcap sometimes resets the PPP connection. In Windows 98/ME this bug appears to be corrected, and WinPcap seems to work properly. Under Windows NT and Windows 2000 there are problems with the binding process, that prevents a protocol driver from working properly on the WAN adapter.
#6
我问过winpcap作者,他说不能block packet, 要实现你可以出钱,他来写。
#7
关注
#8
gzz
#9
有点乱,wolfsquare(狼平方) 兄所说的好像较为简单一点,不过好像winsock32.dll提供的接口中没有写操作,是否可以这样做:自定义的winsock32.dll在接受调用之后,用另外一个进程来进行数据操作,之后在调用原来的winsock32.dll?
#10
如果不行的话,那么天网防火墙怎么实现截获数据报的?
#11
天网使用vxd驱动的
#12
没错,我现在也准备写一个驱动程序。没办法!极为关注!
#13
关注
#14
我up
#15
up!@
#16
这个问题继续讨论下去嘛!
#17
看这些ddk文档都快头晕了,突然又一个新想法,可不可以自己做一个网关程序,程序的功能是实现替代本机的路由表,让数据都发到这个网关程序去,然后在这个网关程序的缓冲中进行更改ip,然后转发给原来的网关程序,数据就可以继续发送了?!!
#18
你是不是做个人防火墙,不是的话就可以用代理!不用包过滤!
#19
我是做数据包转发器
#20
#1
只能在链路层实现拦截,唯有改驱动程序或加入hook之内的东西到内核中
#2
写一个 dll 调用 改名的 winsock32.dll ,然后将此dll 改名为winsock32.dll
#3
to 贴主:winpcap确实只能在局域网上使用,难道你知道有什么其它的好东东??
#4
to wolfsquare(狼平方):
那你这个程序怎么分发?
那你这个程序怎么分发?
#5
应该可以用在PPP上吧,以下是Winpcap开发人员的回答
Q-4: Can I use WinPcap on a PPP connection?
A: We have tested WinPcap on PPP connections under Windows 95, Windows 98 and Windows ME. In Windows 95, due to a bug in NDIS, WinPcap sometimes resets the PPP connection. In Windows 98/ME this bug appears to be corrected, and WinPcap seems to work properly. Under Windows NT and Windows 2000 there are problems with the binding process, that prevents a protocol driver from working properly on the WAN adapter.
Q-4: Can I use WinPcap on a PPP connection?
A: We have tested WinPcap on PPP connections under Windows 95, Windows 98 and Windows ME. In Windows 95, due to a bug in NDIS, WinPcap sometimes resets the PPP connection. In Windows 98/ME this bug appears to be corrected, and WinPcap seems to work properly. Under Windows NT and Windows 2000 there are problems with the binding process, that prevents a protocol driver from working properly on the WAN adapter.
#6
我问过winpcap作者,他说不能block packet, 要实现你可以出钱,他来写。
#7
关注
#8
gzz
#9
有点乱,wolfsquare(狼平方) 兄所说的好像较为简单一点,不过好像winsock32.dll提供的接口中没有写操作,是否可以这样做:自定义的winsock32.dll在接受调用之后,用另外一个进程来进行数据操作,之后在调用原来的winsock32.dll?
#10
如果不行的话,那么天网防火墙怎么实现截获数据报的?
#11
天网使用vxd驱动的
#12
没错,我现在也准备写一个驱动程序。没办法!极为关注!
#13
关注
#14
我up
#15
up!@
#16
这个问题继续讨论下去嘛!
#17
看这些ddk文档都快头晕了,突然又一个新想法,可不可以自己做一个网关程序,程序的功能是实现替代本机的路由表,让数据都发到这个网关程序去,然后在这个网关程序的缓冲中进行更改ip,然后转发给原来的网关程序,数据就可以继续发送了?!!
#18
你是不是做个人防火墙,不是的话就可以用代理!不用包过滤!
#19
我是做数据包转发器