该文被密码保护。 阅读全文
posted @ 2022-11-04 15:35 信易达 阅读(988) 评论(2) 推荐(0) 编辑
摘要: 这里所说的局域网内的所有设备通过代理上网,并不是在每台设备上安装某个代理软件然后再通过代理服务端来上网。而是所有这些设备的网关IP设置到某个主机上,这样所有设备的网络数据都会转发到这个主机上。而这个主机的软件再通过代理服务端转发所有这些设备的网络数据。 这个主机与NAT路由器很像,但是又与NAT路由 阅读全文
posted @ 2022-11-04 15:29 信易达 阅读(1189) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章中,描述了windows7以上平台下NDIS协议驱动的开发过程。本文将描述NDIS协议驱动的其中一个用途,用于实现一个介于应用层和驱动层的混合的NAT程序。 NAT路由程序,这个名字可能比较陌生,但是一说到路由器(这里主要说的是家用和公司用的具备NAT功能的路由器 ),能把家里或者公司里 阅读全文
posted @ 2022-11-04 15:27 信易达 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 这里讨论的都是基于WIN7以上平台,NDIS 6.0以上版本的网络驱动。 做个驱动的目的,是因为很早之前,我使用 TDI 和 NDIS5.1 框架的passthru中间层驱动,实现的基于应用层的NAT程序,之所以说是基于应用层,是把passthru所有网络通讯数据包转发到应用层来处理,在应用层NAT 阅读全文
posted @ 2022-11-04 15:22 信易达 阅读(936) 评论(0) 推荐(0) 编辑
摘要: 接上文。上文所说只要挂载其中的6个WFP过滤点,就可以截获IP层的所有数据包。再把截获的数据包转发到应用层,应用层处理之后,再发给内核驱动,经过这样的过程,就完成一个数据包的处理过程。IP数据包到达应用层之后,我们就可以随心所欲的实现某些功能。比如做流量分析,可以细化到端口和具体IP等,可以做NAT 阅读全文
posted @ 2022-11-04 15:19 信易达 阅读(607) 评论(1) 推荐(0) 编辑
摘要: WFP(Windows Filtering Platform)驱动框架,也许很多人都不熟悉,然而提到 TDI 驱动,可能许多人都熟悉。WFP是在WIN7以上系统中TDI 的替代框架,提供了更加强大的内核网络数据包的过滤,拦截,修改等诸多功能。其实在很早的一篇文章介绍win7的内核网络驱动框架时候,简 阅读全文
posted @ 2022-11-04 15:18 信易达 阅读(2564) 评论(0) 推荐(1) 编辑
摘要: 了解windows平台内部网络堆栈实现架构,对于我们开发 NDIS驱动,TDI驱动,WSK驱动,WFP驱动等网络驱动更有帮助。因为windows并不是开源系统,不像linux那样可以从源代码中详细了解网络堆栈的实现流程,所以只能从MSDN文档,WDK驱动开发包的实例代码,以及网络上零碎的资料来做个大 阅读全文
posted @ 2022-11-04 15:16 信易达 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 我们在做网络编程时候,大都使用的是TCP或者UDP协议的套接字,下边这样的代码就创建了一个TCP或UDP的套接字int fd = socket(AF_INET, SOCK_STREAM,0); /// TCPint fd = socket(AF_NET, SOCK_DGRAM, 0 ); /// U 阅读全文
posted @ 2022-11-04 15:14 信易达 阅读(377) 评论(0) 推荐(0) 编辑
摘要: NAT,早前的几篇文章中说过这么一个内容,是大量存在于中国网络中的隐身英雄,没有它,大部分人都无法在网络世界畅游。 因为我一直使用自己开发的NAT网关程序来上网,最近使用VPN拨号,发现PPTP拨号无法拨号成功,一开始还以为是GFW封网。后来研究PPTP协议,才知道PPTP协议需要NAT经过特殊处理 阅读全文
posted @ 2022-11-04 15:10 信易达 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 以下代码是整理出来完成这些功能的 两个实现函数。 ///获得进程名 NTSTATUS get_process_name(int pid, PWCHAR* out_fullpath, PWCHAR* out_name ) { typedef NTSTATUS (*xxQUERY_INFO_PROCES 阅读全文
posted @ 2022-11-04 15:08 信易达 阅读(609) 评论(0) 推荐(0) 编辑
摘要: 举个正在使用的可能大家都比较熟悉的例子: 360 的安全卫士里,有个流量防火墙的功能,它可以监视每个进程的流量情况,可以限制上传下载速度,等等。他的驱动部分的就是一个 TDI Filter 驱动。 TDI Filter ,这是个快被微软淘汰的驱动模式,但是为了兼容,又不得不使用的驱动。是因为新的Wi 阅读全文
posted @ 2022-11-04 15:07 信易达 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 中间驱动所做的事情:中间驱动把从上层驱动传递下来的数据包发到应用程序,应用程序处理之后再负责发回到中间驱动,中间驱动再接着发到网卡中间驱动接收从网卡传递上来的数据包,把它发送到应用层,应用程序处理之后再发回到中间驱动,中间驱动再接着投递给上层驱动。NDIS中间驱动原理什么的,就不在这里赘述了,对驱动 阅读全文
posted @ 2022-11-04 15:03 信易达 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 在windows平台下,利用NDIS中间驱动实现NAT。在其他平台实现NAT,也是同样的原理,唯一不同的是对网卡数据包的读取和写入操作是与平台相关的。 而叫人蛋疼的是,对windows 平台下的直接操作网卡的实现是各种平台中最复杂的。 比如Linux下,内核态下设置简单的钩子函数即可拦截网卡数据包, 阅读全文
posted @ 2022-11-04 15:02 信易达 阅读(114) 评论(0) 推荐(0) 编辑
摘要: NAT,网络地址翻译。可能大家并不知道是啥玩意,但是它就在你的身边默默的做着贡献。只是大家没留意到而已。 比如公司局域网里,要上互联网,需要NAT,网吧里需要NAT,家庭网络为了多台机器能上网,需要NAT校园网也需要NAT,公共场所免费WIFI,也有NAT,一个拥有很多用户的ISP服务商,也需要NA 阅读全文
posted @ 2022-11-04 15:00 信易达 阅读(139) 评论(0) 推荐(0) 编辑