阅读:1961回复:9
如何构造ndiswan包
从ddk的doc看,以及抓的包来看,应该是ether 包
但是如何构造呢? 主要是前面 6+6 的网络地址 从抓的发送包来看,他的源地址不是ndiswan的地址,目的更不明白,或许是wan nic的编号?? 请各位大侠指点... |
|
最新喜欢:baoyib... |
沙发#
发布于:2003-02-22 10:31
另外,在ndiswan上如果用arp协议是否可以用来解决上面的地址问题
|
|
板凳#
发布于:2003-02-24 08:49
拜托,给点提示先.....
|
|
地板#
发布于:2003-02-24 09:29
关于ndiswan包如何构造还是先看一下ppp协议,或者你拨号上网抓一下包看看。
|
|
|
地下室#
发布于:2003-02-24 11:41
从实际抓的包数据(拨号及adsl虚拟拨号),
以及ddk的文档,都可以看出ndiswan确实是ether格式的数据 做ip数据分析到还可以 目前的问题在如何构造上,关键是ether开始的地址问题 至于ppp的格式倒是好找,但好像在ndiswan和 ppp 的 nic通讯才使用, ndiswan照书上说是一个im 不知还有好的想法或文档等等... 不胜感谢! |
|
5楼#
发布于:2003-02-27 11:15
看资料是:“NDISWAN uses simple HDLC framing”
winxp下有个例子:isdnwan,注解很细。 没实际接收/发送过这种包,说的就不准了(ndiswan是以后的事了...): 说是ether包应该是不确切的。在miniport层应该是将ip包打包成HDLC帧,发送出去。使用MiniportWanSend PROTOCOL层没看到过具体针对广域网的资料和例子(并不像MINIPORT有专门的一部分描述广域网),估计在接收是除了HeadBuffer\\HeaderBufferSize和一般的ehter包不同(即HeaderBufferSize!=14byte),LookAheadBuffer里面应该是标准的ip包了。 [编辑 - 2/27/03 by kaput] |
|
|
6楼#
发布于:2003-02-28 17:27
附上一个发往ndiswan的实际数据
00000000 56 B5 20 00 1F 00 00 00 0E 00 00 00 08 00 45 00 V.............E. 00000010 02 64 06 1E 40 00 FF 06 D5 46 DA 46 C9 93 D8 EF .d..@....F.F.... 00000020 21 65 B4 C1 00 50 01 F2 D9 91 FC AE 82 D9 50 18 !e...P........P. 00000030 19 6A 36 1E 00 00 47 45 54 20 2F 73 65 61 72 63 .j6...GET./searc 00000040 68 3F 71 3D 25 45 34 25 42 38 25 41 44 25 45 35 h?q=%E4%B8%AD%E5 00000050 25 39 42 25 42 44 25 45 37 25 42 45 25 38 45 25 %9B%BD%E7%BE%8E% 00000060 45 35 25 41 35 25 42 33 26 68 6C 3D 7A 68 2D 43 E5%A5%B3&hl=zh-C 00000070 4E 26 6C 72 3D 26 69 65 3D 55 54 46 2D 38 26 6F N&lr=&ie=UTF-8&o 00000080 65 3D 55 54 46 2D 38 26 73 74 61 72 74 3D 32 30 e=UTF-8&start=20 00000090 26 73 61 3D 4E 20 48 54 54 50 2F 31 2E 31 0D 0A &sa=N.HTTP/1.1.. 000000A0 41 63 63 65 70 74 3A 20 69 6D 61 67 65 2F 67 69 Accept:.image/gi 000000B0 66 2C 20 69 6D 61 67 65 2F 78 2D 78 62 69 74 6D f,.image/x-xbitm 000000C0 61 70 2C 20 69 6D 61 67 65 2F 6A 70 65 67 2C 20 ap,.image/jpeg,. 000000D0 69 6D 61 67 65 2F 70 6A 70 65 67 2C 20 61 70 70 image/pjpeg,.app 000000E0 6C 69 63 61 74 69 6F 6E 2F 76 6E 64 2E 6D 73 2D lication/vnd.ms- 000000F0 65 78 63 65 6C 2C 20 61 70 70 6C 69 63 61 74 69 excel,.applicati 00000100 6F 6E 2F 6D 73 77 6F 72 64 2C 20 2A 2F 2A 0D 0A on/msword,.*/*.. 00000110 52 65 66 65 72 65 72 3A 20 68 74 74 70 3A 2F 2F Referer:.http:// 00000120 77 77 77 2E 67 6F 6F 67 6C 65 2E 63 6F 6D 2F 73 www.google.com/s 00000130 65 61 72 63 68 3F 71 3D 25 45 34 25 42 38 25 41 earch?q=%E4%B8%A 00000140 44 25 45 35 25 39 42 25 42 44 25 45 37 25 42 45 D%E5%9B%BD%E7%BE 00000150 25 38 45 25 45 35 25 41 35 25 42 33 26 69 65 3D %8E%E5%A5%B3&ie= 00000160 55 54 46 2D 38 26 6F 65 3D 55 54 46 2D 38 26 68 UTF-8&oe=UTF-8&h 00000170 6C 3D 7A 68 2D 43 4E 26 6C 72 3D 0D 0A 41 63 63 l=zh-CN&lr=..Acc 00000180 65 70 74 2D 4C 61 6E 67 75 61 67 65 3A 20 7A 68 ept-Language:.zh 00000190 2D 63 6E 0D 0A 41 63 63 65 70 74 2D 45 6E 63 6F -cn..Accept-Enco 000001A0 64 69 6E 67 3A 20 67 7A 69 70 2C 20 64 65 66 6C ding:.gzip,.defl 000001B0 61 74 65 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A ate..User-Agent: 000001C0 20 4D 6F 7A 69 6C 6C 61 2F 34 2E 30 20 28 63 6F .Mozilla/4.0.(co 000001D0 6D 70 61 74 69 62 6C 65 3B 20 4D 53 49 45 20 35 mpatible;.MSIE.5 000001E0 2E 35 3B 20 57 69 6E 64 6F 77 73 20 39 38 29 0D .5;.Windows.98). 000001F0 0A 48 6F 73 74 3A 20 77 77 77 2E 67 6F 6F 67 6C .Host:.www.googl 00000200 65 2E 63 6F 6D 0D 0A 43 6F 6E 6E 65 63 74 69 6F e.com..Connectio 00000210 6E 3A 20 4B 65 65 70 2D 41 6C 69 76 65 0D 0A 43 n:.Keep-Alive..C 00000220 6F 6F 6B 69 65 3A 20 50 52 45 46 3D 49 44 3D 30 ookie:.PREF=ID=0 00000230 66 30 36 32 35 32 31 36 33 61 35 36 36 65 39 3A f06252163a566e9: 00000240 54 4D 3D 31 30 34 33 31 32 38 37 33 30 3A 4C 4D TM=1043128730:LM 00000250 3D 31 30 34 33 31 32 38 37 33 30 3A 53 3D 51 6F =1043128730:S=Qo 00000260 50 2D 58 2D 43 6E 57 74 58 61 62 59 74 56 0D 0A P-X-CnWtXabYtV.. 00000270 0D 0A .. |
|
7楼#
发布于:2003-06-30 14:07
我碰到和楼主同样的问题。
楼主想问的是绑定在 NDISWANIP 设备上的协议驱动 (passthru 或者 tcpip) 该怎么构造一个包让 NDISWANIP 发出去。对于 passthru 来说一切好办, 受到上面传下来的就转发就可以了。但是 TCPIP 模块究竟是怎么构造要让 NDISWANIP 发的包的以太网 头呢? 我看了一下,从 tcpip->ndiswanip 的包(外出) src ethernet address: BA 4D 20 00 xx 00 dst ethernet address: 00 00 xx 00 00 00 这里 xx 从 1 开始,每重新拨号一次就加 1。 从 ndiswanip->tcpip 的包(收到的) src ethernet address: 00 00 xx 00 00 00 dst ethernet address: BA 4D 20 00 xx 00 实际访问的 ip 不影响以太网头中的地址。 但是,仅仅这些信息还是不够。 究竟哪里可以找到 windows 2000 tcpip 模块 和 ndiswan 模块接口的详细说明呢? |
|
8楼#
发布于:2003-06-30 16:04
你有没有观察错误??就是那两个mac地址的顺序,
这个mac是ndiswan在拨号成功以后提交给协议层的。 |
|
|
9楼#
发布于:2003-06-30 18:01
嘿嘿,刚好让我弄反了:)
ndiswan在拨号成功以后提交给协议层一个 MAC 地址,这个 MAC 地址 ndiswan 是怎么确定的?从电信的RAS 服务器获得? Windows 内部自定? 这个值是固定的,还是 ndiswan 随机 定的?ndiswan 又是如何提交给上层的呢?通过什么 OID 呢? 谢谢。。。 |
|