<?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>:: Sola &#38; Luna :: Album of the Shining Days &#187; IT</title>
	<atom:link href="http://www.solaluna.cn/tag/it/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.solaluna.cn</link>
	<description>輝きが溢れる日々を、ともに、創る～ShyujikouとLovetwomixのブログ・音楽クリエーターユニット「連鎖調律」公式サイト～</description>
	<lastBuildDate>Sat, 21 Jan 2012 09:25:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[翻译]Android系统手机破解和刷机的基础知识</title>
		<link>http://www.solaluna.cn/2010/10/22/1275/</link>
		<comments>http://www.solaluna.cn/2010/10/22/1275/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 05:13:16 +0000</pubDate>
		<dc:creator>Shyujikou</dc:creator>
				<category><![CDATA[Comment | 评星品辰]]></category>
		<category><![CDATA[Technology | 技术]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[手机]]></category>

		<guid isPermaLink="false">http://www.solaluna.cn/?p=1275</guid>
		<description><![CDATA[自从夫人买了Motorola Milestone，就彻底加入Android家族了。由于买的时候本身就是刷过第三方固件的机器，已经Root过，因此再刷其它的固件也很方便。昨天在CyanogenMod的Wiki上面逛，发现一篇不错的入门文章，里面讲了很多一般刷机教程不大涉及的基础知识，觉得挺有意思就花了点时间翻译了一下，原文链接：http://wiki.cyanogenmod.com/index.php?title=Overview_of_Modding Android系统手机破解和刷机的基础知识 写这篇文章的目的是要帮助同学们（不管是菜鸟还是老鸟）搞明白，当你在按照论坛上一些文章一步步刷机的时候，到底是在做些什么样的操作。 修改智能手机的软件并不是什么难事，不过你必须按部就班地做很多操作，而且你得注意一些细节。一般的刷机教程都会告诉你非常消息的操作步骤，不过你没办法从这些步骤中宏观地理解你到底在做些什么，于是当你遇到一些问题需要解决的时候便无从下手。这篇文章会向你解释一些基础知识，作为一般刷机教程的补充。 这篇文章的内容主要写给想刷CyanogenMOD系统的同学们，也就是说是针对Android系统的，不过和其它一些Unix类系统，比如WebOS和苹果iOS，也有相当多的共同之处。Windows系统和塞班（Symbian）就是另一个世界的东西了，除了硬件层面没什么区别之外，本文的其它内容都不能适用于这两个系统。 因为智能手机其实就是一个被压缩到口袋大小的微型电脑，所以本文的很多术语其实和PC中的东西大同小异。 1. 内存、闪存与SD卡 首先我们得知道大部分智能手机都有三种不同的存储器：内存（RAM）、内部NAND闪存以及一张可以替换的SD卡（从技术角度来说SD卡其实也是闪存，不过为了避免混淆我们在这里只把手机内部的存储空间称为闪存）。 内存的速度非常快，可读可写，但是当关机之后里面的内容就会消失，这和PC内存是一个概念。 内部NAND闪存中的内容在关机后不会消失，从闪存中读取数据速度很快，不过写入数据的速度较慢，你可以把它想象成是手机的系统盘。 闪存通常用来存放手机的操作系统（或者称为固件）。操作系统是一种程序，程序要想运行就必须先装载到内存中。闪存也用来保存一些下载的应用程序和一部分用户数据，比如电话本、短信以及应用程序的设定等。 SD卡通常用来作为用户的大容量存储器，保存照片和音乐等数据。SD卡也可以用来保存和装载新的（自定义的）操作系统，以便在刷机的过程中使用。 2. Android软件、启动与分区 任何Unix类系统的智能手机（通常指Android、WebOS和iOS）的闪存中都会包含系统内核、文件系统和系统的其它部分，而SD卡则被作为移动存储器挂载在文件系统的根目录下。 另外还有一个存储区域被称为引导程序（Bootloader），手机在开机或重启的时候都会读取这部分内容。引导程序负责找到并启动系统内核，系统内核会继续装载操作系统的其它部分。 当破解者准备Root一个新型号的手机，其中一个步骤就是要获取引导过程的控制权。你可以利用手机厂家留下来的开发模式或调试模式接口，或者可以干脆写入一个自定义的引导程序替换原有的引导程序，当然，新的引导程序必须能够兼容原有的功能，并且拥有获得引导控制权的能力。 讲完基本的，以下内容将仅针对Android系统了。 大多数Android手机（尤其是HTC的手机）上，引导程序分为两个阶段：IPL（初级引导程序）和SPL（次级引导程序）。IPL在Android设备上是被固化在芯片中无法修改的，不过SPL则是可以修改和替换的。 针对各种型号的手机，我们可以找到许多不同的自定义SPL。例如，G1出厂自带了一个SPL(00.95.0000)，而Android开发机(ADP1)中则自带Dream工程机的 SPL(00.95.3000)，而HardSPL(10.95.3000)和DangerSPL(1.33.2005)是分别由ADP1和Magic工程机的SPL修改而来的版本，这些修改后的SPL可以用来引导非Google签名过的Android版本。 对于G1(HTC Dream)来说，要刷最新版本的CyanogenMOD需要先刷DangerSPL，DangerSPL会修改闪存的分区结构，以便手机的闪存有足够的空间来容纳Android 2.x。（DangerSPL会从cache分区中拿出一部分空间用于扩充system和data分区，具体内容会在下面分区的章节涉及） 其它型号的手机可能需要不同的SPL来执行引导过程，也有一些型号的手机可以在不替换原有SPL的情况下进行Root。 另外，在固件的一个特殊区域包含了一个叫做Recovery Image（一般称为恢复模式）的微型操作系统。在恢复模式中可以引导一些系统更新程序，这些程序可以在恢复模式下修改闪存中其它部分的内容。因此破解者们就制作了一些自定义的恢复模式程序用来简化刷机的过程，常见的一些有Amon_RA和ClockworkMod等等。 2.1. 分区 Android闪存都被分成几个分区，通常情况下不同分区的内容都是独立更新的。Android的一般分区模式是这样的： splash1：手机的启动画面，是一张图片 boot：Linux内核和内存盘镜像 recovery：恢复模式镜像 system：操作系统的剩余部分 cache：恢复模式以及系统其它部分所使用的缓存空间 userdata：用户数据，比如电话本 除去日常的使用以外，一个普通的用户如果想要修改data或者cache分区中的数据，唯一的方法就是做擦除（wipe）操作，擦除操作一般是在安装新的或者重大升级版本的操作系统的时候，从恢复模式中进行。 一般来说，在刷机的时候必须按顺序刷写boot、recovery和system分区，这样才能保证自定义系统在每个阶段发挥其功能，并顺利引导你进行下面的步骤。一般来讲，刷recovery分区是Root的一部分，而boot和system分区则会在CyanogenMod安装过程中被刷写。 2.2. ROM ROM（只读存储器）这个词在智能手机圈子里有很多种含义，而在这个词被引入Android手机之后，其大部分常用的含义通常来说都是有些偏颇的。 内部闪存有时候也被称作ROM，尽管那闪存其实很明显是可写的（虽然system分区在通常情况下是作为只读分区挂载的），而且手机厂商的规格说明上面一般也这么写，大概他们认为用户不应该去修改闪存。如果你看到广告上面说一个手机有512MB RAM和768MB ROM，那768MB其实指的就是内部闪存。 更糟糕的是，破解者也使用ROM这个词作为“ROM镜像”的简称，ROM镜像是一个固件，用来刷写到内部闪存中替换操作系统的全部或者一部分。因此，你经常会听到他们说“往手机里刷一个ROM”。 鉴于这个词用得很混乱，你得学会搞清楚这个词在上下文中的意思，当然如果可能的话，还是尽量避免使用这个暧昧的词吧。 2.3. Root Root这个词，根据上下文也有几种不同的意思： 作为名词，Root是Unix/Linux类操作系统中管理员账号的用户名，不过在Android里面并没有用户名，只有用户ID，当然Android里面有管理员级别的权限设计。在厂商原装的Android中，管理员级别的权限被保留做系统自己使用，而在大多数第三方系统中，用户可以通过su命令获取Root权限从而执行任何命令。 作为动词，Root指为获取管理员权限而进行的操作。 作为名词的另外一个意思，Root也可以指文件系统的根目录，也就是最上面一层目录。你可以参考一些其它的文章来了解Unix/Linux文件系统结构，不过你要知道Android并不符合这些标准。对于一部手机这个整体来说，文件系统的根目录是“/”目录，如果你看到某些刷机教程上说把文件放在“SD卡的根目录”，在手机上面这个目录是“/sdcard/”或者“/nmt/phone”或者是你Windows里的可移动盘符（比如E:\，当你把手机以USB存储模式连接到电脑的时候），刷机教程上的这种说法只是提醒你不要把文件（例如update.zip）放在SD卡的某个文件夹下面，而不是让你真的放到“/”里面去。 3. [...]]]></description>
			<content:encoded><![CDATA[<p>自从夫人买了<a href="http://detail.zol.com.cn/cell_phone/index217980.shtml" target="_blank">Motorola Milestone</a>，就彻底加入Android家族了。由于买的时候本身就是刷过第三方固件的机器，已经Root过，因此再刷其它的固件也很方便。昨天在<a href="http://www.cyanogenmod.com" target="_blank">CyanogenMod</a>的Wiki上面逛，发现一篇不错的入门文章，里面讲了很多一般刷机教程不大涉及的基础知识，觉得挺有意思就花了点时间翻译了一下，原文链接：<a href="http://wiki.cyanogenmod.com/index.php?title=Overview_of_Modding" target="_blank">http://wiki.cyanogenmod.com/index.php?title=Overview_of_Modding</a></p>
<h2><strong>Android系统手机破解和刷机的基础知识</strong></h2>
<p>写这篇文章的目的是要帮助同学们（不管是菜鸟还是老鸟）搞明白，当你在按照论坛上一些文章一步步刷机的时候，到底是在做些什么样的操作。</p>
<p>修改智能手机的软件并不是什么难事，不过你必须按部就班地做很多操作，而且你得注意一些细节。一般的刷机教程都会告诉你非常消息的操作步骤，不过你没办法从这些步骤中宏观地理解你到底在做些什么，于是当你遇到一些问题需要解决的时候便无从下手。这篇文章会向你解释一些基础知识，作为一般刷机教程的补充。</p>
<p>这篇文章的内容主要写给想刷CyanogenMOD系统的同学们，也就是说是针对Android系统的，不过和其它一些Unix类系统，比如WebOS和苹果iOS，也有相当多的共同之处。Windows系统和塞班（Symbian）就是另一个世界的东西了，除了硬件层面没什么区别之外，本文的其它内容都不能适用于这两个系统。</p>
<p>因为智能手机其实就是一个被压缩到口袋大小的微型电脑，所以本文的很多术语其实和PC中的东西大同小异。</p>
<p><span id="more-1275"></span></p>
<h2>1. 内存、闪存与SD卡</h2>
<p>首先我们得知道大部分智能手机都有三种不同的存储器：内存（RAM）、内部NAND闪存以及一张可以替换的SD卡（从技术角度来说SD卡其实也是闪存，不过为了避免混淆我们在这里只把手机内部的存储空间称为闪存）。</p>
<p>内存的速度非常快，可读可写，但是当关机之后里面的内容就会消失，这和PC内存是一个概念。</p>
<p>内部NAND闪存中的内容在关机后不会消失，从闪存中读取数据速度很快，不过写入数据的速度较慢，你可以把它想象成是手机的系统盘。</p>
<p>闪存通常用来存放手机的操作系统（或者称为固件）。操作系统是一种程序，程序要想运行就必须先装载到内存中。闪存也用来保存一些下载的应用程序和一部分用户数据，比如电话本、短信以及应用程序的设定等。</p>
<p>SD卡通常用来作为用户的大容量存储器，保存照片和音乐等数据。SD卡也可以用来保存和装载新的（自定义的）操作系统，以便在刷机的过程中使用。</p>
<h2>2. Android软件、启动与分区</h2>
<p>任何Unix类系统的智能手机（通常指Android、WebOS和iOS）的闪存中都会包含系统内核、文件系统和系统的其它部分，而SD卡则被作为移动存储器挂载在文件系统的根目录下。</p>
<p>另外还有一个存储区域被称为引导程序（Bootloader），手机在开机或重启的时候都会读取这部分内容。引导程序负责找到并启动系统内核，系统内核会继续装载操作系统的其它部分。</p>
<p>当破解者准备Root一个新型号的手机，其中一个步骤就是要获取引导过程的控制权。你可以利用手机厂家留下来的开发模式或调试模式接口，或者可以干脆写入一个自定义的引导程序替换原有的引导程序，当然，新的引导程序必须能够兼容原有的功能，并且拥有获得引导控制权的能力。</p>
<p>讲完基本的，以下内容将仅针对Android系统了。</p>
<p>大多数Android手机（尤其是HTC的手机）上，引导程序分为两个阶段：IPL（初级引导程序）和SPL（次级引导程序）。IPL在Android设备上是被固化在芯片中无法修改的，不过SPL则是可以修改和替换的。</p>
<p>针对各种型号的手机，我们可以找到许多不同的自定义SPL。例如，G1出厂自带了一个SPL(00.95.0000)，而Android开发机(ADP1)中则自带Dream工程机的 SPL(00.95.3000)，而HardSPL(10.95.3000)和DangerSPL(1.33.2005)是分别由ADP1和Magic工程机的SPL修改而来的版本，这些修改后的SPL可以用来引导非Google签名过的Android版本。</p>
<p>对于G1(HTC Dream)来说，要刷最新版本的CyanogenMOD需要先刷DangerSPL，DangerSPL会修改闪存的分区结构，以便手机的闪存有足够的空间来容纳Android 2.x。（DangerSPL会从cache分区中拿出一部分空间用于扩充system和data分区，具体内容会在下面分区的章节涉及）</p>
<p>其它型号的手机可能需要不同的SPL来执行引导过程，也有一些型号的手机可以在不替换原有SPL的情况下进行Root。</p>
<p>另外，在固件的一个特殊区域包含了一个叫做Recovery Image（一般称为恢复模式）的微型操作系统。在恢复模式中可以引导一些系统更新程序，这些程序可以在恢复模式下修改闪存中其它部分的内容。因此破解者们就制作了一些自定义的恢复模式程序用来简化刷机的过程，常见的一些有Amon_RA和ClockworkMod等等。</p>
<h3>2.1. 分区</h3>
<p>Android闪存都被分成几个分区，通常情况下不同分区的内容都是独立更新的。Android的一般分区模式是这样的：</p>
<p>splash1：手机的启动画面，是一张图片<br />
boot：Linux内核和内存盘镜像<br />
recovery：恢复模式镜像<br />
system：操作系统的剩余部分<br />
cache：恢复模式以及系统其它部分所使用的缓存空间<br />
userdata：用户数据，比如电话本</p>
<p>除去日常的使用以外，一个普通的用户如果想要修改data或者cache分区中的数据，唯一的方法就是做擦除（wipe）操作，擦除操作一般是在安装新的或者重大升级版本的操作系统的时候，从恢复模式中进行。</p>
<p>一般来说，在刷机的时候必须按顺序刷写boot、recovery和system分区，这样才能保证自定义系统在每个阶段发挥其功能，并顺利引导你进行下面的步骤。一般来讲，刷recovery分区是Root的一部分，而boot和system分区则会在CyanogenMod安装过程中被刷写。</p>
<h3>2.2. ROM</h3>
<p>ROM（只读存储器）这个词在智能手机圈子里有很多种含义，而在这个词被引入Android手机之后，其大部分常用的含义通常来说都是有些偏颇的。</p>
<p>内部闪存有时候也被称作ROM，尽管那闪存其实很明显是可写的（虽然system分区在通常情况下是作为只读分区挂载的），而且手机厂商的规格说明上面一般也这么写，大概他们认为用户不应该去修改闪存。如果你看到广告上面说一个手机有512MB RAM和768MB ROM，那768MB其实指的就是内部闪存。</p>
<p>更糟糕的是，破解者也使用ROM这个词作为“ROM镜像”的简称，ROM镜像是一个固件，用来刷写到内部闪存中替换操作系统的全部或者一部分。因此，你经常会听到他们说“往手机里刷一个ROM”。</p>
<p>鉴于这个词用得很混乱，你得学会搞清楚这个词在上下文中的意思，当然如果可能的话，还是尽量避免使用这个暧昧的词吧。</p>
<h3>2.3. Root</h3>
<p>Root这个词，根据上下文也有几种不同的意思：</p>
<p>作为名词，Root是Unix/Linux类操作系统中管理员账号的用户名，不过在Android里面并没有用户名，只有用户ID，当然Android里面有管理员级别的权限设计。在厂商原装的Android中，管理员级别的权限被保留做系统自己使用，而在大多数第三方系统中，用户可以通过su命令获取Root权限从而执行任何命令。</p>
<p>作为动词，Root指为获取管理员权限而进行的操作。</p>
<p>作为名词的另外一个意思，Root也可以指文件系统的根目录，也就是最上面一层目录。你可以参考一些其它的文章来了解Unix/Linux文件系统结构，不过你要知道Android并不符合这些标准。对于一部手机这个整体来说，文件系统的根目录是“/”目录，如果你看到某些刷机教程上说把文件放在“SD卡的根目录”，在手机上面这个目录是“/sdcard/”或者“/nmt/phone”或者是你Windows里的可移动盘符（比如E:\，当你把手机以USB存储模式连接到电脑的时候），刷机教程上的这种说法只是提醒你不要把文件（例如update.zip）放在SD卡的某个文件夹下面，而不是让你真的放到“/”里面去。</p>
<h2>3. 基本的破解步骤</h2>
<p>安装一个第三方Android系统（比如CM）通常有以下4个基本步骤：</p>
<p>(1) 在Android中找到漏洞。好在这一步已经在大多数Android手机中实现了。某些情况下老版本中漏洞可能在新版本的Android中被修复了，所以有时候需要降级到老版本才能破解。</p>
<p>(2) 利用漏洞在手机上获取Root权限，这样你就能够修改闪存中的内容。</p>
<p>(3) 向闪存中刷入一个自定义的恢复模式镜像然后重启到恢复模式。恢复模式镜像会替换手机自带的版本并能够实现和原来一样的功能，只是自定义的恢复模式在刷系统时不会校验Google的签名。</p>
<p>(4) 利用恢复模式镜像向闪存中刷入你自己挑选的系统内核和镜像。这一步通常没什么风险，因为内核和系统通常被打包到一个update.zip文件中。一般来说，在刷入一个新的主版本时，或者由原厂系统刷到第三方系统时，你需要完全擦除手机的文件系统（尤其是用户数据），因为老版本的Android系统可能会以不同的方式保存系统设定等数据，留着这些数据可能会导致一些无法预料的后果。</p>
<p>在第4步的时候你才真正要安装CyanogenMOD，前面3步可能会稍微困难一些，不过当你刷好自定义的恢复模式镜像之后，你每次升级CyanogenMOD或者刷其它系统的时候就不必重复前面3步了。</p>
<h3>3.1. 获取Android手机的Root权限</h3>
<p>破解手机的一大阻力来自运营商（或者手机厂商），他们试图阻止用户去修改固件。运营商对此的解释是，他们不想让用户因为擅自修改手机固件引发各种问题从而增加电话客服的负担。当然，这种顾虑也是合情合理的，不过这个理由更像是一个故意使其合理化的借口。运营商想要控制你的手机，他们有自己的小算盘，比如说他们想限制用户的使用以便降低其网络负荷，或者他们往你的手机里装了一些你根本不想用的垃圾软件，你根本没办法删除，但是运营商却可以因此和他们的合作伙伴分成。</p>
<p>在运行Android等Unix类系统的智能手机上，防止用户修改系统是通过锁定闪存来实现的，修改闪存的内容只能通过Root权限来进行，但普通程序的用户代码没有这样的权限，这也就是为什么我们要破解手机必须先找到漏洞、后门或者其它隐藏路径来绕过厂商的封锁获取Root权限。</p>
<p>T-Mobile G1（世界上第一台Android手机）是一个经典的例子：最老版本的Android系统有一个Bug，你在硬件键盘上打的每一个字符都会“无意间”同时输入到一个Root权限的命令行上面。利用这个漏洞的方法是用硬件键盘输入“telnetd”，这条命令会启动一个早期Android版本上作为调试工具预装的Telnet服务。当启动了Telnet之后，你就可以通过任意一个Telnet客户端连接本机的23端口来获得一个Root权限的窗口。</p>
<p>Android 1.5及其以前的版本在蓝牙堆栈中有个漏洞，使得破解比前面那个方法更加容易（也就是所谓的一键Root）。有些运营商发布了一个补丁修复这个漏洞，也有些运营商干脆直接发布1.6升级包。最近，在2.2及以前版本的系统中又发现了一个漏洞，便诞生了一个Universal Androot方法。当然，这些漏洞也会对用户造成一定的安全隐患，所以我们在CyanogenMOD里面已经修复了这些已知的权限问题。</p>
<p>当厂商发现漏洞（大多数情况下是Android社区先发现）之后，在后续版本的固件中就会修复这些漏洞。不过通常情况下我们也可以降级到以前存在漏洞的系统版本，厂商和运营商无法禁止降级，因为这样就等于也封锁了厂商和运营商发布在线更新包的功能。</p>
<h3>3.2. 更新包的工作原理</h3>
<p>当你的运营商通知你现在发布了一个固件在线更新包，然后你在手机上确认了进行更新，其工作原理是这样的：</p>
<p>(1) 一个包含新固件的文件会被下载到手机上（通常是放在/cache分区）<br />
(2) 手机重启到恢复模式然后执行更新<br />
(3) 恢复模式里面的刷机程序擦除闪存中的某些特定区域，然后把新的固件复制进去<br />
(4) 手机重启到新版系统</p>
<p>破解手机会推翻上述流程，因为大多数第三方定制的Android系统都不会去检测官方的更新包。相应的，你可以把你自己的固件升级包放到SD卡上，然后通过破解过的不会校验签名的恢复模式来手动安装更新。当然，有些定制系统会提供一些简单的更新方式，你可以不用每次都手工刷入升级包，比如CyanogenMOD的RomManager。</p>
<h2>4. Radio固件</h2>
<p>大多数手机上都有一个特殊代码区域被称为“Radio固件”，Radio固件并不位于主内部闪存的任何分区中，而是在另外一个单独的闪存芯片里，那个芯片负责控制手机的无线电系统（RF），作为一个独立的系统运行在ARM9协处理器上，负责处理WiFi、移动网络数据（包括语音通话）、蓝牙、GPS以及一些声音的处理（DSP）。</p>
<p>这个细节非常重要，因为Radio固件必须和手机的SPL匹配，否则有可能让你的手机变砖，所以你必须要注意刷机的顺序。（完）</p>
<h2  class="related_post_title">相关文章 | Related Posts</h2><ul class="related_post"><li>2010/07/20 -- <a href="http://www.solaluna.cn/2010/07/20/1237/" title="HTC Desire视频播放FAQ">HTC Desire视频播放FAQ</a> (2)</li><li>2010/06/19 -- <a href="http://www.solaluna.cn/2010/06/19/1218/" title="Android体验谈">Android体验谈</a> (4)</li><li>2010/06/28 -- <a href="http://www.solaluna.cn/2010/06/28/1223/" title="随便写写~">随便写写~</a> (2)</li><li>2010/05/27 -- <a href="http://www.solaluna.cn/2010/05/27/1209/" title="3G">3G</a> (6)</li><li>2010/04/07 -- <a href="http://www.solaluna.cn/2010/04/07/1194/" title="不想被劫持？用Google DNS">不想被劫持？用Google DNS</a> (3)</li><li>2009/12/21 -- <a href="http://www.solaluna.cn/2009/12/21/1148/" title="技术帖，蛋好疼">技术帖，蛋好疼</a> (4)</li><li>2009/12/09 -- <a href="http://www.solaluna.cn/2009/12/09/1145/" title="从挖地道翻墙说开来">从挖地道翻墙说开来</a> (9)</li><li>2009/04/19 -- <a href="http://www.solaluna.cn/2009/04/19/990/" title="Linksys WRH54G变砖了=口=">Linksys WRH54G变砖了=口=</a> (6)</li><li>2009/03/22 -- <a href="http://www.solaluna.cn/2009/03/22/977/" title="有线通也敢跟老子斗-_,-！">有线通也敢跟老子斗-_,-！</a> (9)</li><li>2008/11/12 -- <a href="http://www.solaluna.cn/2008/11/12/834/" title="Windows已经25岁了，其实微软特别喜欢黑屏">Windows已经25岁了，其实微软特别喜欢黑屏</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.solaluna.cn/2010/10/22/1275/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>不想被劫持？用Google DNS</title>
		<link>http://www.solaluna.cn/2010/04/07/1194/</link>
		<comments>http://www.solaluna.cn/2010/04/07/1194/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 03:38:00 +0000</pubDate>
		<dc:creator>Shyujikou</dc:creator>
				<category><![CDATA[Diary | 日月絮语]]></category>
		<category><![CDATA[Technology | 技术]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[IT]]></category>

		<guid isPermaLink="false">http://www.solaluna.cn/2010/04/07/1194/</guid>
		<description><![CDATA[Google的DNS服务已经推出一段时间了，不过好像知道的人不多，所以写一篇东西来宣传一下。 先说说什么是DNS。DNS（域名服务器）就是一个电话簿，你输入浏览器的域名（比如www.google.com）就好比一个公司的名字，然后浏览器就自动去查他家的电话号码（IP地址），查到之后打给他，就这么简单。但是上网的人太多了，查电话的人也多，一个查号台显然忙不过来，于是DNS也有根服务器和若干分支服务器，他们之间会进行数据同步，当然这是一个很复杂的过程。普通用户一般不必关心DNS，因为电信服务商会自动提供给你该区域的DNS服务器给你用（即自动获取DNS地址），除非发生像2009年5月19日那次DNS引起的六省网络瘫痪那样的事故。 再说说什么是DNS劫持。有一天查号台的领导发文，说接上级通知，谷歌因为某些敏感词原因被河蟹了，凡是来查这个公司电话的，都报给他们百度的电话，结果不明真相的群众就全都中招了。我想大家都遇到过一件事，当你输入一个不存在的网址（比如.com打成了.con）时，浏览器自动跳到了114的页面，搜出一大堆不相关的结果，这其实也是一种劫持，因为查号台领导说，凡是查不到的，都报给他们114！流氓吧。 看到这里很多朋友都醒悟了，说那我不打这个流氓查号台不就行了么！那么就打Google查号台吧。官网上具体讲解了使用Google DNS解析服务的好处，比如速度快、结果准确、避免劫持等安全性增强等等，如何设置在上面也有详细的介绍，一般来说只要按下图设置即可（对不起我系统是英文版orz）： 顺便，如果是用路由器上网的，可以不用修改电脑的设置，在路由器里面应当有静态DNS地址的配置，在那里面改就OK了，当然不同品牌路由器有所不同，请自行尝试～。 相关文章 &#124; Related Posts2010/10/22 -- [翻译]Android系统手机破解和刷机的基础知识 (0)2010/02/12 -- 杯具，Gmail这下死得更快了 (1)2009/12/21 -- 技术帖，蛋好疼 (4)2009/12/09 -- 从挖地道翻墙说开来 (9)2009/04/19 -- Linksys WRH54G变砖了=口= (6)2009/03/22 -- 有线通也敢跟老子斗-_,-！ (9)2008/11/18 -- 我整个人都&#8220;Gamil&#8221;了 (2)2008/11/12 -- Windows已经25岁了，其实微软特别喜欢黑屏 (4)2008/11/10 -- Fedora 10 Cambridge 即将发布 (0)2008/09/01 -- 这东西，应该建议公司给每个人都刷一张 (5)]]></description>
			<content:encoded><![CDATA[<p>Google的DNS服务已经推出一段时间了，不过好像知道的人不多，所以写一篇东西来宣传一下。</p>
<p>先说说什么是DNS。DNS（域名服务器）就是一个电话簿，你输入浏览器的域名（比如<a href="http://www.google.com">www.google.com</a>）就好比一个公司的名字，然后浏览器就自动去查他家的电话号码（IP地址），查到之后打给他，就这么简单。但是上网的人太多了，查电话的人也多，一个查号台显然忙不过来，于是DNS也有根服务器和若干分支服务器，他们之间会进行数据同步，当然这是一个很复杂的过程。普通用户一般不必关心DNS，因为电信服务商会自动提供给你该区域的DNS服务器给你用（即自动获取DNS地址），除非发生像<a href="http://www.cnbeta.com/articles/84747.htm" target="_blank">2009年5月19日那次DNS引起的六省网络瘫痪</a>那样的事故。</p>
<p>再说说什么是DNS劫持。有一天查号台的领导发文，说接上级通知，谷歌因为某些敏感词原因被河蟹了，凡是来查这个公司电话的，都报给他们百度的电话，结果不明真相的群众就全都中招了。我想大家都遇到过一件事，当你输入一个不存在的网址（比如.com打成了.con）时，浏览器自动跳到了114的页面，搜出一大堆不相关的结果，这其实也是一种劫持，因为查号台领导说，凡是查不到的，都报给他们114！流氓吧。</p>
<p>看到这里很多朋友都醒悟了，说那我不打这个流氓查号台不就行了么！那么就打<a href="http://code.google.com/intl/en/speed/public-dns/" target="_blank">Google查号台</a>吧。官网上具体讲解了使用Google DNS解析服务的好处，比如速度快、结果准确、避免劫持等安全性增强等等，如何设置在上面也有详细的介绍，一般来说只要按下图设置即可（对不起我系统是英文版orz）：</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.solaluna.cn/wp-content/uploads/2010/04/image.png" width="437" height="386" /> </p>
<p>顺便，如果是用路由器上网的，可以不用修改电脑的设置，在路由器里面应当有静态DNS地址的配置，在那里面改就OK了，当然不同品牌路由器有所不同，请自行尝试～。</p>
<h2  class="related_post_title">相关文章 | Related Posts</h2><ul class="related_post"><li>2010/10/22 -- <a href="http://www.solaluna.cn/2010/10/22/1275/" title="[翻译]Android系统手机破解和刷机的基础知识">[翻译]Android系统手机破解和刷机的基础知识</a> (0)</li><li>2010/02/12 -- <a href="http://www.solaluna.cn/2010/02/12/1178/" title="杯具，Gmail这下死得更快了">杯具，Gmail这下死得更快了</a> (1)</li><li>2009/12/21 -- <a href="http://www.solaluna.cn/2009/12/21/1148/" title="技术帖，蛋好疼">技术帖，蛋好疼</a> (4)</li><li>2009/12/09 -- <a href="http://www.solaluna.cn/2009/12/09/1145/" title="从挖地道翻墙说开来">从挖地道翻墙说开来</a> (9)</li><li>2009/04/19 -- <a href="http://www.solaluna.cn/2009/04/19/990/" title="Linksys WRH54G变砖了=口=">Linksys WRH54G变砖了=口=</a> (6)</li><li>2009/03/22 -- <a href="http://www.solaluna.cn/2009/03/22/977/" title="有线通也敢跟老子斗-_,-！">有线通也敢跟老子斗-_,-！</a> (9)</li><li>2008/11/18 -- <a href="http://www.solaluna.cn/2008/11/18/837/" title="我整个人都&ldquo;Gamil&rdquo;了">我整个人都&ldquo;Gamil&rdquo;了</a> (2)</li><li>2008/11/12 -- <a href="http://www.solaluna.cn/2008/11/12/834/" title="Windows已经25岁了，其实微软特别喜欢黑屏">Windows已经25岁了，其实微软特别喜欢黑屏</a> (4)</li><li>2008/11/10 -- <a href="http://www.solaluna.cn/2008/11/10/829/" title="Fedora 10 Cambridge 即将发布">Fedora 10 Cambridge 即将发布</a> (0)</li><li>2008/09/01 -- <a href="http://www.solaluna.cn/2008/09/01/777/" title="这东西，应该建议公司给每个人都刷一张">这东西，应该建议公司给每个人都刷一张</a> (5)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.solaluna.cn/2010/04/07/1194/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>技术帖，蛋好疼</title>
		<link>http://www.solaluna.cn/2009/12/21/1148/</link>
		<comments>http://www.solaluna.cn/2009/12/21/1148/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 09:47:59 +0000</pubDate>
		<dc:creator>Shyujikou</dc:creator>
				<category><![CDATA[Comment | 评星品辰]]></category>
		<category><![CDATA[Technology | 技术]]></category>
		<category><![CDATA[BT]]></category>
		<category><![CDATA[DHT]]></category>
		<category><![CDATA[IT]]></category>

		<guid isPermaLink="false">http://www.solaluna.cn/2009/12/21/1148/</guid>
		<description><![CDATA[从这个月开始的封杀BT行动愈演愈烈，连本以为是属于小众资源的动漫BT站也接连倒下，只有某花园凭借其服务器位于美国的优势暂时幸免于难，不过迫于形势压力也更换了IP和域名，并且不对注册会员以外的访问者提供种子下载。但是，这并不能表示某花园（以下简称C4）就像其子项目U2一样成为一个封闭运营的P2P社区，毕竟U2是以流量、积分等规则来维持运转的，而C4本质上还是一个Free Leech的BT资源站，只不过在资源发布的方式上进行了改革，接下来我们就来看看这次改革的亮点吧。 首先要说一个事情，那就是原来著名BT资源站海盗湾宣布停止服务的时候，其站长表示，海盗湾停止服务意味着传统的Tracker方式的BT即将终结，而新的方式正在逐步普及。而这种新的方式就是DHT，Distributed Hash Table，简称蛋好疼。 在说蛋好疼之前我们先看看传统BT下载中的两个重要角色：种子和Tracker。Tracker是一个服务器，在很长一段时间里，即便是在现在，其主要工作方式还是通过HTTP协议，每一个下载者把自己的IP地址、端口、所下载的资源和已经完成/拥有的块列表等信息不断报告给Tracker，并通过Tracker拿到凡是连接在这台Tracker上的其它下载者报告的信息，这样一个下载者便通过这台Tracker找到了许许多多其它下载者，并和他们互相连接、交换手里的数据，以便完成一次下载。而种子，是一个后缀名为.torrent的文件，大小通常在100K上下，里面记录了该资源对应的Tracker服务器列表，以及这个资源包括的文件信息，还有每个数据块的Hash以便下载时进行校验和比对。 Tracker是一个重要的东西，没有Tracker我们便找不到其它的下载者，所谓P2P也就无从谈起了，但反过来说，等找到其它下载者之后，Tracker就变得没什么用了，因为我们的资源在其它下载者那里，而不在Tracker上。因此Tracker的位置很尴尬，因为一旦封杀了Tracker，BT下载就瘫痪了。如果可以不需要Tracker，就可以定位到其它下载者，那么我们就不必在意Tracker被封的问题了，因为BT下载再也不需要服务器了，而这种技术，就是DHT。 关于DHT，我们可以理解为一个分布式的网络，每一个下载者都是一个节点，我们通过一定的广播或其它方式，接入一个由许许多多下载者构成的分布式网络，从一个节点发现另外一些节点，并以此类推。在这个网络中，每一个节点都拥有一部分资源的Hash，大家集合起来就是一个Hash Table，从这个Hash Table中，就很容易根据一个资源的完整Hash找到有哪些节点拥有这个资源，这样一来，DHT就取代了Tracker的作用，而且不需要一台特定的服务器，这种思想叫做去中心化（Decentralization）。 那我们还有另外一个问题，那就是种子，如果没有一个资源网站来提供这些种子的下载也不行。于是有一种以文件内容（Hash）来定位资源的方式诞生了，它就是Magnet URI，一般我们叫它磁力链接。一个磁力链接看上去就像我们平常看到的网址差不多，比如这样的格式：magnet:?xt=urn:btih:5qobafufgw5rzzteppvypy6xgqr2awgb。它的主要部分其实就是btih:后面的那一串Hash，有了这个Hash，我们就可以从一个Hash Table（就比如刚才说到的DHT表）中，定位到一致的资源，而种子里面的文件名、块列表之类的信息，其实是下载者（做种者）的节点可以提供的，通过DHT找到做种者（当然，做种者也在通过DHT散布这些数据），然后拿到文件名和块列表，我们就有了一个完整种子文件所提供的所有数据了。当然也正是因为如此，通过Magnet URI下载一个资源的时候，要过一阵子才能显示出文件名等信息，这是因为你需要从DHT网络中寻找数据的碎片并拼合起来。 目前C4已经全面启用Magnet URI模式，打开一个资源，里面就是一个磁力链接，假设某天C4不存在了，我们还可以通过一个QQ群，或者一个论坛，或者一个邮件列表，来传播这些链接，这比传播种子文件要方便和安全多了。目前对这种模式支持最好的客户端是µTorrent，我想很多人都知道或者正在用，而且越来越多的客户端都在开始支持这一模式。P2P作为一种网络技术，本身并不存在善恶，而完全去中心化的P2P才是今后发展的方向，请同志们不要过分悲观绝望就是了，嗯。 相关文章 &#124; Related Posts2010/10/22 -- [翻译]Android系统手机破解和刷机的基础知识 (0)2010/04/07 -- 不想被劫持？用Google DNS (3)2009/12/09 -- 从挖地道翻墙说开来 (9)2009/04/19 -- Linksys WRH54G变砖了=口= (6)2009/03/22 -- 有线通也敢跟老子斗-_,-！ (9)2008/11/12 -- Windows已经25岁了，其实微软特别喜欢黑屏 (4)2008/11/10 -- Fedora 10 Cambridge 即将发布 (0)2008/09/01 -- 这东西，应该建议公司给每个人都刷一张 (5)2007/11/18 -- 关于MSN机器人的一点开发心得 (4)2007/11/10 -- 怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧 (2)]]></description>
			<content:encoded><![CDATA[<p>从这个月开始的封杀BT行动愈演愈烈，连本以为是属于小众资源的动漫BT站也接连倒下，只有某花园凭借其服务器位于美国的优势暂时幸免于难，不过迫于形势压力也更换了IP和域名，并且不对注册会员以外的访问者提供种子下载。但是，这并不能表示某花园（以下简称C4）就像其子项目U2一样成为一个封闭运营的P2P社区，毕竟U2是以流量、积分等规则来维持运转的，而C4本质上还是一个Free Leech的BT资源站，只不过在资源发布的方式上进行了改革，接下来我们就来看看这次改革的亮点吧。</p>
<p>首先要说一个事情，那就是原来著名BT资源站海盗湾宣布停止服务的时候，其站长表示，海盗湾停止服务意味着传统的Tracker方式的BT即将终结，而新的方式正在逐步普及。而这种新的方式就是DHT，Distributed Hash Table，简称蛋好疼。</p>
<p>在说蛋好疼之前我们先看看传统BT下载中的两个重要角色：种子和Tracker。Tracker是一个服务器，在很长一段时间里，即便是在现在，其主要工作方式还是通过HTTP协议，每一个下载者把自己的IP地址、端口、所下载的资源和已经完成/拥有的块列表等信息不断报告给Tracker，并通过Tracker拿到凡是连接在这台Tracker上的其它下载者报告的信息，这样一个下载者便通过这台Tracker找到了许许多多其它下载者，并和他们互相连接、交换手里的数据，以便完成一次下载。而种子，是一个后缀名为.torrent的文件，大小通常在100K上下，里面记录了该资源对应的Tracker服务器列表，以及这个资源包括的文件信息，还有每个数据块的Hash以便下载时进行校验和比对。</p>
<p>Tracker是一个重要的东西，没有Tracker我们便找不到其它的下载者，所谓P2P也就无从谈起了，但反过来说，等找到其它下载者之后，Tracker就变得没什么用了，因为我们的资源在其它下载者那里，而不在Tracker上。因此Tracker的位置很尴尬，因为一旦封杀了Tracker，BT下载就瘫痪了。如果可以不需要Tracker，就可以定位到其它下载者，那么我们就不必在意Tracker被封的问题了，因为BT下载再也不需要服务器了，而这种技术，就是DHT。</p>
<p>关于DHT，我们可以理解为一个分布式的网络，每一个下载者都是一个节点，我们通过一定的广播或其它方式，接入一个由许许多多下载者构成的分布式网络，从一个节点发现另外一些节点，并以此类推。在这个网络中，每一个节点都拥有一部分资源的Hash，大家集合起来就是一个Hash Table，从这个Hash Table中，就很容易根据一个资源的完整Hash找到有哪些节点拥有这个资源，这样一来，DHT就取代了Tracker的作用，而且不需要一台特定的服务器，这种思想叫做去中心化（Decentralization）。</p>
<p>那我们还有另外一个问题，那就是种子，如果没有一个资源网站来提供这些种子的下载也不行。于是有一种以文件内容（Hash）来定位资源的方式诞生了，它就是Magnet URI，一般我们叫它磁力链接。一个磁力链接看上去就像我们平常看到的网址差不多，比如这样的格式：<a href="magnet:?xt=urn:btih:5qobafufgw5rzzteppvypy6xgqr2awgb&amp;dn=%5B52wy%5D%5BDragon_Ball_Kai%5D%5B037%5D&amp;tr=http://share.xdmhy.net:8000/announce&amp;tr=http://share.xdmhy.net:8000/announce&amp;tr=udp://share.xdmhy.net:8000/announce&amp;tr=http://share.newdmhy.net:8000/announce&amp;tr=udp://share.newdmhy.net:8000/announce&amp;tr=http://bt.popgo.net:7456/announce&amp;tr=http://tracker.ktxp.com:7070/announce&amp;tr=http://tracker.ktxp.com:6868/announce&amp;tr=udp://tracker.ktxp.com:6868/announce&amp;tr=udp://tracker.ktxp.com:7070/announce&amp;tr=http://bt.ktkj.com:8080/announce&amp;tr=http://share.camoe.cn:8080/announce&amp;tr=http://tracker.dmhy.org:8000/announce&amp;tr=udp://tracker.dmhy.org:8000/announce&amp;tr=http://tk.greedland.net/announce&amp;tr=http://tk2.greedland.net/announce&amp;tr=http://nyaatorrents.info:7266/announce&amp;tr=http://nyaatorrents.info:3277/announce&amp;tr=http://tracker.levelup.cn:8080/announce">magnet:?xt=urn:btih:5qobafufgw5rzzteppvypy6xgqr2awgb</a>。它的主要部分其实就是btih:后面的那一串Hash，有了这个Hash，我们就可以从一个Hash Table（就比如刚才说到的DHT表）中，定位到一致的资源，而种子里面的文件名、块列表之类的信息，其实是下载者（做种者）的节点可以提供的，通过DHT找到做种者（当然，做种者也在通过DHT散布这些数据），然后拿到文件名和块列表，我们就有了一个完整种子文件所提供的所有数据了。当然也正是因为如此，通过Magnet URI下载一个资源的时候，要过一阵子才能显示出文件名等信息，这是因为你需要从DHT网络中寻找数据的碎片并拼合起来。</p>
<p>目前C4已经全面启用Magnet URI模式，打开一个资源，里面就是一个磁力链接，假设某天C4不存在了，我们还可以通过一个QQ群，或者一个论坛，或者一个邮件列表，来传播这些链接，这比传播种子文件要方便和安全多了。目前对这种模式支持最好的客户端是<a href="http://www.utorrent.com/" target="_blank">µTorrent</a>，我想很多人都知道或者正在用，而且越来越多的客户端都在开始支持这一模式。P2P作为一种网络技术，本身并不存在善恶，而完全去中心化的P2P才是今后发展的方向，请同志们不要过分悲观绝望就是了，嗯。</p>
<h2  class="related_post_title">相关文章 | Related Posts</h2><ul class="related_post"><li>2010/10/22 -- <a href="http://www.solaluna.cn/2010/10/22/1275/" title="[翻译]Android系统手机破解和刷机的基础知识">[翻译]Android系统手机破解和刷机的基础知识</a> (0)</li><li>2010/04/07 -- <a href="http://www.solaluna.cn/2010/04/07/1194/" title="不想被劫持？用Google DNS">不想被劫持？用Google DNS</a> (3)</li><li>2009/12/09 -- <a href="http://www.solaluna.cn/2009/12/09/1145/" title="从挖地道翻墙说开来">从挖地道翻墙说开来</a> (9)</li><li>2009/04/19 -- <a href="http://www.solaluna.cn/2009/04/19/990/" title="Linksys WRH54G变砖了=口=">Linksys WRH54G变砖了=口=</a> (6)</li><li>2009/03/22 -- <a href="http://www.solaluna.cn/2009/03/22/977/" title="有线通也敢跟老子斗-_,-！">有线通也敢跟老子斗-_,-！</a> (9)</li><li>2008/11/12 -- <a href="http://www.solaluna.cn/2008/11/12/834/" title="Windows已经25岁了，其实微软特别喜欢黑屏">Windows已经25岁了，其实微软特别喜欢黑屏</a> (4)</li><li>2008/11/10 -- <a href="http://www.solaluna.cn/2008/11/10/829/" title="Fedora 10 Cambridge 即将发布">Fedora 10 Cambridge 即将发布</a> (0)</li><li>2008/09/01 -- <a href="http://www.solaluna.cn/2008/09/01/777/" title="这东西，应该建议公司给每个人都刷一张">这东西，应该建议公司给每个人都刷一张</a> (5)</li><li>2007/11/18 -- <a href="http://www.solaluna.cn/2007/11/18/577/" title="关于MSN机器人的一点开发心得">关于MSN机器人的一点开发心得</a> (4)</li><li>2007/11/10 -- <a href="http://www.solaluna.cn/2007/11/10/575/" title="怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧">怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.solaluna.cn/2009/12/21/1148/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>从挖地道翻墙说开来</title>
		<link>http://www.solaluna.cn/2009/12/09/1145/</link>
		<comments>http://www.solaluna.cn/2009/12/09/1145/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 06:17:06 +0000</pubDate>
		<dc:creator>Shyujikou</dc:creator>
				<category><![CDATA[Diary | 日月絮语]]></category>
		<category><![CDATA[Technology | 技术]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.solaluna.cn/2009/12/09/1145/</guid>
		<description><![CDATA[从这个礼拜一开始，由于种种原因，公司的网络无法上Gmail了，之前由于https协议依然开放，Gmail还可以通过https的地址访问，但现在https似乎是遭到了证书拦截，无法使用，对于我这个用Gmail代管所有业务邮件的人来说简直是不可想象的事情，业务习惯被打乱是非常不爽的，这是我的底线，何况我不可能把所有的邮件从Gmail那边拿回来╮(╯_╰)╭。 既然如此那只好考虑翻墙，我们不是为了翻功夫网，用不着Tor、无界之类的东西，用VPN也行但有点大材小用，况且速度上也不太行，于是我用SSH开一个加密的数据转发通道到一台外面的服务器上，然后将SSH通道当做SOCKS代理来使用，这样一来我可以选择将某些访问用SSH通道进行转发，翻墙就实现了。 首先，找一台在外面的服务器，这个时候我想到了机战世界的Server（吊簌簌我对不起你XD）=v=用RDP登上去，先创建一个SSH专用的Windows账号，这个账号可以权限很低，可以没有RDP登录的权限，然后装一个OpenSSH for Windows，注意安装完了之后要自行用命令生成groups和passwd文件，具体方法在Readme里面都有，这样服务器的配置就好了，退出RDP。回到自己的电脑上，下载一个PuTTY，这是一个Windows上很好用的SSH客户端，就一个EXE文件免安装。启动PuTTY之后配置一个Profile，输入服务器的IP，端口是默认的22，类型是SSH，然后导航到Connections-&#62;SSH-&#62;Tunnels画面，这里我们添加一个转发用的端口，你随便想一个就行，比如7117，类型是Dynamic，保存这个Profile然后连接你的服务器，跳出Terminal窗口里面输入刚才在服务器上创建的SSH用账号和密码，跳出DOS提示符之后就说明已经登录进去了，这样一个通过SSH加密的数据转发通道就建好了。最后我们打开浏览器，因为要实现可控转发因此我推荐Firefox+FoxyProxy插件，在FoxyProxy里面配置一个新的Proxy，地址是本地（127.0.0.1），端口就是你刚开在PuTTY的转发端口，比如7117，类型选择SOCKS5a，然后在URL匹配模板里面输入你想要通过翻墙访问的URL匹配，比如“http*://mail.google.com/*”来匹配我的Gmail访问，这样就大功告成了～。当然，如果你的服务器在国外，用这种方法翻功夫网自然也不在话下。 我一直都觉得现在的公司里面花那么大力气和金钱去搞这种对终端的外网限制策略是一种很愚蠢的行为，即便是在技术不怎么发达的以前，如果一个员工真的想窃取点公司机密，你用技术手段也是不可能避免的，更不要说现在3G已经越来越便宜，手机已经越来越接近电脑终端的性能。如果说是怕因为MSN聊天、上SNS网站耽误工作的话，那更加是扯淡，如果一个员工因为MSN、上SNS导致耽误了工作进度，那只能说那个员工自己的人品有问题，缺乏工作责任感，这样的人，你不叫他上网他也不会给你好好工作，正如我一直认为网游本身是无害的——网游上瘾以至于犯罪的那些青少年大多都是家庭教育缺失的结果，别跟我说什么XX%的青少年犯罪起因是网游或者网络上瘾，这种统计都是狗屁，即便没有网游，那些人大多也会因为别的原因去犯别的罪，因为心灵空虚的话总要找一个什么来填。我不知道我们公司从今年3月开始搞这个深X服的一套硬件+软件+维护费花了多少钱，再加上以前的什么CWAT，搞到最后的结果只能是员工人手一只3G上网卡，外加所有人对公司的做法极度厌恶，有意思吗？有这些钱拿来干点什么不好，别忘了今年是多么惨不忍睹的业绩。 相关文章 &#124; Related Posts2010/10/22 -- [翻译]Android系统手机破解和刷机的基础知识 (0)2010/04/07 -- 不想被劫持？用Google DNS (3)2009/12/21 -- 技术帖，蛋好疼 (4)2009/04/19 -- Linksys WRH54G变砖了=口= (6)2009/03/22 -- 有线通也敢跟老子斗-_,-！ (9)2008/11/12 -- Windows已经25岁了，其实微软特别喜欢黑屏 (4)2008/11/10 -- Fedora 10 Cambridge 即将发布 (0)2008/09/01 -- 这东西，应该建议公司给每个人都刷一张 (5)2007/11/18 -- 关于MSN机器人的一点开发心得 (4)2007/11/10 -- 怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧 (2)]]></description>
			<content:encoded><![CDATA[<p>从这个礼拜一开始，由于种种原因，公司的网络无法上Gmail了，之前由于https协议依然开放，Gmail还可以通过https的地址访问，但现在https似乎是遭到了证书拦截，无法使用，对于我这个用Gmail代管所有业务邮件的人来说简直是不可想象的事情，业务习惯被打乱是非常不爽的，这是我的底线，何况我不可能把所有的邮件从Gmail那边拿回来╮(╯_╰)╭。</p>
<p>既然如此那只好考虑翻墙，我们不是为了翻功夫网，用不着Tor、无界之类的东西，用VPN也行但有点大材小用，况且速度上也不太行，于是我用SSH开一个加密的数据转发通道到一台外面的服务器上，然后将SSH通道当做SOCKS代理来使用，这样一来我可以选择将某些访问用SSH通道进行转发，翻墙就实现了。</p>
<p>首先，找一台在外面的服务器，这个时候我想到了机战世界的Server（吊簌簌我对不起你XD）=v=用RDP登上去，先创建一个SSH专用的Windows账号，这个账号可以权限很低，可以没有RDP登录的权限，然后装一个<a href="http://sshwindows.sourceforge.net/" target="_blank">OpenSSH for Windows</a>，注意安装完了之后要自行用命令生成groups和passwd文件，具体方法在Readme里面都有，这样服务器的配置就好了，退出RDP。回到自己的电脑上，下载一个<a href="http://www.putty.org/" target="_blank">PuTTY</a>，这是一个Windows上很好用的SSH客户端，就一个EXE文件免安装。启动PuTTY之后配置一个Profile，输入服务器的IP，端口是默认的22，类型是SSH，然后导航到Connections-&gt;SSH-&gt;Tunnels画面，这里我们添加一个转发用的端口，你随便想一个就行，比如7117，类型是Dynamic，保存这个Profile然后连接你的服务器，跳出Terminal窗口里面输入刚才在服务器上创建的SSH用账号和密码，跳出DOS提示符之后就说明已经登录进去了，这样一个通过SSH加密的数据转发通道就建好了。最后我们打开浏览器，因为要实现可控转发因此我推荐Firefox+FoxyProxy插件，在FoxyProxy里面配置一个新的Proxy，地址是本地（127.0.0.1），端口就是你刚开在PuTTY的转发端口，比如7117，类型选择SOCKS5a，然后在URL匹配模板里面输入你想要通过翻墙访问的URL匹配，比如“http*://mail.google.com/*”来匹配我的Gmail访问，这样就大功告成了～。当然，如果你的服务器在国外，用这种方法翻功夫网自然也不在话下。</p>
<p>我一直都觉得现在的公司里面花那么大力气和金钱去搞这种对终端的外网限制策略是一种很愚蠢的行为，即便是在技术不怎么发达的以前，如果一个员工真的想窃取点公司机密，你用技术手段也是不可能避免的，更不要说现在3G已经越来越便宜，手机已经越来越接近电脑终端的性能。如果说是怕因为MSN聊天、上SNS网站耽误工作的话，那更加是扯淡，如果一个员工因为MSN、上SNS导致耽误了工作进度，那只能说那个员工自己的人品有问题，缺乏工作责任感，这样的人，你不叫他上网他也不会给你好好工作，正如我一直认为网游本身是无害的——网游上瘾以至于犯罪的那些青少年大多都是家庭教育缺失的结果，别跟我说什么XX%的青少年犯罪起因是网游或者网络上瘾，这种统计都是狗屁，即便没有网游，那些人大多也会因为别的原因去犯别的罪，因为心灵空虚的话总要找一个什么来填。我不知道我们公司从今年3月开始搞这个深X服的一套硬件+软件+维护费花了多少钱，再加上以前的什么CWAT，搞到最后的结果只能是员工人手一只3G上网卡，外加所有人对公司的做法极度厌恶，有意思吗？有这些钱拿来干点什么不好，别忘了今年是多么惨不忍睹的业绩。</p>
<h2  class="related_post_title">相关文章 | Related Posts</h2><ul class="related_post"><li>2010/10/22 -- <a href="http://www.solaluna.cn/2010/10/22/1275/" title="[翻译]Android系统手机破解和刷机的基础知识">[翻译]Android系统手机破解和刷机的基础知识</a> (0)</li><li>2010/04/07 -- <a href="http://www.solaluna.cn/2010/04/07/1194/" title="不想被劫持？用Google DNS">不想被劫持？用Google DNS</a> (3)</li><li>2009/12/21 -- <a href="http://www.solaluna.cn/2009/12/21/1148/" title="技术帖，蛋好疼">技术帖，蛋好疼</a> (4)</li><li>2009/04/19 -- <a href="http://www.solaluna.cn/2009/04/19/990/" title="Linksys WRH54G变砖了=口=">Linksys WRH54G变砖了=口=</a> (6)</li><li>2009/03/22 -- <a href="http://www.solaluna.cn/2009/03/22/977/" title="有线通也敢跟老子斗-_,-！">有线通也敢跟老子斗-_,-！</a> (9)</li><li>2008/11/12 -- <a href="http://www.solaluna.cn/2008/11/12/834/" title="Windows已经25岁了，其实微软特别喜欢黑屏">Windows已经25岁了，其实微软特别喜欢黑屏</a> (4)</li><li>2008/11/10 -- <a href="http://www.solaluna.cn/2008/11/10/829/" title="Fedora 10 Cambridge 即将发布">Fedora 10 Cambridge 即将发布</a> (0)</li><li>2008/09/01 -- <a href="http://www.solaluna.cn/2008/09/01/777/" title="这东西，应该建议公司给每个人都刷一张">这东西，应该建议公司给每个人都刷一张</a> (5)</li><li>2007/11/18 -- <a href="http://www.solaluna.cn/2007/11/18/577/" title="关于MSN机器人的一点开发心得">关于MSN机器人的一点开发心得</a> (4)</li><li>2007/11/10 -- <a href="http://www.solaluna.cn/2007/11/10/575/" title="怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧">怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.solaluna.cn/2009/12/09/1145/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Linksys WRH54G变砖了=口=</title>
		<link>http://www.solaluna.cn/2009/04/19/990/</link>
		<comments>http://www.solaluna.cn/2009/04/19/990/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 14:48:03 +0000</pubDate>
		<dc:creator>Shyujikou</dc:creator>
				<category><![CDATA[Diary | 日月絮语]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[WRH54G]]></category>

		<guid isPermaLink="false">http://www.solaluna.cn/2009/04/19/990/</guid>
		<description><![CDATA[感觉上次刷的新版DD-WRT Firmware好像在BT的时候容易负载过大导致网速很慢甚至路由器失去响应，于是今天想要不还是刷一个最新的Beta版上去好了，没想到刷好之后重启，Power灯不断闪烁，HTTP和Telnet都无法连上=口=&#124;&#124;&#124; 变砖了……@_@ 话说，刚刚才知道英文里面真的有Brick这个说法，例如：I got my PSP bricked yesterday, anyone knows the way to unbrick it?不知道变砖这个词是舶来品呢，还是中文的影响力越来越大了-v-&#124;&#124;&#124; 好吧，眼前的问题是我的路由器怎么办，就算它不像PSP或者智能手机那么贵，变砖了总是一件很郁闷的事情orz看DD-WRT官方论坛的帖子，说是要用编程器直接插集成电路刷回去一刚=口=&#124;&#124;&#124;这台夸张了……不过经过俺不懈的努力，终于找到了一个简单的方法，看来CISCO还是给我们留了个活口，可以让砖头起死回生的orz 首先，去Linksys官网下载一个WRH54G的官方版Firmware，放到一个好访问的目录，比如C:\，命名为WRH54G.bin，我们要给路由器刷回去。 然后，拔掉路由器上所有的网线，拔掉电源，用一支笔按住Reset按钮，不要放开，插上电源，不要放开Reset，等4个LAN信号灯亮了又灭，放开Reset，这个时候应该看到Power信号灯开始以3-4-3-4交替闪烁。 现在插上一根LAN网线，连接上你的电脑，将电脑的IP手动设置为192.168.1.x，x不能是1，不然会和路由的IP冲突。 打开一个CMD窗口，输入代码：，回车。稍等片刻应该会提示传输成功之类的，这样你便可以松一口气了……过大概1分钟，路由器会自动Load你刚才传过去的官方Firmware启动，Power灯会变成常亮，这个时候你就可以通过HTTP方式访问路由器的设置界面了～ 说到底，按住Reset开机可以让路由器进入Recovery Mode，这个时候可以通过tftp注入一个可用的Firmware，用来替换不能用的，或者没刷完整的Firmware。 相关文章 &#124; Related Posts2009/03/22 -- 有线通也敢跟老子斗-_,-！ (9)2010/10/22 -- [翻译]Android系统手机破解和刷机的基础知识 (0)2010/04/07 -- 不想被劫持？用Google DNS (3)2009/12/21 -- 技术帖，蛋好疼 (4)2009/12/09 -- 从挖地道翻墙说开来 (9)2008/11/12 -- Windows已经25岁了，其实微软特别喜欢黑屏 (4)2008/11/10 -- Fedora 10 Cambridge 即将发布 (0)2008/09/01 -- 这东西，应该建议公司给每个人都刷一张 (5)2007/11/18 [...]]]></description>
			<content:encoded><![CDATA[<p>感觉上次刷的新版DD-WRT Firmware好像在BT的时候容易负载过大导致网速很慢甚至路由器失去响应，于是今天想要不还是刷一个最新的Beta版上去好了，没想到刷好之后重启，Power灯不断闪烁，HTTP和Telnet都无法连上=口=|||</p>
<p>变砖了……@_@</p>
<p>话说，刚刚才知道英文里面真的有Brick这个说法，例如：I got my PSP bricked yesterday, anyone knows the way to unbrick it?<img src='/images/em/XSK.gif' alt='XSK' />不知道变砖这个词是舶来品呢，还是中文的影响力越来越大了-v-|||</p>
<p>好吧，眼前的问题是我的路由器怎么办，就算它不像PSP或者智能手机那么贵，变砖了总是一件很郁闷的事情orz看DD-WRT官方论坛的帖子，说是要用编程器直接插集成电路刷回去一刚=口=|||这台夸张了……不过经过俺不懈的努力，终于找到了一个简单的方法，看来CISCO还是给我们留了个活口，可以让砖头起死回生的orz</p>
<p>首先，去Linksys官网下载一个WRH54G的官方版Firmware，放到一个好访问的目录，比如C:\，命名为WRH54G.bin，我们要给路由器刷回去。</p>
<p>然后，拔掉路由器上所有的网线，拔掉电源，用一支笔按住Reset按钮，不要放开，插上电源，不要放开Reset，等4个LAN信号灯亮了又灭，放开Reset，这个时候应该看到Power信号灯开始以3-4-3-4交替闪烁。</p>
<p>现在插上一根LAN网线，连接上你的电脑，将电脑的IP手动设置为192.168.1.x，x不能是1，不然会和路由的IP冲突。</p>
<p>打开一个CMD窗口，输入代码：
<pre class="brush: plain; title: ; notranslate">tftp –i 192.168.1.1 put C:WRH54G.bin</pre>
<p>，回车。稍等片刻应该会提示传输成功之类的，这样你便可以松一口气了……过大概1分钟，路由器会自动Load你刚才传过去的官方Firmware启动，Power灯会变成常亮，这个时候你就可以通过HTTP方式访问路由器的设置界面了～</p>
<p>说到底，按住Reset开机可以让路由器进入Recovery Mode，这个时候可以通过tftp注入一个可用的Firmware，用来替换不能用的，或者没刷完整的Firmware。</p>
<h2  class="related_post_title">相关文章 | Related Posts</h2><ul class="related_post"><li>2009/03/22 -- <a href="http://www.solaluna.cn/2009/03/22/977/" title="有线通也敢跟老子斗-_,-！">有线通也敢跟老子斗-_,-！</a> (9)</li><li>2010/10/22 -- <a href="http://www.solaluna.cn/2010/10/22/1275/" title="[翻译]Android系统手机破解和刷机的基础知识">[翻译]Android系统手机破解和刷机的基础知识</a> (0)</li><li>2010/04/07 -- <a href="http://www.solaluna.cn/2010/04/07/1194/" title="不想被劫持？用Google DNS">不想被劫持？用Google DNS</a> (3)</li><li>2009/12/21 -- <a href="http://www.solaluna.cn/2009/12/21/1148/" title="技术帖，蛋好疼">技术帖，蛋好疼</a> (4)</li><li>2009/12/09 -- <a href="http://www.solaluna.cn/2009/12/09/1145/" title="从挖地道翻墙说开来">从挖地道翻墙说开来</a> (9)</li><li>2008/11/12 -- <a href="http://www.solaluna.cn/2008/11/12/834/" title="Windows已经25岁了，其实微软特别喜欢黑屏">Windows已经25岁了，其实微软特别喜欢黑屏</a> (4)</li><li>2008/11/10 -- <a href="http://www.solaluna.cn/2008/11/10/829/" title="Fedora 10 Cambridge 即将发布">Fedora 10 Cambridge 即将发布</a> (0)</li><li>2008/09/01 -- <a href="http://www.solaluna.cn/2008/09/01/777/" title="这东西，应该建议公司给每个人都刷一张">这东西，应该建议公司给每个人都刷一张</a> (5)</li><li>2007/11/18 -- <a href="http://www.solaluna.cn/2007/11/18/577/" title="关于MSN机器人的一点开发心得">关于MSN机器人的一点开发心得</a> (4)</li><li>2007/11/10 -- <a href="http://www.solaluna.cn/2007/11/10/575/" title="怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧">怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.solaluna.cn/2009/04/19/990/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>有线通也敢跟老子斗-_,-！</title>
		<link>http://www.solaluna.cn/2009/03/22/977/</link>
		<comments>http://www.solaluna.cn/2009/03/22/977/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 09:47:09 +0000</pubDate>
		<dc:creator>Shyujikou</dc:creator>
				<category><![CDATA[Diary | 日月絮语]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[WRH54G]]></category>
		<category><![CDATA[囧]]></category>
		<category><![CDATA[有线通]]></category>

		<guid isPermaLink="false">http://www.solaluna.cn/2009/03/22/977/</guid>
		<description><![CDATA[闵行的新家装修开工了，所以搬到这边附近一个小区方便监工。 原来在浦东的有线通迁不过来，不是一个公司运营orz于是乎在这边先临时装3个月的有线通等搬过去再换ADSL。今天下午装有线通的小哥过来了，接好线之后让我拿电脑过来试，他用我电脑上了他们公司那个什么系统，找到我的订单填了啥啥然后提交了，然后把Modem重启一下，嗯可以上了（他给我测试居然打开的是开心网=口=……）。 我电脑平时是放在另一个房间，于是人走之后我把无线路由接上，发现上不去=口=……打开路由的配置界面发现拿不到IP地址，电脑直接插上就没问题，心想不会这就是传说中的MAC地址绑定吧，第一次插上去的终端的MAC地址被ISP强行绑定到你的账号上了，以后你就只能用你这台电脑上网，否则拿不到IP地址（为了不让你用路由器接好多台电脑上网嘛……），没想到这边有线通的IP这么黑，这种办法也用。 不过，跟老子斗，你还嫩的。 我的CISCO路由器早就被我刷了DD-WRT的Firmware，于是乎在DD-WRT无所不能的强大功能下，路由器的MAC地址被克隆成了我电脑的地址，重启路由器，顺利拿到IP了，哼哼，让你绑定我MAC地址，反正3个月以后我就跟你说拜拜了-_,-！ （额，经过洁癖同学的提醒，我今天试验了一下，果然，猫断电一段时间之后绑定的MAC地址就会释放，不用克隆MAC地址也能拿到IP了╮(╯_╰)╭） 相关文章 &#124; Related Posts2009/04/19 -- Linksys WRH54G变砖了=口= (6)2010/10/22 -- [翻译]Android系统手机破解和刷机的基础知识 (0)2010/04/07 -- 不想被劫持？用Google DNS (3)2010/01/19 -- 马桶杀手和9号线 (3)2009/12/21 -- 技术帖，蛋好疼 (4)2009/12/09 -- 从挖地道翻墙说开来 (9)2009/06/14 -- 耗子啊，我知道这个事情你也是受害者orz (19)2009/05/30 -- 果然Windows无处不在╮(╯_╰)╭ (3)2009/03/27 -- 欢乐的超老龄化社会 (7)2009/03/20 -- 就应该彻底断了抢座位的念头=口=&#124;&#124; (4)]]></description>
			<content:encoded><![CDATA[<p>闵行的新家装修开工了，所以搬到这边附近一个小区方便监工。</p>
<p>原来在浦东的有线通迁不过来，不是一个公司运营orz于是乎在这边先临时装3个月的有线通等搬过去再换ADSL。今天下午装有线通的小哥过来了，接好线之后让我拿电脑过来试，他用我电脑上了他们公司那个什么系统，找到我的订单填了啥啥然后提交了，然后把Modem重启一下，嗯可以上了（他给我测试居然打开的是开心网=口=……）。</p>
<p>我电脑平时是放在另一个房间，于是人走之后我把无线路由接上，发现上不去=口=……打开路由的配置界面发现拿不到IP地址，电脑直接插上就没问题，心想不会这就是传说中的MAC地址绑定吧，第一次插上去的终端的MAC地址被ISP强行绑定到你的账号上了，以后你就只能用你这台电脑上网，否则拿不到IP地址（为了不让你用路由器接好多台电脑上网嘛……），没想到这边有线通的IP这么黑，这种办法也用。</p>
<p>不过，跟老子斗，你还嫩的。</p>
<p>我的CISCO路由器早就被我刷了<a href="http://www.dd-wrt.com/" target="_blank">DD-WRT的Firmware</a>，于是乎在DD-WRT无所不能的强大功能下，路由器的MAC地址被克隆成了我电脑的地址，重启路由器，顺利拿到IP了，哼哼，让你绑定我MAC地址，反正3个月以后我就跟你说拜拜了-_,-！</p>
<p><font color="#ff0000">（额，经过洁癖同学的提醒，我今天试验了一下，果然，猫断电一段时间之后绑定的MAC地址就会释放，不用克隆MAC地址也能拿到IP了╮(╯_╰)╭）</font></p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="mac_clone" border="0" alt="mac_clone" src="http://www.solaluna.cn/wp-content/uploads/2009/03/mac-clone.png" width="474" height="375" /></p>
<h2  class="related_post_title">相关文章 | Related Posts</h2><ul class="related_post"><li>2009/04/19 -- <a href="http://www.solaluna.cn/2009/04/19/990/" title="Linksys WRH54G变砖了=口=">Linksys WRH54G变砖了=口=</a> (6)</li><li>2010/10/22 -- <a href="http://www.solaluna.cn/2010/10/22/1275/" title="[翻译]Android系统手机破解和刷机的基础知识">[翻译]Android系统手机破解和刷机的基础知识</a> (0)</li><li>2010/04/07 -- <a href="http://www.solaluna.cn/2010/04/07/1194/" title="不想被劫持？用Google DNS">不想被劫持？用Google DNS</a> (3)</li><li>2010/01/19 -- <a href="http://www.solaluna.cn/2010/01/19/1169/" title="马桶杀手和9号线">马桶杀手和9号线</a> (3)</li><li>2009/12/21 -- <a href="http://www.solaluna.cn/2009/12/21/1148/" title="技术帖，蛋好疼">技术帖，蛋好疼</a> (4)</li><li>2009/12/09 -- <a href="http://www.solaluna.cn/2009/12/09/1145/" title="从挖地道翻墙说开来">从挖地道翻墙说开来</a> (9)</li><li>2009/06/14 -- <a href="http://www.solaluna.cn/2009/06/14/1009/" title="耗子啊，我知道这个事情你也是受害者orz">耗子啊，我知道这个事情你也是受害者orz</a> (19)</li><li>2009/05/30 -- <a href="http://www.solaluna.cn/2009/05/30/1005/" title="果然Windows无处不在╮(╯_╰)╭">果然Windows无处不在╮(╯_╰)╭</a> (3)</li><li>2009/03/27 -- <a href="http://www.solaluna.cn/2009/03/27/980/" title="欢乐的超老龄化社会">欢乐的超老龄化社会</a> (7)</li><li>2009/03/20 -- <a href="http://www.solaluna.cn/2009/03/20/973/" title="就应该彻底断了抢座位的念头=口=||">就应该彻底断了抢座位的念头=口=||</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.solaluna.cn/2009/03/22/977/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Windows已经25岁了，其实微软特别喜欢黑屏</title>
		<link>http://www.solaluna.cn/2008/11/12/834/</link>
		<comments>http://www.solaluna.cn/2008/11/12/834/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 02:08:47 +0000</pubDate>
		<dc:creator>Shyujikou</dc:creator>
				<category><![CDATA[Comment | 评星品辰]]></category>
		<category><![CDATA[Technology | 技术]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.solaluna.cn/2008/11/12/834/</guid>
		<description><![CDATA[前两天Windows过了25岁生日，好吧基本上我和Windows是同龄人呀。今天看到网上一篇文章，回顾Windows历代版本的启动画面，顿时感到很怀念： Windows 95和98是那美丽经典的蓝天白云…… Windows XP就朴素很多了嗯…… 到了Vista和Windows Server 2008我实在看不懂了，彻底黑掉了orz原来微软现在特别喜欢黑屏啊…… 原文地址：http://www.cnbeta.com/articles/69514.htm 相关文章 &#124; Related Posts2010/10/22 -- [翻译]Android系统手机破解和刷机的基础知识 (0)2010/04/07 -- 不想被劫持？用Google DNS (3)2009/12/21 -- 技术帖，蛋好疼 (4)2009/12/09 -- 从挖地道翻墙说开来 (9)2009/05/30 -- 果然Windows无处不在╮(╯_╰)╭ (3)2009/04/19 -- Linksys WRH54G变砖了=口= (6)2009/03/22 -- 有线通也敢跟老子斗-_,-！ (9)2008/11/10 -- Fedora 10 Cambridge 即将发布 (0)2008/09/01 -- 这东西，应该建议公司给每个人都刷一张 (5)2007/11/18 -- 关于MSN机器人的一点开发心得 (4)]]></description>
			<content:encoded><![CDATA[<p>前两天Windows过了25岁生日，好吧基本上我和Windows是同龄人呀<img src='/images/em/XSK.gif' alt='XSK' />。今天看到网上一篇文章，回顾Windows历代版本的启动画面，顿时感到很怀念：</p>
<p>Windows 95和98是那美丽经典的蓝天白云……</p>
<p><img src="http://img2.zol.com.cn/product/20/206/ceVwCJFencP5U.jpg"/> </p>
<p>Windows XP就朴素很多了嗯……</p>
<p><img src="http://img2.zol.com.cn/product/20/213/ceV15Y6QGhN.jpg"/> </p>
<p>到了Vista和Windows Server 2008我实在看不懂了，彻底黑掉了orz原来微软现在特别喜欢黑屏啊<img src='/images/em/XSK.gif' alt='XSK' />……</p>
<p><img src="http://img2.zol.com.cn/product/20/214/cegLi3mEfuBWk.jpg"/> </p>
<p>原文地址：<a href="http://www.cnbeta.com/articles/69514.htm" target="_blank">http://www.cnbeta.com/articles/69514.htm</a></p>
<h2  class="related_post_title">相关文章 | Related Posts</h2><ul class="related_post"><li>2010/10/22 -- <a href="http://www.solaluna.cn/2010/10/22/1275/" title="[翻译]Android系统手机破解和刷机的基础知识">[翻译]Android系统手机破解和刷机的基础知识</a> (0)</li><li>2010/04/07 -- <a href="http://www.solaluna.cn/2010/04/07/1194/" title="不想被劫持？用Google DNS">不想被劫持？用Google DNS</a> (3)</li><li>2009/12/21 -- <a href="http://www.solaluna.cn/2009/12/21/1148/" title="技术帖，蛋好疼">技术帖，蛋好疼</a> (4)</li><li>2009/12/09 -- <a href="http://www.solaluna.cn/2009/12/09/1145/" title="从挖地道翻墙说开来">从挖地道翻墙说开来</a> (9)</li><li>2009/05/30 -- <a href="http://www.solaluna.cn/2009/05/30/1005/" title="果然Windows无处不在╮(╯_╰)╭">果然Windows无处不在╮(╯_╰)╭</a> (3)</li><li>2009/04/19 -- <a href="http://www.solaluna.cn/2009/04/19/990/" title="Linksys WRH54G变砖了=口=">Linksys WRH54G变砖了=口=</a> (6)</li><li>2009/03/22 -- <a href="http://www.solaluna.cn/2009/03/22/977/" title="有线通也敢跟老子斗-_,-！">有线通也敢跟老子斗-_,-！</a> (9)</li><li>2008/11/10 -- <a href="http://www.solaluna.cn/2008/11/10/829/" title="Fedora 10 Cambridge 即将发布">Fedora 10 Cambridge 即将发布</a> (0)</li><li>2008/09/01 -- <a href="http://www.solaluna.cn/2008/09/01/777/" title="这东西，应该建议公司给每个人都刷一张">这东西，应该建议公司给每个人都刷一张</a> (5)</li><li>2007/11/18 -- <a href="http://www.solaluna.cn/2007/11/18/577/" title="关于MSN机器人的一点开发心得">关于MSN机器人的一点开发心得</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.solaluna.cn/2008/11/12/834/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Fedora 10 Cambridge 即将发布</title>
		<link>http://www.solaluna.cn/2008/11/10/829/</link>
		<comments>http://www.solaluna.cn/2008/11/10/829/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 16:11:39 +0000</pubDate>
		<dc:creator>Shyujikou</dc:creator>
				<category><![CDATA[Comment | 评星品辰]]></category>
		<category><![CDATA[Technology | 技术]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.solaluna.cn/2008/11/10/829/</guid>
		<description><![CDATA[好吧我承认这阵子找不到什么话题来写BLOG，于是乎…… 下面这个Banner会自动倒计时的，在微软黑屏和大门叔叔早已布置好的10年计划的围追堵截下，希望有更多的朋友能够认识Linux吧～就这样…… Fedora是什么？能吃么？ 相关文章 &#124; Related Posts2010/10/22 -- [翻译]Android系统手机破解和刷机的基础知识 (0)2010/04/07 -- 不想被劫持？用Google DNS (3)2009/12/21 -- 技术帖，蛋好疼 (4)2009/12/09 -- 从挖地道翻墙说开来 (9)2009/04/19 -- Linksys WRH54G变砖了=口= (6)2009/03/22 -- 有线通也敢跟老子斗-_,-！ (9)2008/11/12 -- Windows已经25岁了，其实微软特别喜欢黑屏 (4)2008/09/01 -- 这东西，应该建议公司给每个人都刷一张 (5)2007/11/18 -- 关于MSN机器人的一点开发心得 (4)2007/11/10 -- 怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧 (2)]]></description>
			<content:encoded><![CDATA[<p>好吧我承认这阵子找不到什么话题来写BLOG，于是乎……</p>
<p>下面这个Banner会自动倒计时的，在微软黑屏和大门叔叔早已布置好的10年计划的围追堵截下，希望有更多的朋友能够认识Linux吧～就这样……</p>
<p><a href="http://zh.wikipedia.org/w/index.php?title=Fedora&#038;variant=zh-cn" target="_blank">Fedora是什么？能吃么？</a></p>
<p><script id="fedora-banner" src="http://fedoraproject.org/static/js/release-counter-ext.js?lang=zh_CN" type="text/javascript"></script></p>
<h2  class="related_post_title">相关文章 | Related Posts</h2><ul class="related_post"><li>2010/10/22 -- <a href="http://www.solaluna.cn/2010/10/22/1275/" title="[翻译]Android系统手机破解和刷机的基础知识">[翻译]Android系统手机破解和刷机的基础知识</a> (0)</li><li>2010/04/07 -- <a href="http://www.solaluna.cn/2010/04/07/1194/" title="不想被劫持？用Google DNS">不想被劫持？用Google DNS</a> (3)</li><li>2009/12/21 -- <a href="http://www.solaluna.cn/2009/12/21/1148/" title="技术帖，蛋好疼">技术帖，蛋好疼</a> (4)</li><li>2009/12/09 -- <a href="http://www.solaluna.cn/2009/12/09/1145/" title="从挖地道翻墙说开来">从挖地道翻墙说开来</a> (9)</li><li>2009/04/19 -- <a href="http://www.solaluna.cn/2009/04/19/990/" title="Linksys WRH54G变砖了=口=">Linksys WRH54G变砖了=口=</a> (6)</li><li>2009/03/22 -- <a href="http://www.solaluna.cn/2009/03/22/977/" title="有线通也敢跟老子斗-_,-！">有线通也敢跟老子斗-_,-！</a> (9)</li><li>2008/11/12 -- <a href="http://www.solaluna.cn/2008/11/12/834/" title="Windows已经25岁了，其实微软特别喜欢黑屏">Windows已经25岁了，其实微软特别喜欢黑屏</a> (4)</li><li>2008/09/01 -- <a href="http://www.solaluna.cn/2008/09/01/777/" title="这东西，应该建议公司给每个人都刷一张">这东西，应该建议公司给每个人都刷一张</a> (5)</li><li>2007/11/18 -- <a href="http://www.solaluna.cn/2007/11/18/577/" title="关于MSN机器人的一点开发心得">关于MSN机器人的一点开发心得</a> (4)</li><li>2007/11/10 -- <a href="http://www.solaluna.cn/2007/11/10/575/" title="怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧">怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.solaluna.cn/2008/11/10/829/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>这东西，应该建议公司给每个人都刷一张</title>
		<link>http://www.solaluna.cn/2008/09/01/777/</link>
		<comments>http://www.solaluna.cn/2008/09/01/777/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 01:22:50 +0000</pubDate>
		<dc:creator>Shyujikou</dc:creator>
				<category><![CDATA[Diary | 日月絮语]]></category>
		<category><![CDATA[BIOS]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[ThinkPad]]></category>

		<guid isPermaLink="false">http://www.solaluna.cn/2008/09/01/777/</guid>
		<description><![CDATA[好吧我承认我有点无聊，公司的新LOGO还只是个征求意见稿，嘛，等定下来了我重新做一张再刷一遍就是了。美中不足的是那几块系统强制加上去的东西，其实Energy Star那个还不难看，Intel那个也算可以，就是“a product of Lenovo”那条实在是太不和谐了，还非要是黑的orz。嘛……既然去不掉也就只能摆在那里了orz…… 这东西，应该建议公司给每个人的电脑都刷一张，多拉风。 【NOTICE】擅自修改、刷写BIOS有变砖风险，且不属于保修范围，操作须谨慎。 相关文章 &#124; Related Posts2010/10/22 -- [翻译]Android系统手机破解和刷机的基础知识 (0)2010/04/07 -- 不想被劫持？用Google DNS (3)2009/12/21 -- 技术帖，蛋好疼 (4)2009/12/09 -- 从挖地道翻墙说开来 (9)2009/04/19 -- Linksys WRH54G变砖了=口= (6)2009/03/22 -- 有线通也敢跟老子斗-_,-！ (9)2008/11/12 -- Windows已经25岁了，其实微软特别喜欢黑屏 (4)2008/11/10 -- Fedora 10 Cambridge 即将发布 (0)2008/01/11 -- Think, with ThinkPad X61 (4)2007/11/18 -- 关于MSN机器人的一点开发心得 (4)]]></description>
			<content:encoded><![CDATA[<p>好吧我承认我有点无聊，公司的新LOGO还只是个征求意见稿，嘛，等定下来了我重新做一张再刷一遍就是了<img src='/images/em/XSK.gif' alt='XSK' />。美中不足的是那几块系统强制加上去的东西，其实Energy Star那个还不难看，Intel那个也算可以，就是“a product of Lenovo”那条实在是太不和谐了，还非要是黑的orz。嘛……既然去不掉也就只能摆在那里了orz……</p>
<p>这东西，应该建议公司给每个人的电脑都刷一张，多拉风<img src='/images/em/XSK.gif' alt='XSK' />。</p>
<p><font color="#ff8040">【NOTICE】擅自修改、刷写BIOS有变砖风险，且不属于保修范围，操作须谨慎。</font></p>
<p><a href="http://www.solaluna.cn/wp-content/uploads/2008/09/dsc-0934.jpg" target="_blank"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="386" alt="DSC_0934" src="http://www.solaluna.cn/wp-content/uploads/2008/09/dsc-0934-thumb.jpg" width="570" border="0"/></a></p>
<h2  class="related_post_title">相关文章 | Related Posts</h2><ul class="related_post"><li>2010/10/22 -- <a href="http://www.solaluna.cn/2010/10/22/1275/" title="[翻译]Android系统手机破解和刷机的基础知识">[翻译]Android系统手机破解和刷机的基础知识</a> (0)</li><li>2010/04/07 -- <a href="http://www.solaluna.cn/2010/04/07/1194/" title="不想被劫持？用Google DNS">不想被劫持？用Google DNS</a> (3)</li><li>2009/12/21 -- <a href="http://www.solaluna.cn/2009/12/21/1148/" title="技术帖，蛋好疼">技术帖，蛋好疼</a> (4)</li><li>2009/12/09 -- <a href="http://www.solaluna.cn/2009/12/09/1145/" title="从挖地道翻墙说开来">从挖地道翻墙说开来</a> (9)</li><li>2009/04/19 -- <a href="http://www.solaluna.cn/2009/04/19/990/" title="Linksys WRH54G变砖了=口=">Linksys WRH54G变砖了=口=</a> (6)</li><li>2009/03/22 -- <a href="http://www.solaluna.cn/2009/03/22/977/" title="有线通也敢跟老子斗-_,-！">有线通也敢跟老子斗-_,-！</a> (9)</li><li>2008/11/12 -- <a href="http://www.solaluna.cn/2008/11/12/834/" title="Windows已经25岁了，其实微软特别喜欢黑屏">Windows已经25岁了，其实微软特别喜欢黑屏</a> (4)</li><li>2008/11/10 -- <a href="http://www.solaluna.cn/2008/11/10/829/" title="Fedora 10 Cambridge 即将发布">Fedora 10 Cambridge 即将发布</a> (0)</li><li>2008/01/11 -- <a href="http://www.solaluna.cn/2008/01/11/646/" title="Think, with ThinkPad X61">Think, with ThinkPad X61</a> (4)</li><li>2007/11/18 -- <a href="http://www.solaluna.cn/2007/11/18/577/" title="关于MSN机器人的一点开发心得">关于MSN机器人的一点开发心得</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.solaluna.cn/2008/09/01/777/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>关于MSN机器人的一点开发心得</title>
		<link>http://www.solaluna.cn/2007/11/18/577/</link>
		<comments>http://www.solaluna.cn/2007/11/18/577/#comments</comments>
		<pubDate>Sat, 17 Nov 2007 16:58:01 +0000</pubDate>
		<dc:creator>Shyujikou</dc:creator>
				<category><![CDATA[Comment | 评星品辰]]></category>
		<category><![CDATA[Technology | 技术]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[MSN机器人]]></category>

		<guid isPermaLink="false">http://www.solaluna.cn/2007/11/18/577/</guid>
		<description><![CDATA[从进公司以来就想自己学学JAVA，无奈我这个人是一定要有实际的工程才能有心思学的（你这个啥的不会的公司也不会把项目给你做啊=v=&#124;&#124;&#124;），不然看了半天文档还是没有用啊～最近一段时间项目没那么忙了，我把以前尘封的一个想法翻了出来，那就是写一个MSN机器人。以前从来没有用过OOP（面向对象编程）的编程语言，一直觉得是一个遗憾，进公司之后从CakePHP架构上接触了MVC（Model-View-Controller，数据模型层-表现层-控制层）的理念，才算是有了一些OOP的影子吧，既然OOP是现在的主流，作为自称会写程序的我来说，还是不能不学的呀……嗯，公司的Reinhardt.Shi师父在JAVA上给了我很大的帮助，在此表示感谢m(_ _)m。 说起JAVA，这个东西的最大优势就是“一次开发，到处可用”，因为代码是在虚拟机上运行，所以拥有跨平台的移植性能，而也正是由于要在虚拟机上运行，因此JAVA的代码在效率上存在着不足。不过MSN机器人这个东西，只是个实验品而已，也不会过多牵涉到对于代码效率的研究，所以用来练习JAVA是个不错的项目～这个项目现在还在开发中，暂时先不公开测试（小规模内测状态=v=&#124;&#124;&#124;），下面只是说一些心得和感想，牵涉到项目的各个方面的。 首先是JAVA本身。开发到现在最大的体会就是JAVA是一个完全的OOP，不像用VB或者PHP之类的语言里面有一些语言本身的固有函数可以帮你实现一些东西，JAVA的一切都是靠对象来实现。举个例子，要测试一个字符串tmpString是否以“test”开头，在PHP里面会通常这样写： PHP中的字符串函数left()可以取出字符串左边制定长度的子序列，这是PHP的固有函数，并不属于任何一个对象，而在JAVA里面，因为一切都是属于对象的，所以要这样写： 我们这里用到的starsWith是String类的一个方法，并不是一个独立存在的函数，当初始化一个String类的时候，这个方法就存在于这个实例中并可以被调用，这就是典型的OOP理念了。当然，JAVA里面也有不用初始化实例就可以调用的方法，比如打印信息的方法System.out.println()，这就是一个静态（static）方法了，你自己写的Class里面同样可以拥有静态方法，从某种意义上来说，你和JAVA设计者的地位是平等的。 JAVA的另一个特点就是它是一种显式的语言，里面的实现划分的很细致，要根据需要选择，而决不是一种傻瓜语言。用PHP习惯了总喜欢让系统自动转换变量的类型，而这在JAVA里面是很少能行得通的，必须显式地告诉JAVA你要怎么样转换才行。还有，PHP里面的数组功能强大，甚至可以当多维表和树形结构来使用了，有字符串索引也很方便，而JAVA里面却分成了表、向量表、链表、Hash Map等等很多中模式，就连字符串的实现也不止又String一种模式，这给开发带了了很大的灵活性（比如可以把任何对象装载在表里而不仅限于普通的变量），然而你必须清楚在什么时候应该使用哪种实现方法以获得更高的效率，这就比较有难度了。 说说MSN机器人的实现。也许很多人知道小i机器人现在和微软关系很好，机器人也做的最强大，他们的网站提供了一套机器人的SDK。最开始我也想用这个SDK来做，不过实际做了发现，这个东西是要登录到小i的服务器作为中转平台的，虽说这样有一部分功能可以不用开发者来设计，不过毕竟控制权捏在人家手里，还有很多功能限制（啊要你付费啊，不厚道啊，这又不是你的技术，地球人都知道的= =b），于是不久就被我抛弃了。 如果你要从MSN的协议开始做起，那么MSNPiki这个网站是非常值得参考的。不过，从协议开始写起这个太不现实了，于是又发现了JML &#8211; Java MSN Messenger Library这个东西。这是一个封装MSN协议的JAVA包，里面使用了Cindy的事件触发机制，实现起来感觉和小i的东西很像，所以很容易就把原来的代码移植过去了。这东西也是还在开发中，有很多功能也没有实现，比如文件的传输等等，不过这些暂时也没啥问题。现在发布的这个版本里面，设置头像的代码有Bug，去官方的SVN上checkout下来最新的源代码自己编译一下的话就可以解决这个问题了，不过新版还没有发布，不知道有没有别的Bug，肯定也有写到一半的功能，不去用它就OK了。 JAVA在配置文件的读取上有一个类来实现，不过这个类对中文的支持却不良，于是我只好选择用更强大的XML来做资源文件，在代码中不直接出现表现UI的字符串，把它们集中到一个XML里面来访问，并单独写了一个类来处理资源文件，当然，这个类是建立在Dom4j这个XML解析库的基础上的。Dom4j利用了X-Path表达式来定位XML的节点和元素，真是太强大了……话说这个机器人的基本目标是实现对于Wikipedia的检索，现在是利用了一个API服务来做，返回XML的解析也是在Dom4j上写的类，以后要真正从Wiki上抓取数据，还需要更多的研究和探索吧…… 好了，写这么多我估计也没人看，到这里了先-v-～ 相关文章 &#124; Related Posts2010/10/22 -- [翻译]Android系统手机破解和刷机的基础知识 (0)2010/04/07 -- 不想被劫持？用Google DNS (3)2009/12/21 -- 技术帖，蛋好疼 (4)2009/12/09 -- 从挖地道翻墙说开来 (9)2009/04/19 -- Linksys WRH54G变砖了=口= (6)2009/03/22 -- 有线通也敢跟老子斗-_,-！ (9)2008/11/12 -- Windows已经25岁了，其实微软特别喜欢黑屏 (4)2008/11/10 -- Fedora 10 Cambridge 即将发布 (0)2008/09/01 -- 这东西，应该建议公司给每个人都刷一张 (5)2007/11/10 -- [...]]]></description>
			<content:encoded><![CDATA[<p>从进公司以来就想自己学学JAVA，无奈我这个人是一定要有实际的工程才能有心思学的（你这个啥的不会的公司也不会把项目给你做啊=v=|||），不然看了半天文档还是没有用啊～最近一段时间项目没那么忙了，我把以前尘封的一个想法翻了出来，那就是写一个MSN机器人。以前从来没有用过OOP（面向对象编程）的编程语言，一直觉得是一个遗憾，进公司之后从CakePHP架构上接触了MVC（Model-View-Controller，数据模型层-表现层-控制层）的理念，才算是有了一些OOP的影子吧，既然OOP是现在的主流，作为自称会写程序的我来说，还是不能不学的呀……嗯，公司的Reinhardt.Shi师父在JAVA上给了我很大的帮助，在此表示感谢m(_ _)m。</p>
<p>说起JAVA，这个东西的最大优势就是“一次开发，到处可用”，因为代码是在虚拟机上运行，所以拥有跨平台的移植性能，而也正是由于要在虚拟机上运行，因此JAVA的代码在效率上存在着不足。不过MSN机器人这个东西，只是个实验品而已，也不会过多牵涉到对于代码效率的研究，所以用来练习JAVA是个不错的项目～这个项目现在还在开发中，暂时先不公开测试（小规模内测状态=v=|||），下面只是说一些心得和感想，牵涉到项目的各个方面的。</p>
<p><span id="more-577"></span></p>
<p>首先是JAVA本身。开发到现在最大的体会就是JAVA是一个完全的OOP，不像用VB或者PHP之类的语言里面有一些语言本身的固有函数可以帮你实现一些东西，JAVA的一切都是靠对象来实现。举个例子，要测试一个字符串tmpString是否以“test”开头，在PHP里面会通常这样写：</p>
<pre class="brush: php; title: ; notranslate">if (left($tmpString,4)==&quot;test&quot;) {
    //Do something
}</pre>
<p>PHP中的字符串函数left()可以取出字符串左边制定长度的子序列，这是PHP的固有函数，并不属于任何一个对象，而在JAVA里面，因为一切都是属于对象的，所以要这样写：</p>
<pre class="brush: java; title: ; notranslate">if (tmpString.startsWith(&quot;test&quot;)){
    //Do something
}</pre>
<p>我们这里用到的starsWith是String类的一个方法，并不是一个独立存在的函数，当初始化一个String类的时候，这个方法就存在于这个实例中并可以被调用，这就是典型的OOP理念了。当然，JAVA里面也有不用初始化实例就可以调用的方法，比如打印信息的方法System.out.println()，这就是一个静态（static）方法了，你自己写的Class里面同样可以拥有静态方法，从某种意义上来说，你和JAVA设计者的地位是平等的。</p>
<p>JAVA的另一个特点就是它是一种显式的语言，里面的实现划分的很细致，要根据需要选择，而决不是一种傻瓜语言。用PHP习惯了总喜欢让系统自动转换变量的类型，而这在JAVA里面是很少能行得通的，必须显式地告诉JAVA你要怎么样转换才行。还有，PHP里面的数组功能强大，甚至可以当多维表和树形结构来使用了，有字符串索引也很方便，而JAVA里面却分成了表、向量表、链表、Hash Map等等很多中模式，就连字符串的实现也不止又String一种模式，这给开发带了了很大的灵活性（比如可以把任何对象装载在表里而不仅限于普通的变量），然而你必须清楚在什么时候应该使用哪种实现方法以获得更高的效率，这就比较有难度了。</p>
<p>说说MSN机器人的实现。也许很多人知道小i机器人现在和微软关系很好，机器人也做的最强大，他们的网站提供了一套<a href="http://my.xiaoi.com/" target="_blank">机器人的SDK</a>。最开始我也想用这个SDK来做，不过实际做了发现，这个东西是要登录到小i的服务器作为中转平台的，虽说这样有一部分功能可以不用开发者来设计，不过毕竟控制权捏在人家手里，还有很多功能限制（啊要你付费啊，不厚道啊，这又不是你的技术，地球人都知道的= =b），于是不久就被我抛弃了。</p>
<p>如果你要从MSN的协议开始做起，那么<a href="http://msnpiki.msnfanatic.com/" target="_blank">MSNPiki</a>这个网站是非常值得参考的。不过，从协议开始写起这个太不现实了，于是又发现了<a href="http://java-jml.sourceforge.net/" target="_blank">JML &#8211; Java MSN Messenger Library</a>这个东西。这是一个封装MSN协议的JAVA包，里面使用了Cindy的事件触发机制，实现起来感觉和小i的东西很像，所以很容易就把原来的代码移植过去了。这东西也是还在开发中，有很多功能也没有实现，比如文件的传输等等，不过这些暂时也没啥问题。现在发布的这个版本里面，设置头像的代码有Bug，去官方的SVN上checkout下来最新的源代码自己编译一下的话就可以解决这个问题了，不过新版还没有发布，不知道有没有别的Bug，肯定也有写到一半的功能，不去用它就OK了。</p>
<p>JAVA在配置文件的读取上有一个类来实现，不过这个类对中文的支持却不良，于是我只好选择用更强大的XML来做资源文件，在代码中不直接出现表现UI的字符串，把它们集中到一个XML里面来访问，并单独写了一个类来处理资源文件，当然，这个类是建立在<a href="http://www.dom4j.org/" target="_blank">Dom4j</a>这个XML解析库的基础上的。Dom4j利用了X-Path表达式来定位XML的节点和元素，真是太强大了……话说这个机器人的基本目标是实现对于Wikipedia的检索，现在是利用了一个<a href="http://wikipedia.simpleapi.net/" target="_blank">API服务</a>来做，返回XML的解析也是在Dom4j上写的类，以后要真正从Wiki上抓取数据，还需要更多的研究和探索吧……</p>
<p>好了，写这么多我估计也没人看，到这里了先-v-～</p>
<h2  class="related_post_title">相关文章 | Related Posts</h2><ul class="related_post"><li>2010/10/22 -- <a href="http://www.solaluna.cn/2010/10/22/1275/" title="[翻译]Android系统手机破解和刷机的基础知识">[翻译]Android系统手机破解和刷机的基础知识</a> (0)</li><li>2010/04/07 -- <a href="http://www.solaluna.cn/2010/04/07/1194/" title="不想被劫持？用Google DNS">不想被劫持？用Google DNS</a> (3)</li><li>2009/12/21 -- <a href="http://www.solaluna.cn/2009/12/21/1148/" title="技术帖，蛋好疼">技术帖，蛋好疼</a> (4)</li><li>2009/12/09 -- <a href="http://www.solaluna.cn/2009/12/09/1145/" title="从挖地道翻墙说开来">从挖地道翻墙说开来</a> (9)</li><li>2009/04/19 -- <a href="http://www.solaluna.cn/2009/04/19/990/" title="Linksys WRH54G变砖了=口=">Linksys WRH54G变砖了=口=</a> (6)</li><li>2009/03/22 -- <a href="http://www.solaluna.cn/2009/03/22/977/" title="有线通也敢跟老子斗-_,-！">有线通也敢跟老子斗-_,-！</a> (9)</li><li>2008/11/12 -- <a href="http://www.solaluna.cn/2008/11/12/834/" title="Windows已经25岁了，其实微软特别喜欢黑屏">Windows已经25岁了，其实微软特别喜欢黑屏</a> (4)</li><li>2008/11/10 -- <a href="http://www.solaluna.cn/2008/11/10/829/" title="Fedora 10 Cambridge 即将发布">Fedora 10 Cambridge 即将发布</a> (0)</li><li>2008/09/01 -- <a href="http://www.solaluna.cn/2008/09/01/777/" title="这东西，应该建议公司给每个人都刷一张">这东西，应该建议公司给每个人都刷一张</a> (5)</li><li>2007/11/10 -- <a href="http://www.solaluna.cn/2007/11/10/575/" title="怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧">怎样的字体色和背景色搭配是合适的？来看看W3C的标准吧</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.solaluna.cn/2007/11/18/577/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

