LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1159|回复: 7

lumaqq 2005 socks5 patch

[复制链接]
发表于 2005-11-22 18:59:18 | 显示全部楼层 |阅读模式
修改的文件为
jql_net/src/edu/tsinghua/lumaqq/qq/net/Socks5Proxy.java
参考了qq的发送格式。

84,92c84
<   /**是否需要验证?
<     * socks5 协议比较诡异,
<     * 还是根据是否传入了用户名和密码来决定是否验证
<     * 如果数据发送的是05 02 00 02
<     * 代理服务器返回的就会是05 02
<     * 然后就会出错
<     */
<   protected boolean NeedVerify;
<   
---
>
102,103c94
<       NeedVerify = false;
<       if(u != null){
---
>       if(u != null)
105,106d95
<         NeedVerify = true;
<       }
122,123c111
<       NeedVerify = false;
<       if(u != null){
---
>       if(u != null)
125,126d112
<         NeedVerify = true;
<       }
146,148c132,134
<            .put((byte)0x1)
<         .put(NeedVerify?AUTH_USERNAME_PASSWORD:AUTH_NONE);     
<      
---
>            .put((byte)0x2)
>            .put(AUTH_NONE)
>            .put(AUTH_USERNAME_PASSWORD);

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2005-11-22 21:21:27 | 显示全部楼层
你的改进是什么,对比的结果是什么
回复 支持 反对

使用道具 举报

发表于 2005-11-22 21:28:52 | 显示全部楼层
你这个patch用什么生成的,我用eclipse导入不了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-23 00:15:20 | 显示全部楼层
修改说明:
原来的代码里面,
在建立tcp的socks5代理协商过程中,
发送的是05 02 00 02,
这个时候socks5代理服务器回应的代码是05 02
(假设服务器同时支持密码验证和不用密码验证)

假设我设置的socks5代理服务器不需要用户名和密码验证(但是支持两种验证方式),
那么发送的过程是05 02 00 02
回应05 02
然后发送05 0 0(因为没有用户名和密码)
然后服务器因为接收到无效的用户名和密码就断开连接了

修改后是根据有没有填写用户名来发送
05 01 00还是05 01 02

那个所谓的patch是diff出来的。-.-
回复 支持 反对

使用道具 举报

发表于 2005-11-23 00:23:09 | 显示全部楼层
直接把那个文件给我

那你改了之后效果如何?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-23 01:51:09 | 显示全部楼层
测试通过
edu.tsinghua.lumaqq.qq.net
Socks5Proxy.java

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2005-11-23 09:26:58 | 显示全部楼层
about对话框里面想用什么名字?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-23 13:06:40 | 显示全部楼层
starboy@freecity
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表