阅读:2064回复:16
如何用packet.sys替代vpacket.vxd?
有一个sniff程序用的98ddk中vpacket.vxd,现要求在win2k中也能使用,是不是要改用2000ddk中packet.sys阿?程序如何修改?多谢。(我是菜鸟)
|
|
最新喜欢:okincn |
沙发#
发布于:2003-01-10 13:39
你要知道那个sniff和驱动的通信接口,然后重写一个sys,还要修改上层的应用程序让他打开sys而不是vxd。
|
|
|
板凳#
发布于:2003-01-11 09:40
|
|
地板#
发布于:2003-01-11 13:35
sys要重写么?不能直接改用packet.sys么?原来的程序打开vxd如下
HANDLE hVxD; hVxD = CreateFile(\"\\\\\\\\.\\\\vPACKET.vxd\", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED | FILE_FLAG_DELETE_ON_CLOSE, NULL); if (hVxD == INVALID_HANDLE_VALUE) { dwErrorCode = GetLastError(); return dwErrorCode; } unsigned char eh[5]; DWORD itemindex=0; eh[0]=\'0\';eh[1]=\'0\';eh[2]=\'0\';eh[3]=\'0\';eh[4]=0; Bind(hVxD,eh); SetOid(hVxD, OID_GEN_CURRENT_PACKET_FILTER, 4, NDIS_PACKET_TYPE_PROMISCUOUS); 具体如何改?谢谢! |
|
地下室#
发布于:2003-01-11 13:47
可以直接用Packet.sys 的。
|
|
5楼#
发布于:2003-01-13 20:15
你的意思是说直接用packet.sys替换vpacket.vxd就行了?
|
|
6楼#
发布于:2003-01-13 21:59
看你有什么操作,修改一下。还没有搞定?主要是打开和通信的过程。
|
|
|
7楼#
发布于:2003-01-14 09:40
那调用的函数是不是一样啊?
通信过程也相同? |
|
8楼#
发布于:2003-01-14 10:29
应用程序调用的是一样的,就是打开的时候不要createfile(VXD),打开sys就行了,然后根据你自己的操作修改sys里面对应的操作就行了,看看wdm的书,都会讲的
|
|
|
9楼#
发布于:2003-01-14 19:07
可是我看到一个程序用的就是creatfile阿,如下
hFile = ::CreateFile(_T(\"\\\\\\\\.\\\\Packet\"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); if (INVALID_HANDLE_VALUE == hFile) { TRACE0(\"打开文件失败\\n\"); break; } // 发送IOCTL命令 if (!::DeviceIoControl(hFile, IOCTL_ENUM_ADAPTERS, NULL, 0, buffer, MAX_ADAPTERS * 256, &BytesTxd, NULL)) break; sigh,我太菜了,大虾介绍几本好书吧,学学基础知识先。 |
|
10楼#
发布于:2003-01-15 10:05
我说的是不要用createfile打开VXD,用createfile打开sys就行了。你原先的程序不是createfile(“VXD”)的么
:( :( :( :( :( :( :( |
|
|
11楼#
发布于:2003-01-15 13:11
对阿,那你的意思就是只要用新sys替换原来的vxd就行了?接着函数的调用呢。
推荐几本书吧 |
|
12楼#
发布于:2003-01-15 13:34
应用程序调用的是一样的,就是打开的时候不要createfile(VXD),打开sys就行了,然后根据你自己的操作修改sys里面对应的操作就行了,看看wdm的书,都会讲的 |
|
|
13楼#
发布于:2003-03-10 13:00
还有那个我看到那个例子,用的packet.sys,用什么openservice,是怎么回事?createfile只在选网卡时用了一下。原来的用vpacket.vxd的例子,接着用了bind,那移植后能用么?
|
|
14楼#
发布于:2003-03-10 14:04
openservice那些函数是为了启动一个sys的能不能直接用看你的sys怎么做了的
|
|
|
15楼#
发布于:2003-03-11 13:48
那是不是所有的sys都需要那些函数启动阿?而vxd则不用,只用creatfile就能用?那个sys就是2000ddk中的例子packet.sys
|
|
16楼#
发布于:2003-03-11 14:58
是的
|
|
|