感谢 Oleg Gdalevich 和 CSDN 用户 zyg0(影子)对本文(程序)所做的贡献
本文中引用的RFC文档内容归原作者所有
转载本文请标明出处
本文作者:吴滂
本文中提及的程序可在 枕善居 http://www.mndsoft.com/blog/blogview.asp?logID=494 下载
关于用vb的winsock穿透代理的讨论归讨论,一直没有什么源代码放出,现在我就放源出来,省的某些人拿这所谓的"技术"去骗钱.
由于缺乏测试环境,本程序只在我自己编写的代理模拟器上测试过,其结果和腾讯QQ,MSN,网易泡泡穿越该模拟器时得出的结果基本一致.因此,代码可能有错误的地方,请各位有条件的用户自行改正,请见谅!
首先,是基础知识,也就是RFC文档.这个是必看内容.我的程序就是基于这些文档写出.下面是各RFC的连接,为了准确,我先提供英文版的连接,在下面的介绍中再把关键部分翻译成中文.另外,要纠正一个错误.国内很多文章说socks5代理的用户名/密码校验标准在 RFC 1928里有说明,其实这是一个完全错误的说法(我很怀疑写那文章的人有没有看过RFC),socks5用户名/密码校验标准其实是在 RFC 1929 里面说明的.
RFC 1928 - socks5 代理标准
RFC 1929 - socks5 代理用户名/密码校验标准
RFC ???? - socks4 代理标准
RFC 2616 - HTTP1.1 标准
我们现在直入正题:先说socks5的TCP穿透(有了这个例子大家自己照这可以写UDP穿透)
首先和代理服务器连接-直接用winsock去connect指定的地址端口(通常是1080)即可.然后进入细节商议阶段.
细节商议--无用户名/密码校验
RFC 1928 中对于细节商议的第一步是这样描述的:
The client connects to the server, and sends a version
identifier/method selection message:
+----+----------+----------+
关键词:VB6中运用Winsock穿越各种代理的完成(TCP协议)