mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2003-02-27 16:59
协议再上面的东西不太了解,不好说该怎么做,TCPIP本身就是一个TDI驱动,TDI的上面应该是一个TDI Client,这个你好好看看ddk里面的关于TDI那方面的东西吧
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2003-02-27 19:30
协议再上面的东西不太了解,不好说该怎么做,TCPIP本身就是一个TDI驱动,TDI的上面应该是一个TDI Client,这个你好好看看ddk里面的关于TDI那方面的东西吧

那么NDIS上面的协议驱动又是完成什么功能呢?看DDK的那些图好像协议驱动就是传输驱动吧,不是很清楚,能指教一下吗?
slightflying
monkeyy
驱动中牛
驱动中牛
  • 注册日期2001-12-06
  • 最后登录2010-10-10
  • 粉丝0
  • 关注0
  • 积分315分
  • 威望84点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2003-02-27 20:08
你得到的是受到的报文还是发送的报文??

如何得到正在往外发送的报文的?


to mikeluo:你的意思 是进来的报文和发出的报文不一样是吗??
听说老虎会吃人,所以从没想过去摸老虎的屁股。:( :(
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2003-02-28 09:15
不明白你说的是什么意思。如果你是把网卡设为混杂模式来收到的包,那只能做sniffer,不能做截包和修改。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
monkeyy
驱动中牛
驱动中牛
  • 注册日期2001-12-06
  • 最后登录2010-10-10
  • 粉丝0
  • 关注0
  • 积分315分
  • 威望84点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2003-02-28 11:42
slightflying说话含混不清,该打PP,呵呵。
TO mikeluo:他的意思是他们自己开发了一个新的协议,和好象TCP/IP协议一样的东西,现在要把这个协议嵌到Windows中去,就是说让Windows支持他们开发的新的协议!不过呢他们又丢不下自己的面子让微软帮他们做。呵呵,打肿脸充胖子,这号人没有救了!!没有救了! :D :D :D :D :D :D :D :D :D :D
听说老虎会吃人,所以从没想过去摸老虎的屁股。:( :(
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2003-02-28 15:39
就是就是,给位大虾帮忙思考一下,谢谢先
slightflying
nicol
驱动大牛
驱动大牛
  • 注册日期2001-11-28
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2003-03-03 16:29
自定义协议。
在很多的防火墙的控制上都采用了这样的手段。

不知道你的自定义协议要做到什么程度。是要和TDI结合还是直接和自己的应用程序结合。

不管是TDI类还是PACKET类,都可以自己封包。
MINI驱动不会管你传给它的数据包是什么内容。你只需要按照格式把包填充好,然后发给它就可以了。

==寂寞骆驼==
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2003-03-04 21:58
自定义协议。
在很多的防火墙的控制上都采用了这样的手段。

不知道你的自定义协议要做到什么程度。是要和TDI结合还是直接和自己的应用程序结合。

不管是TDI类还是PACKET类,都可以自己封包。
MINI驱动不会管你传给它的数据包是什么内容。你只需要按照格式把包填充好,然后发给它就可以了。

 

我现在就是这么想,只是不敢肯定而已,谢谢你的指点,我正这么做,我定义的协议可能要绕过TDI,直接和应用程序结合,毕竟TDI我也不熟悉,如果大虾能有好的例子给一个,比如如何封包,我就非常感谢。
slightflying
nicol
驱动大牛
驱动大牛
  • 注册日期2001-11-28
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2003-03-05 16:07
wincap就是一个很好的例子。
可以自定义发包。
里面有源代码是和自己的应用层直接结合。
==寂寞骆驼==
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
29楼#
发布于:2003-03-06 09:31
wincap就是一个很好的例子。
可以自定义发包。
里面有源代码是和自己的应用层直接结合。

哪里有这个源代码下载呀,望大虾告知
slightflying
cyf_rich
驱动牛犊
驱动牛犊
  • 注册日期2002-03-14
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2003-03-06 09:58
[quote]你得到的是受到的报文还是发送的报文??

如何得到正在往外发送的报文的?


to mikeluo:你的意思 是进来的报文和发出的报文不一样是吗?? [/quote]

如果在协议层里,不管是发送还是接受的数据都会经过receive函数,所以要区分是往外发的,还是接受进来的就不容易了.........
ooze
驱动牛犊
驱动牛犊
  • 注册日期2001-09-26
  • 最后登录2004-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
31楼#
发布于:2003-03-06 10:10
win2000/ntddk/src/network/ndis/packet的例子就可以自己发包,
testapp.c里面处理send时,只给了一个广播的mac地址,这么看来,应该可以自己定义数据报格式了?只要负责接受的一方可以解释?
Be a true hacker of Windows NT alike
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
32楼#
发布于:2003-03-06 10:49
win2000/ntddk/src/network/ndis/packet的例子就可以自己发包,
testapp.c里面处理send时,只给了一个广播的mac地址,这么看来,应该可以自己定义数据报格式了?只要负责接受的一方可以解释?

这个我也试过了,改掉源程序里面那个广播地址为一个已知的MAC地址,我在另一台机上就能收到它发过来的数据包,我现在不明白的地方是如果是大数据量的发送,我要把它封装成多帧,这个封装和重组的过程该怎么做
slightflying
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
33楼#
发布于:2003-03-06 10:53
[quote][quote]你得到的是受到的报文还是发送的报文??

如何得到正在往外发送的报文的?


to mikeluo:你的意思 是进来的报文和发出的报文不一样是吗?? [/quote]

如果在协议层里,不管是发送还是接受的数据都会经过receive函数,所以要区分是往外发的,还是接受进来的就不容易了......... [/quote]
receive函数好像只负责接收低层的数据包吧,发送是调用ndissend函数吧
slightflying
cyf_rich
驱动牛犊
驱动牛犊
  • 注册日期2002-03-14
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
34楼#
发布于:2003-03-06 18:16
receive函数好像只负责接收低层的数据包吧,发送是调用ndissend函数吧 [/quote]
没有错呀。。。发送是调用ndissend函数,但是当NDISSEND执行完后,调用完NDISSEND后,数据还是会走RECEIVE函数。。。。所以说不管RECEIVE还是NDISSEND的数据都是走RECEIVE函数。。所以才不好区分呀。。。
cyf_rich
驱动牛犊
驱动牛犊
  • 注册日期2002-03-14
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
35楼#
发布于:2003-03-06 18:20
[quote]win2000/ntddk/src/network/ndis/packet的例子就可以自己发包,
testapp.c里面处理send时,只给了一个广播的mac地址,这么看来,应该可以自己定义数据报格式了?只要负责接受的一方可以解释?

这个我也试过了,改掉源程序里面那个广播地址为一个已知的MAC地址,我在另一台机上就能收到它发过来的数据包,我现在不明白的地方是如果是大数据量的发送,我要把它封装成多帧,这个封装和重组的过程该怎么做 [/quote]
以太网的传输是靠的MAC地址,封装和重组的过程你具体参考一下RFC的参考资料吧,有得啃的了,好好学习一下包结构
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
36楼#
发布于:2003-03-06 21:19
receive函数好像只负责接收低层的数据包吧,发送是调用ndissend函数吧

没有错呀。。。发送是调用ndissend函数,但是当NDISSEND执行完后,调用完NDISSEND后,数据还是会走RECEIVE函数。。。。所以说不管RECEIVE还是NDISSEND的数据都是走RECEIVE函数。。所以才不好区分呀。。。 [/quote]
是吗,我看了NDIS.H里面对NDISSEND的定义,好像调用的是sendhandle吧,数据走receive函数你是从什么资料上看到的,
如果是那样的话,确实就有点麻烦了
slightflying
cyf_rich
驱动牛犊
驱动牛犊
  • 注册日期2002-03-14
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
37楼#
发布于:2003-03-07 10:14
[quote]receive函数好像只负责接收低层的数据包吧,发送是调用ndissend函数吧

没有错呀。。。发送是调用ndissend函数,但是当NDISSEND执行完后,调用完NDISSEND后,数据还是会走RECEIVE函数。。。。所以说不管RECEIVE还是NDISSEND的数据都是走RECEIVE函数。。所以才不好区分呀。。。 [/quote]
是吗,我看了NDIS.H里面对NDISSEND的定义,好像调用的是sendhandle吧,数据走receive函数你是从什么资料上看到的,
如果是那样的话,确实就有点麻烦了 [/quote]

数据走receive函数,那是当写协议层时设置的接收方式为混杂模式的话,不信的话,你可以对PACKET的例子进行测试,我说的是协议层就是这样的,如果做中间驱动或HOOK的话就没有问题了,
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
38楼#
发布于:2003-03-07 10:30
我就知道是设成混杂模式了,这样只能做sniffer,别的什么都不能干,
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
39楼#
发布于:2003-03-07 10:31
我就知道是设成混杂模式了,这样只能做sniffer,别的什么都不能干,那是已经达到网卡以后网卡有给你的一个副本,原来的packet已经发出去了。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
游客

返回顶部