用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧Visual C++

超cool !!!!! 截获WINSOCKET

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 20:31:10
 


实用技巧

截获WINSOCKET

福州大学自动化研究所
林毅

---- TCP/IP协议是目前各网络操作系统主要的通讯协议,也是 INTERNET的通讯协议,WIN95/NT平台提供了TCP/IP协议的实现 函数库WINSOCKET(WSOCKET.DLL)动态库,因而可以利用WINSOCKET 编写基于TCP/IP协议的应用系统。(UNIX平台提供BSD-SOCKET)

---- 在实际应用开发中,我们总希望在调用正常的WINSOCKET接口 函数时,先进行各自的特殊处理,如对于开发基于WIN95/NT平台 的VPN客户端软件时,我们希望应用信息在发送前即在调用SEND函 数时,先对信息进行加密后再发送。又如有的应用系统调用CONNECT 函数进行连接请求,我们需要截获此调用,插入我们自己的身份认证。 模块,只有合法的身份,才可以调用正常的CONNECT函数,而非法的 身份则不进行CONNECT调用。因而需要开发一种截获WINSOCKET函数调用 的方法(INTERCEPT WINSOCKET),使在进行WINSOCK正常函数调用之前, 使其先调用我们的身份认证模块,加解密模块。由于在WIN95/NT平台 WINSOCKET是以动态连接库(DLL)形式提供的,应而使各种应用系统在 进行TCP/IP协议通讯时,无须任何修改,就先调用我们的应用模块, 实现应用的透明性。

---- 一般要截获动态库(DLL)的调用,可以用HOOK(钩子技术),或外包DLL 技术,即将原来的DLL库改名(如将WINSOCK库WSOCK32.DLL改为A.DLL), 新建一个DLL库,WSOCKET32.DLL,在新的DLL库中调用旧的DLL库。

---- 以下给出了利用VISUAL C++实现的截获WINSOCK的应用程序的源代码。Zip 4KB

---- 先将WINSOCK库WSOCK32.DLL该名为AAA.DLL,WSOCK32.AAA

---- 利用VISUAL C++创建一个DLL项目 WSOCK32.DLL

---- 目前加入的模块为一个日志处理。

 


 


Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:14,843.75000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号