wwwla
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1975回复:16

如何用packet.sys替代vpacket.vxd?

楼主#
更多 发布于:2003-01-10 11:53
有一个sniff程序用的98ddk中vpacket.vxd,现要求在win2k中也能使用,是不是要改用2000ddk中packet.sys阿?程序如何修改?多谢。(我是菜鸟)

最新喜欢:

okincnokincn
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-10 13:39
你要知道那个sniff和驱动的通信接口,然后重写一个sys,还要修改上层的应用程序让他打开sys而不是vxd。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
okincn
驱动牛犊
驱动牛犊
  • 注册日期2002-12-31
  • 最后登录2003-01-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-11 09:40
wwwla
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于: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);
具体如何改?谢谢!
zjt_dut
驱动牛犊
驱动牛犊
  • 注册日期2002-11-26
  • 最后登录2003-05-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-01-11 13:47
   可以直接用Packet.sys 的。
wwwla
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-01-13 20:15
你的意思是说直接用packet.sys替换vpacket.vxd就行了?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-01-13 21:59
看你有什么操作,修改一下。还没有搞定?主要是打开和通信的过程。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
wwwla
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-01-14 09:40
那调用的函数是不是一样啊?
通信过程也相同?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-01-14 10:29
应用程序调用的是一样的,就是打开的时候不要createfile(VXD),打开sys就行了,然后根据你自己的操作修改sys里面对应的操作就行了,看看wdm的书,都会讲的
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
wwwla
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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,我太菜了,大虾介绍几本好书吧,学学基础知识先。
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-01-15 10:05
我说的是不要用createfile打开VXD,用createfile打开sys就行了。你原先的程序不是createfile(“VXD”)的么

 :( :( :( :( :( :( :(
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
wwwla
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-01-15 13:11
对阿,那你的意思就是只要用新sys替换原来的vxd就行了?接着函数的调用呢。
推荐几本书吧
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-01-15 13:34
应用程序调用的是一样的,就是打开的时候不要createfile(VXD),打开sys就行了,然后根据你自己的操作修改sys里面对应的操作就行了,看看wdm的书,都会讲的
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
wwwla
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-03-10 13:00
还有那个我看到那个例子,用的packet.sys,用什么openservice,是怎么回事?createfile只在选网卡时用了一下。原来的用vpacket.vxd的例子,接着用了bind,那移植后能用么?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-03-10 14:04
openservice那些函数是为了启动一个sys的能不能直接用看你的sys怎么做了的
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
wwwla
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-03-11 13:48
那是不是所有的sys都需要那些函数启动阿?而vxd则不用,只用creatfile就能用?那个sys就是2000ddk中的例子packet.sys
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-03-11 14:58
是的
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
游客

返回顶部