阅读:2823回复:17
真诚求教 Huyg 版主有关 NAT 和 VPN 的起步问题。
我在驱动开发和 NDIS 方面绝对是新手,可是现在实习(我大四)单位的领导让我做个 NAT 出来,我在网上查阅这方面的资料已经一个多星期了,可才刚刚有了一点点眉目,所以心里很着急,我不奢望您能给出源代码,您只要给我讲一下做 NAT 用哪种方法比较好一些(NDIS IM?TDI?98DDK 的 Packet32?2kDDK 的 Passthru?Hook NDIS?),大致的原理是什么?需要注意些什么?
可能您体会不到我现在的心情,我确实很着急,我现在只能给这么多分,当然,还可以在开贴给。 真诚希望您能帮我!!!谢谢!!! |
|
最新喜欢:![]() |
沙发#
发布于:2002-04-15 13:44
补充一下:
我要做的这个东西主要是用于 Win 9x 平台。 如果要求既要用于 Win 9x 又要用于 Win NT,2K平台呢? - - - - - - - - - - - - - - - - - - - - - - - - - - - - 希望您能在百忙之中抽出一点时间来回复一下,万分感谢!!! |
|
板凳#
发布于:2002-04-15 14:20
引用:
我要做的这个东西主要是用于 Win 9x 平台。 如果要求既要用于 Win 9x 又要用于 Win NT,2K平台呢? ////////////// 个人觉得Win 9x与 NT,2K在驱动模型这方面,有较大的差别,只能分别开发vxd及sys,本站的wincap为很好的列子。 [编辑 - 4/15/02 作者: magicw] |
|
|
地板#
发布于:2002-04-15 14:37
既然是这样,那就先针对 Win 9x 平台吧。
magicw,你说的 wincap 的具体位置在哪里,不是那个 WinPcap 开发包吧?(http://winpcap.polito.it/) 你说的这个 wincap 能完成我说的 NAT 应用吗? 谢谢回复!!! |
|
地下室#
发布于:2002-04-15 16:43
引用: 如果你真的没有搞清楚什么是NAT和WINCAP的实现原理, 那么请不要乱说。 |
|
|
5楼#
发布于:2002-04-15 16:50
我在驱动开发和 NDIS 方面绝对是新手,可是现在实习(我大四)单位的领导让我做个 NAT 出来,我在网上查阅这方面的资料已经一个多星期了,可才刚刚有了一点点眉目,所以心里很着急,我不奢望您能给出源代码,您只要给我讲一下做 NAT 用哪种方法比较好一些(NDIS IM?TDI?98DDK 的 Packet32?2kDDK 的 Passthru?Hook NDIS?),大致的原理是什么?需要注意些什么? 说句老实话,如果你说的是真的,那么我建议你对你在毕业之前 做好这个9x的nat不抱太大希望。我想你实习的单位领导如果 不是脑子里面灌了水的话,他不太可能真的指望你能够做出来。 据我所知,完整的,free的source没有。而你又是驱动的新手。 我猜想领导只是想看看你学习新东西的能力,如果这涉及到你毕业 学位的话,你不用担心,如果涉及到你毕业后的单位的话,你也 不用担心,做不出来也不着急,慢慢来吧。只要你答辩的时候能够 告诉你的老师,你做了哪些研究就行了。 PS:在9X下,比较现实的方法就是HOOK_DEVICE_SERVICE。 大致的原理就是hook ndis function。 |
|
|
6楼#
发布于:2002-04-15 17:38
太好了,斑竹终于出现了!
Huyg,您好。 首先谢谢您的指点,我说的这个任务不是我的毕业设计,是单位领导布置的一个任务,跟您说的一样:他并没有限定要我什么时候做出来,但是这个阶段以来我一直感觉进展很慢。 由于我手头没有什么好的参考资料,更重要的是没有一位“过来人”指点,所以一直在“黑暗中摸索”,可能这是每个驱动新手都有的感觉吧?! 您能抽时间简单的说一下 HOOK_DEVICE_SERVICE 的步骤吗(伪码等等),这样我也好有个继续下去的方向。 Hook NDIS Function 跟 API Hook 的道理是不是有点象?事先截到将要传给 NDIS Function 的包,我们处理过后(改 IP 头等等)再把它送给 NDIS Function? 很感谢您的回复,因为四处碰壁跟盲目摸索的感觉真的不好受!!! |
|
7楼#
发布于:2002-04-15 21:57
太好了,斑竹终于出现了! 关于这个技术,你需要看得就是去看9x ddk中的 _hook_device_service条目的定义和说明。 然后,你就知道应该hook的大约是ndissend之类。 如果你需要source参考,可以参看本站的pcausa的98_im, 也可以看本站的文章,vpn source。 但是,我还是要说一句,完整的nat真的不好做,特别是 对于ftp这种需要两个端口的协议。 |
|
|
8楼#
发布于:2002-04-15 22:19
十分感谢斑竹指点,我马上就去看 Hook_Device_Service !
我知道这个网站不久,请问斑竹您说的“pcausa 的 98_im”在哪里?告诉个大概方向就行了,我会自己去找的。 唉,难做也得做啊!这是工作... ... 以后有什么不懂的地方还是要麻烦斑竹您的,有劳! |
|
9楼#
发布于:2002-04-15 22:27
对了,突然想到一个问题:为什么做 NAT 这种应用就是用 Hook NDIS 好呢?为什么用其他方法就不太合适?有什么道理吗?
记得侯捷的书里说过:一种东西只会使用,而不明白其中的道理,实在不高明! |
|
10楼#
发布于:2002-04-16 14:01
谢谢斑竹,我找到 PCAUSA 的 NDIS PIM 9X 了,在:
http://www.pcausa.com/ndispim9x/Default.htm |
|
11楼#
发布于:2002-04-16 14:10
对了,突然想到一个问题:为什么做 NAT 这种应用就是用 Hook NDIS 好呢?为什么用其他方法就不太合适?有什么道理吗? 其他方法只要能做,那么也是可以的,不过9x系统中我还没有 想到别的方法。 98的话,当然也可以用imd来做,但是不是太容易。 不能在应用层或tdi层做的原因是,nat必须在router之下, 否则一切都路由掉了,还nat什么? |
|
|
12楼#
发布于:2002-04-16 17:22
引用:
-------------------------------------------------------------------------------- 引用: -------------------------------------------------------------------------------- 引用: 我要做的这个东西主要是用于 Win 9x 平台。 如果要求既要用于 Win 9x 又要用于 Win NT,2K平台呢? ////////////// 个人觉得Win 9x与 NT,2K在驱动模型这方面,有较大的差别,只能分别开发vxd及sys,本站的wincap为很好的列子。 [编辑 - 4/15/02 作者: magicw] -------------------------------------------------------------------------------- 如果你真的没有搞清楚什么是NAT和WINCAP的实现原理, 那么请不要乱说。 --------------------------------------------------------------------------------- 抗议! 本人所说的只是针对9x及nt的驱动方面有不同,并以WINCAP为列说明之。并无提到一点NAT和WINCAP的实现原理(这方面我的确不懂!)。 我只是想说明 //////////////////////// 如果要求既要用于 Win 9x 又要用于 Win NT,2K平台呢? //////////////////////// 不太可能。从这个角度而我不认为有什么错??? 只为一片好意。 |
|
|
13楼#
发布于:2002-04-17 11:31
谢谢斑竹帮忙!!!
我现在已经决定从修改 PCAUSA 的 PIM 源代码入手来实现我的这个 NAT 应用了,有了大家的帮助,我终于看见一点路了! 再问几个弱智问题: (1) NAT 代理肯定要在一台同时拥有网卡和上网设备的机器上跑,现在假设那个上网设备是 Modem,问题是我可以通过 NDIS Hook 截获由网卡传送的 IP 包,那又如何截获通过 Modem 传送的 IP 包呢? (2) PCAUSA PIM 里面那个 PCAIPLCE 例子用的是静态 VxD,系统启动的时候加载,能不能做成动态的呢?启动 NAT 服务就加载 VxD,退出 NAT 服务就卸载 VxD。 如果不能的话是否跟 Hook 的时机有关呢? 如果能的话用什么方法可以实现,CreateFile? |
|
14楼#
发布于:2002-04-17 19:46
edust:
在pcausa上pim源码是免费的吗?贴出来看看吧,我也正为此困惑 |
|
15楼#
发布于:2002-04-18 10:44
对,http://www.pcausa.com/ndispim9x/Default.htm 上面的源代码不是免费的,但是本站有:
相关下载 -> 特别提供 -> 第 2 页 -> PCAUSA 的 NDIS 源代码 呵呵,一下子省了好几百美元!!! 真是很感谢这里的站长和斑竹们!!! 我现在还是个穷学生,如果我工作以后就是搞驱动开发的话我一定交费注册个高级会员,为支持这个站点,也为了自己确实的方便!!! |
|
16楼#
发布于:2002-04-19 09:15
斑竹你在哪里啊?
请抽点时间回复一下我的问题,帮我一把好吗。 万分感谢!!! |
|
17楼#
发布于:2002-04-21 18:19
怎么给分?
|
|