| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
服务导航 我要发布 主力频道 空间域名 精华收集 服务器出租 黑客培训 光盘刻录 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> 培训 >> 认证考核 >> Linux认证 >> 正文 用户登录 新用户注册
Linux安装和配置Sock5代理           ★★★ 【字体:
Linux下成功安装和配置Sock5代理过程
作者:佚名 文章来源:本站原创 点击数: 更新时间:2008-2-2
  1.首先从网络上找到 socks5-v1.0r11.tar.gz ,还有一个是补丁包,那个包没有下,所以有什么用我不知道。
 
  2.讲socks5-v1.0r11.tar.gz解压倒文件夹,利用下面这个命令,其实这几步网络上的资源很丰富,但我这里力求详细和全面。
 
  解压上述压缩包,执行tar xvzf socks5-v1.0r11.tar.gz
 
  解压缩后在目录下产生一个 socks5-v.1.0r11的目录。
 
  3.进入该目录,运行。/configure .这一步我顺利通过。
 
  4.接着运行make,在编译的过程中遇到了问题,让我花了好长时间,在编译clients/ftp/ftp.c文件时,在command函数处出现问题,提示说arargs方法在gcc4.1.2中已经过时,不能用了。但是网上我没有找到可用的解决方法。所以只有自己解决,具体问题是varargs.h和stdarg.h的不兼容,就是说在处理不确定个数的参数的时候方法不同,现在的gcc已经用了stdarg方法,已经不用ararg的方法。两者的差异在于,va_start()函数的参数个数不同,格式也不一样,下面我同时列给出我修改的代码和原来的代码:
 
  原来的代码:
  
#include 
....
int command(va_alist) va_dcl {
va_list ap;
char *fmt;
int r;
Sig_t oldintr;

abrtflag = 0;
if (debug) {
printf("---> ");
va_start(ap);
fmt = va_arg(ap, char *);
if (strncmp("PASS ", fmt, 5) == 0)
printf("PASS XXXX");
else 
vfprintf(stdout, fmt, ap);
va_end(ap);
printf("\n");
fflush(stdout);
}
if (cout == NULL) {
perror ("No control connection for command");
code = -1;
return (0);
}
oldintr = Signal(SIGINT, cmdabort);
va_start(ap);
fmt = va_arg(ap, char *);
vfprintf(cout, fmt, ap);
va_end(ap);
fflush(cout);
cpend = 1;
r = getreply(!strcmp(fmt, "QUIT"));
Signal(SIGINT, oldintr);
if (abrtflag) {
kill(getpid(),SIGINT);
}
return(r);
}
  修改过的代码:

//#include 
#include 


....
/*VARARGS*/
int command(const char *args,...) {
va_list ap;
char *fmt;
int r;
Sig_t oldintr;

abrtflag = 0;
if (cout == NULL) {
perror ("No control connection for command");
code = -1;
return (0);
}
oldintr = Signal(SIGINT, cmdabort);
fmt = args;
va_start(ap,args);
// fmt = va_arg(ap, char *);
vfprintf(cout, fmt, ap);
va_end(ap);
fflush(cout);
cpend = 1;
r = getreply(!strcmp(fmt, "QUIT"));
Signal(SIGINT, oldintr);
if (abrtflag) {
kill(getpid(),SIGINT);
}
return(r);
}

  这个函数修改过以后,后面还有一个文件clients/telnet/commands.c中的call()函数也要做类是的修改。
 
  这里我推介大家看看有关va_start(),va_end的文章;想更深层的可以看看标准c语言中的va函数的用法
责任编辑:章新艳  联系方式  Email:章新艳
电话:51228163
  • 上一篇培训:

  • 下一篇培训:
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关培训
    Linux操作系统下挂载SAN资源
    RHEL5系统下配置YUM源的方法
    Linux认证基本知识介绍
    Linux与UNIX的关系
    RHEL5系统下配置YUM源的方法
    Linux认证基本知识介绍
    Linux与UNIX的关系
    ADSL利用NAT实现共享
    Linux系统下内存详细解析
    Linux系统telnet配置方法
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号