﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-pablo cesar aimar 巴勃罗·塞萨尔·艾玛尔</title><link>http://www.blogjava.net/yjf_aimar/</link><description>“窗寒西岭千秋雪，门思东雾万里床！”</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 16:43:54 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 16:43:54 GMT</pubDate><ttl>60</ttl><item><title>2003负载均衡</title><link>http://www.blogjava.net/yjf_aimar/archive/2006/02/17/31175.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Fri, 17 Feb 2006 03:39:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2006/02/17/31175.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/31175.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2006/02/17/31175.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/31175.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/31175.html</trackback:ping><description><![CDATA[<P>随着各行业信息化建设的发展，使人们对网络服务器的处理能力、高可用性提出了更高的要求。尤其是高度信息化的企业中，关键性网络服务已经成为企业生成过程中的重要环节，服务的中断意味着生产的中断，机会的丧失。 <BR>&nbsp;&nbsp;&nbsp; 负载平衡不但可以有效地解决单服务器的性能限制，而且可以实现故障的快速转移，保证服务的高可用性以及灵活的扩展性。于是，负载平衡几乎是每个网络管理员的必修课。本文章主要讲述windows2003在网络负载平衡(Network Load Balancing )方面的应用。 <BR>&nbsp;&nbsp;&nbsp; Windows的负载平衡主要是依靠组建网络负载平衡群集来实现的，支持WEB、FTP、Proxy、VPN、Windows Media、Telnet等服务器的负载平衡。<BR>&nbsp;&nbsp;&nbsp; 负载平衡的原理<BR>&nbsp;&nbsp;&nbsp; NLB其实就是提供相同服务的一系列服务器同时监听服务请求，并允许在同一时间运行多个应用程序实例。NLB的核心是位于网络适配器驱动和网络层之间的WLBS.SYS的筛选器驱动。NLB把每个IP数据包分发到所有群集节点，并根据数据包的源地址、目标地址、传输层协议、端口、群集的配置参数以及算法做出由某个节点处理而其他节点丢弃此数据包的统一决定。<BR>负载平衡的概念 <BR>&nbsp;&nbsp;&nbsp; 配置负载平衡之前，需要理解几个重点概念。<BR>&nbsp;&nbsp;&nbsp; 群集IP 地址和子网掩码：群集的虚拟IP地址，是表现在客户面前的"外部"地址。<BR>&nbsp;&nbsp;&nbsp; 专用IP 配置和子网掩码：群集各节点的本地IP地址，唯一标识群集的各节点。<BR>&nbsp;&nbsp;&nbsp; 完整Internet名：能够访问此群集的DNS名称，比如cluster.it.com.cn。<BR>&nbsp;&nbsp;&nbsp; 群集操作模式：在方案的选择中详细讲述。<BR>&nbsp;&nbsp;&nbsp; 端口规则：windows2003中新加的功能，细化了控制微粒，可以阻止某节点特定应用程序的流量，而在windows2000中这是不能实现的。<BR>&nbsp;&nbsp;&nbsp; 优先级(单一主机标识符)：范围在1-32之间（32是一个群集的最大节点数）。此值决定如何处理没有包含在任何为群集定义的端口规则中的传入网络通讯。具有最高优先级的主机（优先值最小）将处理所有这种通讯。<BR>负载平衡的要求 <BR>&nbsp;&nbsp;&nbsp; 操作系统的要求 在windows2003的所有版本系统中，NLB都是可用的。群集可以兼容以前的windows服务器操作系统（比如2000,NT4.0）。<BR>&nbsp;&nbsp;&nbsp; 网络结构的要求<BR>&nbsp;&nbsp;&nbsp; NLB可以在连接到FDDI（光纤分布式数据接口），以太网，吉比特以太网的服务器上运行，但不能在Token Ring（令牌环）网络上运行。<BR>&nbsp;&nbsp;&nbsp; 网卡的要求<BR>&nbsp;&nbsp;&nbsp; 所有的网络适配器必须在Windows2003的硬件兼容列表中。一般情况下，服务器的网卡都会符合要求。<BR>&nbsp;&nbsp;&nbsp; 交换机和路由器的要求<BR>&nbsp;&nbsp;&nbsp; 当计划使用VLAN来防止交换数据洪水时，必须确保交换机支持VLAN设置；当使用多播时，部分路由器不支持把单播IP地址映射为一个多播MAC地址，需要手工设置。<BR>&nbsp;&nbsp;&nbsp; 通讯协议的要求<BR>&nbsp;&nbsp;&nbsp; 绑定到群集的网络适配器只能安装TCP/IP协议，可以必须静态分配，不支持DHCP。<BR>&nbsp;&nbsp;&nbsp; 应用程序的要求<BR>&nbsp;&nbsp;&nbsp; 首先必须是TCP或UDP通讯，而且确定当前应用程序或服务必须支持NLB。<BR>负载平衡的设计 <BR>&nbsp;&nbsp;&nbsp; 由于网络负载平衡不能根据CPU和内存利用率来分配流量，而且性能并不是随着节点数量的增加而线性变化的（因为随着规模的增大，由此产生的网络开销，CPU开销也随着增大），，所以正确的设计和规划负载平衡是至关重要的。<BR>&nbsp;&nbsp;&nbsp; 群集的实现需要群集内部的通讯（比如心跳信息和聚合通讯）以及管理和内容复制的数据传输。这部分通讯占用了网络的可用带宽。为了克服单网卡的局限性，可以使用双网卡，一个用于负载客户端的通讯，另一个用于传输内部通讯，管理和内容的数据。<BR>&nbsp;&nbsp;&nbsp; 群集操作模式的选择是设计的重要一步。单播模式是指各节点的网络适配器被重新指定了一个虚拟MAC（由02-bf和群集IP地址组成确保此MAC的唯一性）。由于所有绑定群集的网络适配器的MAC都相同，所以在单网卡的情况下，各节点之间是不能通讯的，这也是推荐双网卡配置的原因之一。为了避免交换机的数据洪水，应该结合VLAN使用。<BR>&nbsp;&nbsp;&nbsp; 多播模式下，网络适配器在保留原有的MAC地址不变的同时，还分配了一个各节点共享的多播MAC地址。所以，即使单网卡的节点之间也可以正常通讯。但单网卡的带宽占用、竞争网络适配器等缺点仍然存在。<BR>&nbsp;&nbsp;&nbsp; 此外，部分路由器（特别是Cisco产品）还不支持单播IP地址和多播MAC的ARP映射的自动创建，需要手工配置。IGMP多播（只有在选中多播时，才可以选择此项），在继承多播的优点之外，NLB每隔60秒发送一次IGMP信息，使多播数据包只能发送到这个正确的交换机端口，避免了交换机数据洪水的产生。<BR>&nbsp;&nbsp;&nbsp; 端口规则是windows2003的新特性。NLB提供3种筛选模式，可以针对端口规则采取禁止、多主机负载平衡和单主机的特殊处理。其中，多主机筛选模式提供了真正意义上的负载平衡，并且可以根据节点的实际处理能力进行负载量的分配。<BR>&nbsp;&nbsp;&nbsp; 单个群集的最大节点数为32，如果还不能满足需要，可以使用Round-Robin Domain Name Service把请求映射到多个群集上（但也因此引入了单点故障DNS，除非DNS冗余）。<BR>负载平衡的安装与配置 <BR>&nbsp;&nbsp;&nbsp; Windows2003引入了网络负载平衡管理器（控制面板-&gt;管理工具），使负载平衡的安装和配置更加简单。管理器可以容易的实现群集的建立、删除，节点的添加、 删除、修改以及故障的检测。<BR>&nbsp;&nbsp;&nbsp; 运行网络负载平衡管理器，选择 群集 -&gt; 新建 ，弹出"群集参数"对话框，按需要配置。如下：<BR></P>
<P align=left><IMG alt="" hspace=0 src="C:\Documents and Settings\Administrator\桌面\1.JPG" border=0><BR><SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 华文仿宋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 宋体">下一步，系统会提示添加附加群集<SPAN lang=EN-US>IP</SPAN>，如果不需要可直接按<SPAN lang=EN-US>“</SPAN>下一步<SPAN lang=EN-US>”</SPAN>进行端口配置。以<SPAN lang=EN-US>web</SPAN>群集配置为例，其典型端口配置如下图所示：如果会话状态不保存在该群集上，则相似性选择无，否则选择单一或者类<SPAN lang=EN-US>C</SPAN>。<BR><IMG alt="" hspace=0 src="C:\Documents and Settings\Administrator\桌面\2.JPG" border=0><BR><SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 华文仿宋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 宋体">之后，指定一台主机连接，并选择一个可用的网络接口，进行主机参数的设置：<BR><IMG alt="" hspace=0 src="C:\Documents and Settings\Administrator\桌面\3.JPG" align=baseline border=0><BR></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="COLOR: black; FONT-FAMILY: 华文仿宋; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">点击<SPAN lang=EN-US>“</SPAN>完成<SPAN lang=EN-US>”</SPAN>，管理器会自动连接到主机上进行相关配置来创建一个新的群集。可以双击日志项目，了解<SPAN lang=EN-US>NLB</SPAN>管理器都进行了什么配置。<SPAN lang=EN-US><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 华文仿宋; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 华文仿宋; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">虽然，使用<SPAN lang=EN-US>NLB</SPAN>管理器是一个微软推荐的方法，但使用<SPAN lang=EN-US>NLB.EXE</SPAN>命令行仍然有它独特的优点：反应快，便于批处理。因此，掌握<SPAN lang=EN-US>NLB</SPAN>命令也是快速部署的需要。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="COLOR: black; FONT-FAMILY: 华文仿宋; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">负载平衡的安全考虑<SPAN lang=EN-US> <o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 华文仿宋; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; </SPAN></B><SPAN style="COLOR: black; FONT-FAMILY: 华文仿宋; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">群集的远程管理特性允许管理员在远程计算机上使用<SPAN lang=EN-US>NLB.EXE</SPAN>管理群集。但启用此功能后，会带来安全风险，比如密码泄露和<SPAN lang=EN-US>DOS </SPAN>（拒绝服务攻击<SPAN lang=EN-US>)</SPAN>。如果启用，请确保密码足够复杂，并且根据需要在防火墙上进行访问策略的配置（比如封锁<SPAN lang=EN-US>UDP</SPAN>端口<SPAN lang=EN-US>1717</SPAN>和<SPAN lang=EN-US>2504</SPAN>）。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN lang=EN-US style="COLOR: red; FONT-FAMILY: 华文仿宋; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; </SPAN></B><B><SPAN style="COLOR: red; FONT-FAMILY: 华文仿宋; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">总结</SPAN></B><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 华文仿宋; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 华文仿宋; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 华文仿宋; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">负载平衡负载平衡是一项综合的技术，在实施过程中往往伴随着其他技术的应用。比如网络负载平衡群集和服务器群集的结合，甚至与存储区域网络或网络附加存储相关联都是一个不错的主意。</SPAN></SPAN></SPAN></P><img src ="http://www.blogjava.net/yjf_aimar/aggbug/31175.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2006-02-17 11:39 <a href="http://www.blogjava.net/yjf_aimar/archive/2006/02/17/31175.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中通过调用dos命令实现获取MAC地址</title><link>http://www.blogjava.net/yjf_aimar/archive/2006/01/21/28859.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Sat, 21 Jan 2006 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2006/01/21/28859.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/28859.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2006/01/21/28859.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/28859.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/28859.html</trackback:ping><description><![CDATA[<TABLE style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" cellSpacing=1 cellPadding=3 width="96%" border=0>
<TBODY>
<TR>
<TD></TD></TR>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
<TBODY>
<TR bgColor=#ffffff>
<TD height=0>import java.io.*;<BR><BR>public class Test {<BR>&nbsp;&nbsp; &nbsp;public static void main(String[] args) {<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;try {<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Process process = Runtime.getRuntime().exec("ipconfig /all");<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;InputStreamReader ir = new InputStreamReader(process<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;.getInputStream());<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;LineNumberReader input = new LineNumberReader(ir);<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String line;<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;while ((line = input.readLine()) != null)<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (line.indexOf("Physical Address") &gt; 0) {<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String MACAddr = line.substring(line.indexOf("-") - 2);<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println("MAC address = [" + MACAddr + "]");<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} catch (java.io.IOException e) {<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.err.println("IOException " + e.getMessage());<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<BR>&nbsp;&nbsp; &nbsp;}<BR>}</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD></TD></TR></TBODY></TABLE><img src ="http://www.blogjava.net/yjf_aimar/aggbug/28859.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2006-01-21 10:20 <a href="http://www.blogjava.net/yjf_aimar/archive/2006/01/21/28859.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>全方位了解Mac地址</title><link>http://www.blogjava.net/yjf_aimar/archive/2006/01/16/28187.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Mon, 16 Jan 2006 06:17:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2006/01/16/28187.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/28187.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2006/01/16/28187.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/28187.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/28187.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=0 width=590 border=0>
<TBODY>
<TR>
<TD class=title vAlign=center align=middle colSpan=2><FONT color=red></FONT></TD></TR>
<TR>
<TD vAlign=center align=middle colSpan=2>&nbsp; </TD></TR>
<TR>
<TD vAlign=center align=middle colSpan=2>&nbsp; </TD></TR>
<TR>
<TD vAlign=center align=middle colSpan=2>&nbsp; </TD></TR>
<TR>
<TD vAlign=top align=left colSpan=2><!--
      <table cellSpacing="0" cellPadding="0" width="250" align="left">
      <tbody>
        <tr>
          <td><iframe width="300" height="250"
        scrolling="No" frameborder="0" marginheight="0" marginwidth="0" 
        src="google1.htm"></iframe></td>
        </tr>
      </tbody>
      </table> -->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 近来在网上经常见有人问起Mac地址的问题，那么究竟Mac地址是什么？在现行的网络中，扮演什么角色呢？下面我们就一同来探讨一下关于Mac地址的知识。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 什么是Mac地址? <BR><BR>　　Mac地址就是在媒体接入层上使用的地址，通俗点说就是网卡的物理地址，现在的Mac地址一般都采用6字节48bit（在早期还有2字节16bit的Mac地址） <BR><BR>　　前24位由是生产厂家向IEEE申请的厂商地址(这可是要花钱的哦！据说1000美元才能买一个地址块)。后24位就由生产厂家自行定以了。(早期的2字节的却不用申请) <BR><BR>　　IP地址和Mac地址有什么联系和区别 <BR><BR>　　大家都知道，现在有很多计算机都是通过先组建局域网，然后通过交换机和Internet连接的（大学里的校园网就是这样）。然后给每个用户分配固定的IP地址，由管理中心统一管理，这样为了管理方便就需要使用Mac地址来标志用户，防止发生混乱，明确责任（比如网络犯罪）。另外IP地址和Mac地址是有区别的，虽然他们在局域网中是一一对应的关系。IP地址是跟据现在的IPv4标准指定的，不受硬件限制比较容易记忆的地址，而Mac地址却是用网卡的物理地址，多少与硬件有关系，比较难于记忆。 <BR><BR>　　如何知道自己的Mac地址 <BR><BR>　　方法比较多，也比较得简单，在这里介绍两种常用的方法，在Win9x 可用：WinIPcfg获得，在2000、XP可用IPconfig -all获得。如果你已经给自己的网卡分配了IP还可以用 nbtstat -A 自己的IP 如下图，后者只能在2000/XP下使用。 <BR><BR>如何获得别人的Mac <BR><BR>　　其实上面已经涉及到了，如果是2000/XP用户可以用 nbtstat -A IP地址（还可以获得别的东东啊，可别学坏啊）。另外同一局域网内的，你可以用ping IP 或者ping 主机名，然后用arp -a 来获得。 <BR><BR>　　如何修改自己的Mac地址 <BR><BR>　　Mac地址是保存在网卡的EPROM里面，通过网卡生产厂家提供的修改程序可以更改存储器里的地址，即使网卡没有这样的设置我们也可以通过间接的方法修改，一般网卡发出的包的源Mac地址并不是网卡本身写上去的，而是应用程序提供的，只是在通常的实现中，应用程序先从网卡上得到Mac地址，每次发送的时候都用这个Mac做为源Mac而已，Windows中，网卡的Mac保存在注册表中，实际使用也是从注册表中提取的，所以只要修改注册表就可以简单的改变Mac <BR><BR>　　Win9x中修改： <BR><BR>　　打开注册表编辑器，在HKEY_LOCAL_MacHINE\SYSTEM\CurrentControlSet\Service\Class\Net\下的0000，0001，0002 Win2000/XP中的修改：同样打开注册表编辑器，HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\4D36E970-E325-11CE-BFC1-08002BE10318 中的0000,0001,0002中的DriverDesc,如果在0000找到，就在0000下面添加字符串变量，命名为"NetworkAddress"，值为要设置的Mac地址，例如：000102030405 <BR>完成上述操作后重启就好了。 <BR><BR>　　Linux下的修改： <BR><BR>　　1.必须关闭网卡设备，否则会报告系统忙，无法更改。 <BR><BR>　　命令是："ifconfig eth0 down" <BR><BR>　　2.修改Mac地址，这一步较Windows中的修改要简单。 <BR><BR>　　命令是："ifconfig eth0 hw ether 00AABBCCDDEE" <BR><BR>　　3.重新启用网卡 <BR><BR>　　"ifconfig eth0 up"网卡的Mac地址更改就完成了。 <BR><BR>　　现在还有很多软件提供了修改Mac地址的功能，如：Mac2001 <BR><BR>　　那么既然IP和Mac地址都可以改，那么怎么防御呢？通过简单的交换机端口绑定（端口的Mac表使用静态表项），可以在每个交换机端口只连接一台主机的情况下防止修改Mac地址的盗用，如果是三层设备还可以提供：交换机端口－IP－Mac 三者的绑定，防止修改Mac的IP盗用，这种方法更有效！还有些方法如配置交换机的VLAN，使用用户认证等，都略显复杂，再次不多浪费笔墨。 <BR></TD></TR></TBODY></TABLE><img src ="http://www.blogjava.net/yjf_aimar/aggbug/28187.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2006-01-16 14:17 <a href="http://www.blogjava.net/yjf_aimar/archive/2006/01/16/28187.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网络命令</title><link>http://www.blogjava.net/yjf_aimar/archive/2006/01/10/27355.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Tue, 10 Jan 2006 04:02:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2006/01/10/27355.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/27355.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2006/01/10/27355.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/27355.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/27355.html</trackback:ping><description><![CDATA[&nbsp;Ping <BR>　　 <BR>　　 Ping是个使用频率极高的实用程序，用于确定本地主机是否能与另一台主机交换（发送与接收）数据报。根据返回的信息，你就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是：成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP配置就是正确的，你必须执行大量的本地主机与远程主机的数据报交换，才能确信TCP/IP的正确性。 <BR>　　 <BR>　　 简单的说，Ping就是一个测试程序，如果Ping运行正确，你大体上就可以排除网络访问层、网卡、MODEM的输入输出线路、电缆和<A href="http://www.baidu.com/baidu?tn=jkday2000&amp;word=路由器" target=_blank>路由器</A>等存在的故障，从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送，Ping也被某些别有用心的人作为DDOS（拒绝服务攻击）的工具，前段时间Yahoo就是被<A href="http://www.qqread.com/keywords/hacker.html" target=_blank>黑客</A>利用数百台可以高速接入互联网的电脑连续发送大量Ping数据报而瘫痪的。 <BR>　　 <BR>　　 按照缺省设置，Windows上运行的Ping命令发送4个ICMP（网间控制报文协议）回送请求，每个32字节数据，如果一切正常，你应能得到4个回送应答。 <BR>　　 <BR>　　 Ping能够以毫秒为单位显示发送回送请求到返回回送应答之间的时间量。如果应答时间短，表示数据报不必通过太多的路由器或网络连接速度比较快。Ping还能显示TTL（Time To Live存在时间）值，你可以通过TTL值推算一下数据包已经通过了多少个路由器：源地点TTL起始值（就是比返回TTL略大的一个2的乘方数）-返回时TTL值。例如，返回TTL值为119，那么可以推算数据报离开源地址的TTL起始值为128，而源地点到目标地点要通过9个路由器网段（128-119）；如果返回TTL值为246，TTL起始值就是256，源地点到目标地点要通过9个路由器网段。 <BR>　　 <BR>　　 通过Ping检测网络故障的典型次序 <BR>　　 <BR>　　 正常情况下，当你使用Ping命令来查找问题所在或检验网络运行情况时，你需要使用许多Ping命令，如果所有都运行正确，你就可以相信基本的连通性和配置参数没有问题；如果某些Ping命令出现运行故障，它也可以指明到何处去查找问题。下面就给出一个典型的检测次序及对应的可能故障： <BR>　　 <BR>　　 ping 127.0.0.1--这个Ping命令被送到本地计算机的IP软件，该命令永不退出该计算机。如果没有做到这一点，就表示TCP/IP的安装或运行存在某些最基本的问题。 <BR>　　 <BR>　　 ping 本机IP--这个命令被送到你计算机所配置的IP地址，你的计算机始终都应该对该Ping命令作出应答，如果没有，则表示本地配置或安装存在问题。出现此问题时，局域网用户请断开网络电缆，然后重新发送该命令。如果网线断开后本命令正确，则表示另一台计算机可能配置了相同的IP地址。 <BR>　　 <BR>　　 ping 局域网内其他IP--这个命令应该离开你的计算机，经过网卡及网络电缆到达其他计算机，再返回。收到回送应答表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答，那么表示<A href="http://www.vlan9.com/keywords/subnet-mask.html" target=_blank>子网掩码</A>（进行子网分割时，将IP地址的网络部分与主机部分分开的代码）不正确或网卡配置错误或电缆系统有问题。 <BR>　　 <BR>　　 ping 网关IP--这个命令如果应答正确，表示局域网中的网关路由器正在运行并能够作出应答。 <BR>　　 <BR>　　 ping 远程IP--如果收到4个应答，表示成功的使用了缺省网关。对于拨号<A href="http://www.qqread.com/keywords/surf.html" target=_blank>上网</A>用户则表示能够成功的访问Internet（但不排除ISP的DNS会有问题）。 <BR>　　 <BR>　　 ping localhost--localhost是个作系统的网络保留名，它是127.0.0.1的别名，每太计算机都应该能够将该名字转换成该地址。如果没有做到这一带内，则表示主机文件（/Windows/host）中存在问题。 <BR>　　 <BR>　　 ping www.yahoo.com--对这个域名执行Ping命令，你的计算机必须先将域名转换成IP地址，通常是通过DNS服务器 如果这里出现故障，则表示DNS服务器的IP地址配置不正确或DNS服务器有故障（对于拨号上网用户，某些ISP已经不需要设置DNS服务器了）。顺便说一句：你也可以利用该命令实现域名对IP地址的转换功能。 <BR>　　 <BR>　　 如果上面所列出的所有Ping命令都能正常运行，那么你对你的计算机进行本地和远程通信的功能基本上就可以放心了。但是，这些命令的成功并不表示你所有的网络配置都没有问题，例如，某些子网掩码错误就可能无法用这些方法检测到。 <BR>　　 <BR>　　 Ping命令的常用参数选项 <BR>　　 <BR>　　 ping IP -t--连续对IP地址执行Ping命令，直到被用户以Ctrl+C中断。 <BR>　　 <BR>　　 ping IP -l 2000--指定Ping命令中的数据长度为2000字节，而不是缺省的32字节。 <BR>　　 <BR>　　 ping IP -n--执行特定次数的Ping命令。 <BR>　　 <BR>　　 Netstat <BR>　　 <BR>　　 Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据，一般用于检验本机各端口的网络连接情况。 <BR>　　 <BR>　　 如果你的计算机有时候接受到的数据报会导致出错数据删除或故障，你不必感到奇怪，TCP/IP可以容许这些类型的错误，并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比，或者它的数目正迅速增加，那么你就应该使用Netstat查一查为什么会出现这些情况了。 <BR>　　 <BR>　　 Netstat的一些常用选项： <BR>　　 <BR>　　 netstat -s--本选项能够按照各个协议分别显示其统计数据。如果你的应用程序（如Web浏览器）运行速度比较慢，或者不能显示Web页之类的数据，那么你就可以用本选项来查看一下所显示的信息。你需要仔细查看统计数据的各行，找到出错的关键字，进而确定问题所在。 <BR>　　 <BR>　　 netstat -e--本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量，也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量）。 <BR>　　 <BR>　　 netstat -r--本选项可以显示关于路由表的信息，类似于后面所讲使用route print命令时看到的 信息。除了显示有效路由外，还显示当前有效的连接。 <BR>　　 <BR>　　 netstat -a--本选项显示一个所有的有效连接信息列表，包括已建立的连接（ESTABLISHED），也包括监听连接请求（LISTENING）的那些连接。 <BR>　　 <BR>　　 netstat -n--显示所有已建立的有效连接。 <BR>　　 <BR>　　 Netstat的妙用 <BR>　　 <BR>　　 经常上网的人一般都使用<A href="http://www.qqread.com/keywords/icq.html" target=_blank>ICQ</A>的，不知道你有没有被一些讨厌的人骚扰得不敢上线，想投诉却又不知从和下手？其实，你只要知道对方的IP，就可以向他所属的ISP投诉了。但怎样才能通过ICQ知道对方的IP呢？如果对方在设置ICQ时选择了不显示IP地址，那你是无法在信息栏中看到的。其实，你只需要通过Netstat就可以很方便的做到这一点：当他通过ICQ或其他的工具与你相连时（例如你给他发一条ICQ信息或他给你发一条信息），你立刻在DOS Prompt下输入netstat -n或netstat -a就可以看到对方上网时所用的IP或ISP域名了。甚至连所用Port都完全暴露了，如果你想给他一些教训，这些信息已经足够…… <BR>　　 <BR>　　 IPConfig <BR>　　 <BR>　　 IPConfig实用程序和它的等价图形用户界面--Windows 95/98中的WinIPCfg可用于显示当前的TCP/IP配置的设置值。这些信息一般用来检验人工配置的TCP/IP设置是否正确。但是，如果你的计算机和所在的局域网使用了动态主机配置协议（Dynamic Host Configuration Protocol，DHCP--Windows NT下的一种把较少的IP地址分配给较多主机使用的协议，类似于拨号上网的动态IP分配），这个程序所显示的信息也许更加实用。这时，IPConfig可以让你了解你的计算机是否成功的租用到一个IP地址，如果租用到则可以了解它目前分配到的是什么地址。了解计算机当前的IP地址、子网掩码和缺省网关实际上是进行测试和故障分析的必要项目。 <BR>　　 <BR>　　 最常用的选项： <BR>　　 <BR>　　 ipconfig--当使用IPConfig时不带任何参数选项，那么它为每个已经配置了的接口显示IP地址、子网掩码和缺省网关值 <BR>　　 <BR>　　 ipconfig /all--当使用all选项时，IPConfig能为DNS和WINS服务器显示它已配置且所要使用的附加信息（如IP地址等），并且显示内置于本地网卡中的物理地址（MAC）。如果IP地址是从DHCP服务器租用的，IPConfig将显示DHCP服务器的IP地址和租用地址预计失效的日期（有关DHCP服务器的相关内容请详见其他有关NT服务器的书籍或询问你的网管），其输出信息见图6的下半部分。 <BR>　　 <BR>　　 ipconfig /release和ipconfig /renew--这是两个附加选项，只能在向DHCP服务器租用其IP地址的计算机上起作用。如果你输入ipconfig /release，那么所有接口的租用IP地址便重新交付给DHCP服务器（归还IP地址）。如果你输入ipconfig /renew，那么本地计算机便设法与DHCP服务器取得联系，并租用一个IP地址。请注意，大多数情况下网卡将被重新赋予和以前所赋予的相同的IP地址。 <BR>　　 <BR>　　 如果你使用的是Windows 95/98，那么你应该更习惯使用winipcfg而不是ipconfig，因为它是一个图形用户界面，而且所显示的信息与ipconfig相同，并且也提供发布和更新动态IP地址的选项 如果你购买了Windows NT Resource Kit（NT资源包），那么Windows NT也包含了一个图形替代界面，该实用程序的名字是wntipcfg，和Windows 95/98的winipcfg类似。 <BR>　　 <BR>　　 ARP（地址转换协议） <BR>　　 <BR>　　 ARP是一个重要的TCP/IP协议，并且用于确定对应IP地址的网卡物理地址。实用arp命令，你能够查看本地计算机或另一台计算机的ARP高速缓存中的当前内容。此外，使用arp命令，也可以用人工方式输入静态的网卡物理/IP地址对，你可能会使用这种方式为缺省网关和本地服务器等常用主机进行这项作，有助于减少网络上的信息量。 <BR>　　 <BR>　　 按照缺省设置，ARP高速缓存中的项目是动态的，每当发送一个指定地点的数据报且高速缓存中不存在当前项目时，ARP便会自动添加该项目。一旦高速缓存的项目被输入，它们就已经开始走向失效状态。例如，在Windows NT网络中，如果输入项目后不进一步使用，物理/IP地址对就会在2至10分钟内失效。因此，如果ARP高速缓存中项目很少或根本没有时，请不要奇怪，通过另一台计算机或路由器的ping命令即可添加。所以，需要通过arp命令查看高速缓存中的内容时，请最好先ping 此台计算机（不能是本机发送ping命令）。 <BR>　　 <BR>　　 常用命令选项： <BR>　　 <BR>　　 arp -a或arp -g--用于查看高速缓存中的所有项目。-a和-g参数的结果是一样的，多年来-g一直是<A href="http://www.qqread.com/keywords/unix.html" target=_blank>UNIX</A>平台上用来显示ARP高速缓存中所有项目的选项，而Windows用的是arp -a（-a可被视为all，即全部的意思），但它也可以接受比较传统的-g选项。 <BR>　　 <BR>　　 arp -a IP--如果你有多个网卡，那么使用arp -a加上接口的IP地址，就可以只显示与该接口相关的ARP缓存项目。 <BR>　　 <BR>　　 arp -s IP 物理地址--你可以向ARP高速缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态，或者在出现错误时，人工配置的物理地址将自动更新该项目。 <BR>　　 <BR>　　 arp -d IP--使用本命令能够人工删除一个静态项目。 <BR>　　 <BR>　　  <BR>　　 <BR>　　 <BR>　　 看到这里，你也许已经有些累了……其实对于一般用户来说也已经足够--你可以用ipconfig和ping命令来查看自己的网络配置并判断是否正确、可以用netstat查看别人与你所建立的连接并找出ICQ使用者所隐藏的IP信息、可以用arp查看网卡的MAC地址--这些已足已让你丢掉菜鸟的头衔。如果你并不满足，那就"硬着头皮"（下面的内容可能有些枯燥）继续Follow me…… <BR>　　 <BR>　　 Tracert <BR>　　 <BR>　　 当数据报从你的计算机经过多个网关传送到目的地时，Tracert命令可以用来跟踪数据报使用的路由（路径）。该实用程序跟踪的路径是源计算机到目的地的一条路径，不能保证或认为数据报总遵循这个路径。如果你的配置使用DNS，那么你常常会从所产生的应答中得到城市、地址和常见通信公司的名字。Tracert是一个运行得比较慢的命令（如果你指定的目标地址比较远），每个路由器你大约需要给它15秒钟 <BR>　　 Tracert的使用很简单，只需要在tracert后面跟一个IP地址或URL，Tracert会进行相应的域名转换的。Tracert一般用来检测故障的位置，你可以用tracert IP在哪个环节上出了问题，虽然还是没有确定是什么问题，但它已经告诉了我们问题所在的地方，你也就可以很有把握的告诉别人--某某出了问题。 <BR>　　 <BR>　　 Route <BR>　　 <BR>　　 大多数主机一般都是驻留在只连接一台路由器的网段上。由于只有一台路由器，因此不存在使用哪一台路由器将数据报发表到远程计算机上去的问题，该路由器的IP地址可作为该网段上所有计算机的缺省网关来输入。 <BR>　　 <BR>　　 但是，当网络上拥有两个或多个路由器时，你就不一定想只依赖缺省网关了。实际上你可能想让你的某些远程IP地址通过某个特定的路由器来传递，而其他的远程IP则通过另一个路由器来传递。 <BR>　　 <BR>　　 在这种情况下，你需要相应的路由信息，这些信息储存在路由表中，每个主机和每个路由器都配有自己独一无二的路由表。大多数路由器使用专门的路由协议来交换和动态更新路由器之间的路由表。但在有些情况下，必须人工将项目添加到路由器和主机上的路由表中。Route就是用来显示、人工添加和修改路由表项目的。 <BR>　　 <BR>　　 一般使用选项： <BR>　　 <BR>　　 route print--本命令用于显示路由表中的当前项目，在单路由器网段上的输出结果如图12，由于用IP地址配置了网卡，因此所有的这些项目都是自动添加的。 <BR>　　 <BR>　　 route add--使用本命令，可以将信路由项目添加给路由表。例如，如果要设定一个到目的网络209.98.32.33的路由，其间要经过5个路由器网段，首先要经过本地网络上的一个路由器，器IP为202.96.123.5，子网掩码为255.255.255.224，那么你应该输入以下命令： <BR>　　 <BR>　　 route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5 <BR>　　 <BR>　　 route change--你可以使用本命令来修改数据的传输路由，不过，你不能使用本命令来改变数据的目的地。下面这个例子可以将数据的路由改到另一个路由器，它采用一条包含3个网段的更直的路径： <BR>　　 <BR>　　 route add 209.98.32.33 mask 255.255.255.224 202.96.123.250 metric 3 <BR>　　 <BR>　　 route delete--使用本命令可以从路由表中删除路由。例如：route delete 209.98.32.33 <BR>　　 <BR>　　 <BR>　　 NBTStat <BR>　　 <BR>　　 NBTStat（TCP/IP上的NetBIOS统计数据）实用程序用于提供关于关于NetBIOS的统计数据。运用NetBIOS，你可以查看本地计算机或远程计算机上的NetBIOS名字表格。 <BR>　　 <BR>　　 常用选项： <BR>　　 <BR>　　 nbtstat -n--显示寄存在本地的名字和服务程序 <BR>　　 <BR>　　 nbtstat -c--本命令用于显示NetBIOS名字高速缓存的内容。NetBIOS名字高速缓存用于寸放与本计算机最近进行通信的其他计算机的NetBIOS名字和IP地址对。 <BR>　　 <BR>　　 nbtstat -r--本命令用于清除和重新加载NetBIOS名字高速缓存。 <BR>　　 <BR>　　 nbtstat -a IP--通过IP显示另一台计算机的物理地址和名字列表，你所显示的内容就像对方计算机自己运行nbtstat -n一样 <BR>　　 <BR>　　 nbtstat -s IP--显示实用其IP地址的另一台计算机的NetBIOS连接表。 <BR>　　 <BR>　　 Net <BR>　　 <BR>　　 Net命令有很多函数用于实用和核查计算机之间的NetBIOS连接。这里我只介绍最常用的两个：net view和net use。 <BR>　　 <BR>　　 net view UNC--运用此命令，你可以查看目标服务器上的<A href="http://www.vlan9.com/keywords/share.html" target=_blank>共享</A>点名字。任何局域网里的人都可以发出此命令，而且不需要提供用户ID或口令。UNC名字总是以\\开头，后面跟随目标计算机的名字。例如，net view \\lx就是查看主机名为lx的计算机的共享点（见图15）。 <BR>　　 <BR>　　 net use 本地盘符 目标计算机共享点--本命令用于建立或取消到达特定共享点的映像<A href="http://www.pcdog.com/dl/" target=_blank>驱动</A>器的连接（如果需要，你必须提供用户ID或口令）。例如，你输入net use f: \\lx\mp3就是将映像驱动器F:连接到\\lx\mp3共享点上，今后你直接访问F:就可以访问\\lx\mp3共享点，这和你右击"我的电脑"选择映射网络驱动器类似。 <BR><img src ="http://www.blogjava.net/yjf_aimar/aggbug/27355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2006-01-10 12:02 <a href="http://www.blogjava.net/yjf_aimar/archive/2006/01/10/27355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>破解基础知识</title><link>http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27234.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Mon, 09 Jan 2006 03:28:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27234.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/27234.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27234.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/27234.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/27234.html</trackback:ping><description><![CDATA[<FONT face=宋体>第一课&nbsp;前言<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;你是不是经常到处找破解资料，转了一大圈，也找不全，多么希望找一完整破解教程，从简到深，系统学习破解知识。本人就有这一体会，为了使大家更快掌握这门技术，特将本人长期收集资料和破解经验总结一篇教程，相信对大家有所帮助。这份资料主要是和大家探讨一些加密解密的问题，在文中引用了不少平时收集的资料，但均保持文章原样。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;很多人都想学学做cracker，好象破了一个程序很风光的，人人都很佩服。&nbsp;可是做一个cracker其实很累，需花费大量的时间，而且经常会碰壁，三五天毫无进展是极为平常的事情。而且crack是违法的，这点要牢记。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;做cracker的五个必要条件是:&nbsp;1.&nbsp;知识&nbsp;2.&nbsp;经验&nbsp;3.&nbsp;感觉&nbsp;4.&nbsp;耐心&nbsp;5.&nbsp;运气&nbsp;。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;如果你刚开始学crack，也许你遇到不少麻烦，并且有点想退却，其实你不要着急，只要你认真学习，成功就在眼前。没有人是生来就什么都会的，如果你有问题，就大胆的去问你周围的人，多来我主页论坛请教。计算机水平不高怎么办？没关系，我也不是学计算机的，我自己的专业与电脑不沾边。只要努力学习就能成功。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;所谓知识只要你肯学就可以了，刚入门时如你没汇编知识是不行的，你要掌握一下这门编程语言，能看懂就能上手，但是你想很顺手的话，除了把汇编掌握好，还有编程的基本功夫。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;经验是跟你破解软件时间，掌握程度有关，接触多了，拿到一软件应该知道用哪种法比较省事，比较有把握。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;感觉这点不可言传，就象我们做语文题目时，一句话有语法错误一看就知道，这时我们有可能从语法上也说不上什么道道，就知它是错的，这就是语感。我们crack多了，也会有这方面的体会，拿一软件跟踪，到关键点时凭感觉就找到。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;耐心就不多说，成功与失败的关键也在这一步。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;运气也很关键啦！以前我受朋友之托对付开天辟地2,那软件运行第二次时就叫你输入说明书的第几页第几行的第几个字，要输两三遍，D版哪有说明书呀，拿到这软件我用了一会儿，第一次能运行，第二次不行，我仔细分析一下，判断有可能在注册表或WINDOWS下写下什么文件，故先将系统备份一下，当然是整个windows系统了，是不是吓坏了:-O,哈！干我们这行什么损招都得想到。&nbsp;好，开刀了，先试乱按几下（当然全是选择题，不过一屏幕有十几个字，只有一个是对的，要通过两三屏才成功），我试了两遍就OK了，运气太好了，我那朋友试了半天也不行，然后分析系统文件的变化，发现HUMAN.INI变化了，哈就这样破了，将HUMAN.INI拷给朋友机了就行了。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;另外我还要谈的一事是，当cracker目的不是破解软件，而是通过跟踪软件，了解程序思路，这样提高自己，使自己能写出更好的程序。&nbsp;并且破解不在多，而在于你要掌握它，尽量了解注册码计算原理，最好能写出注册机，不能写也没关系，要弄懂它的算法。<BR><BR>（第二课）&nbsp;<BR><BR><BR>软件的几种保护方式介绍<BR><BR>&nbsp;&nbsp;加密一词来源已久，自从人们希望对自己私人的信息得到保护开始，就有了加密这个概念。软件行业的加密是软件厂商为了保护软件开发的利润而采取的一种软件保护方式，加密&nbsp;的好坏直接影响到软件的销售，从&nbsp;Apple&nbsp;II&nbsp;的年代开始，加密与解密的斗争就一直没有停&nbsp;止过。时至今日，软件加密的方案已经多种多样，在这里我将介绍一下各种加密方案的特点&nbsp;和优劣，当然这只是一家之见，持不同观点者可一笑置之。&nbsp;<BR><BR>&nbsp;&nbsp;当前软件加密方法多种多样，已经不可能找出一种分类方法来把各种加密方案很好的区分开来。&nbsp;基本上来说可以分为依赖特定硬件的加密方案和不依赖硬件的加密方案。&nbsp;<BR><BR>一、我们首先说说依赖硬件的加密方案:&nbsp;<BR>1、软盘加密&nbsp;<BR>&nbsp;&nbsp;这是在计算机上最为古老的一种加密方案，它的原理是在软盘的特殊位置写入一些信息，软件在运行时要检验这些信息。这种软盘就好像一把钥匙。软件开发商只需一次投资购买一套加密工具就可以自己制作多张钥匙盘。此方法加密简单，成本低，在软件发展的不同时期&nbsp;都能看到其闪光点。像中文之星&nbsp;2.97还在延用这种方式。但用户在执行软件时必须要插入此软盘。因为软驱是慢速设备，多次检查软盘上的加密点会大大拖慢程序的运行速度，所以&nbsp;一般加密软件只在软件运行开始的时候检查一次，这样不能避免用户用一张加密盘启动多份软件。而且由于软盘是一种易损载体，加密软件对软盘加密点的反复读写很容易造成软盘的损坏。而这张加密盘又不能备份，软件公司要不断应付用户更换加密盘的请求。另外由于这种加密技术出现的较早，硬解密的技术相对比较成熟，像双星公司的&nbsp;King-Copy&nbsp;软件能拷贝大多数的加密软盘，连加密点一起复制，复制后的软盘还是加密的。&nbsp;<BR><BR>2、卡加密&nbsp;<BR>&nbsp;&nbsp;在&nbsp;90&nbsp;年代初，各种各样的汉卡涌现出来，而随之而来的卡加密技术也开始风行。卡加密的好处是由于加密卡上面不仅仅可以存放数据，而且可以用硬件实现简单的算法，而且在软件的执行过程中可以随时访问加密卡，不会对软件运行的速度带来太多的影响，而且由于加密卡是与计算机的总线交换数据，数据通讯协议完全由卡的厂家制定，没有统一的标准接&nbsp;口，让软件解密者有无从下手的感觉。像北大方正早期的印刷软件都是采用这种方法来加密&nbsp;的。但这种加密方案需要打开计算机的机箱，占用扩展槽，一般还需要专门的人员来安装。&nbsp;另外，由于加密卡设计上的某些问题，还很容易同现有的硬件发生冲突。考虑到成本，加密&nbsp;卡必须要批量生产，厂商一般不会对低价值的软件一下投入这么大的资金。由于种种问题，&nbsp;这种加密技术现在已经难得一见了。&nbsp;<BR><BR>3、软件锁加密&nbsp;<BR>&nbsp;&nbsp;软件锁加密是在国外首先出现的，它是一个插在计算机打印口上火柴盒大小的设备，&nbsp;国内俗称为加密狗。在加密锁内部存有一定的数据和算法，计算机可以与之通讯来获得其中的数据，或通过加密锁进行某种计算。软件无法离开加密锁而运行。由于它不像卡加密那样&nbsp;需要打开计算机的机箱来安装，但又像加密卡那样可以随时访问，而且访问速度很快，所以一推出就受到软件开发者们的青睐，很快成为当今世界上主流的加密方案。目前，所有的加&nbsp;密锁都提供了可编程的接口。用户可以控制加密锁中的内容，在程序中通过加密锁的接口任&nbsp;意访问加密锁。国外加密锁一般仅提供若干种算法,但好的加密锁不但可以向客户提供加密算&nbsp;法，也容许客户根据自己的意愿自定义加密算法，容许客户自定义用户ID号……比如：北京&nbsp;飞天诚信科技公司推出的ROCKEY-IV锁就是一种加密强度很高产品。但加密锁也是有一定缺欠的，由于加密锁利用的是计算机的打印口，而打印口原来是为打印机而设计的，软件锁一方面要保证用户加密操作的正确，同时也要保证打印机工作的正常。但由于打印机驱动程序&nbsp;设计上千差万别，没有任何一家的加密锁能够完全做到这一点。&nbsp;但这一问题随着技术的进步有希望得到彻底的解决，那就是&nbsp;USB&nbsp;接口的加密锁。USB&nbsp;是&nbsp;Microsoft、Intel、Compaq、NEC&nbsp;联合开发的一种全新的硬件接口标准，能够同时支持&nbsp;128&nbsp;个&nbsp;不同的外部设备，而且互相之间没有冲突，在新的&nbsp;PII&nbsp;计算机主版上大多都可以看见两个小小的长方形接口，那就是&nbsp;USB&nbsp;接口。USB&nbsp;接口的加密锁不但拥有并口加密锁的所有优点，而&nbsp;且没有打印上的问题，其前景十分看好。但美中不足的是只有&nbsp;Windows&nbsp;98&nbsp;和&nbsp;Windows&nbsp;2000&nbsp;目前能够支持&nbsp;USB&nbsp;设备。在国内市场上，有几种国外USB加密锁，但售价很高。北京飞天诚&nbsp;信科技公司推出的一款ROCKEY-USB加密锁是国内目前唯一的民族品牌。其安全性优于国外产品的同时，售价还不足100元，仅是国外产品的一半。&nbsp;<BR><BR>4、光盘加密&nbsp;<BR>&nbsp;&nbsp;随着光盘的普及，光盘几乎成了软盘的替代产品。即然有软盘加密成功在先，为什么不能有光盘加密呢？有很多人在思考这个问题。但实际操作上确实是有一些问题的，因为光盘有&nbsp;ISO9660&nbsp;标准协议规定，其可控制性比软盘还要严格，想找出一种只能运行而不能复制的方式确实很困难。但现在确实已经有几家这样的产品出来了，而且加密方法也不尽相同。&nbsp;其主要原理是利用特殊的光盘母盘上的某些特征信息是不可再现的，而且这些特征信息大多&nbsp;是光盘上非数据性的内容，光盘复制的时候复制不到的地方。因为投入是一次性的，对于大规模的生产这种加密方案可以将成本降得很低。而且软件数据和加密在同一载体上，对用户无疑是很方便的。但这是一种较新的加密方案，很多方面还需进一步验证。而且由于加密方式所限，不可能在用户自己刻录的光盘上实现这种加密，必须是生产线上生产的光盘才能够实现。这对于一些小规模的软件生产厂商还是有一定困难的，而且由于光盘的只读性，一旦&nbsp;加密有错是无法修复的。&nbsp;<BR><BR>二、我们再谈谈不依赖硬件的加密方案:&nbsp;<BR>&nbsp;&nbsp;所有的带有附加硬件设备的加密方案都有一定的加密成本在里面，对于那些价格高昂的软件当然无所谓，但对于那些共享软件或价格本身就很低的软件来说，硬件加密成本可能比&nbsp;软件本身的售价还高，当然不会被考虑了。但不加密，往往就变成了免费软件，所以近年来&nbsp;产生了很多软加密方案。&nbsp;<BR><BR>1、密码表加密&nbsp;<BR>&nbsp;&nbsp;在软件运行的开始要求用户跟据屏幕的提示信息输入特定的答案，答案往往在用户手册上的一份防复印的密码表中。用户只有输入密码正确后才能够继续运行。这种加密方案实现&nbsp;简单，不需要太多的成本。但用户每次运行软件都要查找密码，不免使用户感到十分的不便。&nbsp;像台湾的游戏大多采用此加密方式。而且往往有一些有耐心者把整个密码表输入到计算机中&nbsp;存成一个文件，同软件的盗版一同公布出来，让加密者无可奈何。基本上是一种防君子不防小人的加密方式。&nbsp;<BR><BR>2、序列号加密&nbsp;<BR>&nbsp;&nbsp;这种加密方式从某种角度来讲不是一套完整的加密方案，现今很多Shareware(&nbsp;共享软&nbsp;件&nbsp;)大多采用这种加密方式，用户在软件的试用期是不需要交费的，一旦试用期满还希望继续试用这个软件，就必须到软件公司进行注册，然后软件公司会根据你提交的信息(一般是用&nbsp;户的名字)来生成一个序列号，当你收到这个序列号以后，并在软件运行的时候输入进去，软&nbsp;件会验证你的名字与序列号之间的关系是否正确，如果正确说明你已经购买了这个软件，也&nbsp;就没有日期的限制了。这种加密方案实现简单，而且购买过程也完全在&nbsp;Internet&nbsp;上实现，&nbsp;无论是开发者和购买者都觉得很方便。不过有心的人可能已经注意到软件的名字与序列号之&nbsp;间的验证是在你的计算机上完成的，很多黑客利用这个漏洞找出了名字和序列号之间的换算&nbsp;关系，编写出一种叫&nbsp;KeyMaker&nbsp;的程序，你只要输入你的名字，这个程序会帮助你计算出序列号，你再用你的名字和这个序列号输入进软件中就变成正版软件了。而且也没有什么更好&nbsp;的方法来阻止用户扩散他注册后得到的序列号。<BR>
<TABLE class=tf width="100%" border=0>
<TBODY>
<TR>
<TD class=bw><FONT class=htd id=font_word style="FONT-SIZE: 14px; FONT-FAMILY: 宋体, Verdana, Arial, Helvetica, sans-serif"><BR>3、许可证加密&nbsp;<BR>&nbsp;&nbsp;这种方式在某种角度上说可以是序列号加密的一个变种，你从网上下载的或购买过来的&nbsp;软件并不能直接使用，软件在安装时或运行时会对你的计算机进行一番检测，并根据检测结&nbsp;果生成一个你的计算机的特定指纹，这个指纹可以是一个小文件，也可以是一串谁也看不懂&nbsp;的数，你需要把这个指纹数据通过&nbsp;Internet、Email、电话、传真等方式发送到开发商那里，&nbsp;开发商再根据这个指纹给你一个注册码或注册文件，你得到这个注册码或注册文件并按软件&nbsp;要求的步骤在你的计算机上完成注册后方能使用。这个方法的买卖也是完全通过网络来进行&nbsp;的，而且用户购买的软件被限制了只能在他自己的计算机上面运行，换到其它的计算机上，&nbsp;这个注册码或注册文件可能不再有效。但用户更换某些硬件设备也可能造成注册码的失效，&nbsp;而且用户得到软件后在完成注册工作前会有一段时间无法使用。对于软件开发商来说服务与&nbsp;管理的工作量无疑也是非常巨大的。网络上有个&nbsp;ZIP&nbsp;Download&nbsp;公司专门替软件开发商来完&nbsp;成这种加密与服务工作。将来&nbsp;PIII&nbsp;处理器内部有了特定的序列号，将会对减少这种加密方案的硬件依赖性，但估计普及起来还有很长的一段时间。&nbsp;<BR><BR>（第三课）&nbsp;<BR><BR><BR>软件分析技术<BR><BR>8088&nbsp;汇编速查手册&nbsp;<BR><BR><BR>一、数据传输指令&nbsp;<BR>───────────────────────────────────────&nbsp;<BR>它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.&nbsp;<BR>1.&nbsp;通用数据传送指令.&nbsp;<BR>MOV&nbsp;传送字或字节.&nbsp;<BR>MOVSX&nbsp;先符号扩展,再传送.&nbsp;<BR>MOVZX&nbsp;先零扩展,再传送.&nbsp;<BR>PUSH&nbsp;把字压入堆栈.&nbsp;<BR>POP&nbsp;把字弹出堆栈.&nbsp;<BR>PUSHA&nbsp;把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.&nbsp;<BR>POPA&nbsp;把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.&nbsp;<BR>PUSHAD&nbsp;把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.&nbsp;<BR>POPAD&nbsp;把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.&nbsp;<BR>BSWAP&nbsp;交换32位寄存器里字节的顺序&nbsp;<BR>XCHG&nbsp;交换字或字节.(&nbsp;至少有一个操作数为寄存器,段寄存器不可作为操作数)&nbsp;<BR>CMPXCHG&nbsp;比较并交换操作数.(&nbsp;第二个操作数必须为累加器AL/AX/EAX&nbsp;)&nbsp;<BR>XADD&nbsp;先交换再累加.(&nbsp;结果在第一个操作数里&nbsp;)&nbsp;<BR>XLAT&nbsp;字节查表转换.&nbsp;<BR>──&nbsp;BX&nbsp;指向一张&nbsp;256&nbsp;字节的表的起点,&nbsp;AL&nbsp;为表的索引值&nbsp;(0-255,即&nbsp;<BR>0-FFH);&nbsp;返回&nbsp;AL&nbsp;为查表结果.&nbsp;(&nbsp;[BX+AL]-&gt;AL&nbsp;)&nbsp;<BR>2.&nbsp;输入输出端口传送指令.&nbsp;<BR>IN&nbsp;I/O端口输入.&nbsp;(&nbsp;语法:&nbsp;IN&nbsp;累加器,&nbsp;{端口号│DX}&nbsp;)&nbsp;<BR>OUT&nbsp;I/O端口输出.&nbsp;(&nbsp;语法:&nbsp;OUT&nbsp;{端口号│DX},累加器&nbsp;)&nbsp;<BR>输入输出端口由立即方式指定时,&nbsp;其范围是&nbsp;0-255;&nbsp;由寄存器&nbsp;DX&nbsp;指定时,&nbsp;<BR>其范围是&nbsp;0-65535.&nbsp;<BR>3.&nbsp;目的地址传送指令.&nbsp;<BR>LEA&nbsp;装入有效地址.&nbsp;<BR>例:&nbsp;LEA&nbsp;DX,string&nbsp;把偏移地址存到DX.&nbsp;<BR>LDS&nbsp;传送目标指针,把指针内容装入DS.&nbsp;<BR>例:&nbsp;LDS&nbsp;SI,string&nbsp;把段地址:偏移地址存到DS:SI.&nbsp;<BR>LES&nbsp;传送目标指针,把指针内容装入ES.&nbsp;<BR>例:&nbsp;LES&nbsp;DI,string&nbsp;把段地址:偏移地址存到ESI.&nbsp;<BR>LFS&nbsp;传送目标指针,把指针内容装入FS.&nbsp;<BR>例:&nbsp;LFS&nbsp;DI,string&nbsp;把段地址:偏移地址存到FSI.&nbsp;<BR>LGS&nbsp;传送目标指针,把指针内容装入GS.&nbsp;<BR>例:&nbsp;LGS&nbsp;DI,string&nbsp;把段地址:偏移地址存到GSI.&nbsp;<BR>LSS&nbsp;传送目标指针,把指针内容装入SS.&nbsp;<BR>例:&nbsp;LSS&nbsp;DI,string&nbsp;把段地址:偏移地址存到SSI.<BR>4.&nbsp;标志传送指令.&nbsp;<BR>LAHF&nbsp;标志寄存器传送,把标志装入AH.&nbsp;<BR>SAHF&nbsp;标志寄存器传送,把AH内容装入标志寄存器.&nbsp;<BR>PUSHF&nbsp;标志入栈.&nbsp;<BR>POPF&nbsp;标志出栈.&nbsp;<BR>PUSHD&nbsp;32位标志入栈.&nbsp;<BR>POPD&nbsp;32位标志出栈.&nbsp;<BR><BR>二、算术运算指令&nbsp;<BR>───────────────────────────────────────&nbsp;<BR>ADD&nbsp;加法.&nbsp;<BR>ADC&nbsp;带进位加法.&nbsp;<BR>INC&nbsp;加&nbsp;1.&nbsp;<BR>AAA&nbsp;加法的ASCII码调整.&nbsp;<BR>DAA&nbsp;加法的十进制调整.&nbsp;<BR>SUB&nbsp;减法.&nbsp;<BR>SBB&nbsp;带借位减法.&nbsp;<BR>DEC&nbsp;减&nbsp;1.&nbsp;<BR>NEC&nbsp;求反(以&nbsp;0&nbsp;减之).&nbsp;<BR>CMP&nbsp;比较.(两操作数作减法,仅修改标志位,不回送结果).&nbsp;<BR>AAS&nbsp;减法的ASCII码调整.&nbsp;<BR>DAS&nbsp;减法的十进制调整.&nbsp;<BR>MUL&nbsp;无符号乘法.&nbsp;<BR>IMUL&nbsp;整数乘法.&nbsp;<BR>以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),&nbsp;<BR>AAM&nbsp;乘法的ASCII码调整.&nbsp;<BR>DIV&nbsp;无符号除法.&nbsp;<BR>IDIV&nbsp;整数除法.&nbsp;<BR>以上两条,结果回送:&nbsp;<BR>商回送AL,余数回送AH,&nbsp;(字节运算);&nbsp;<BR>或&nbsp;商回送AX,余数回送DX,&nbsp;(字运算).&nbsp;<BR>AAD&nbsp;除法的ASCII码调整.&nbsp;<BR>CBW&nbsp;字节转换为字.&nbsp;(把AL中字节的符号扩展到AH中去)&nbsp;<BR>CWD&nbsp;字转换为双字.&nbsp;(把AX中的字的符号扩展到DX中去)&nbsp;<BR>CWDE&nbsp;字转换为双字.&nbsp;(把AX中的字符号扩展到EAX中去)&nbsp;<BR>CDQ&nbsp;双字扩展.&nbsp;(把EAX中的字的符号扩展到EDX中去)&nbsp;<BR><BR>三、逻辑运算指令&nbsp;<BR>───────────────────────────────────────&nbsp;<BR>AND&nbsp;与运算.&nbsp;<BR>OR&nbsp;或运算.&nbsp;<BR>XOR&nbsp;异或运算.&nbsp;<BR>NOT&nbsp;取反.&nbsp;<BR>TEST&nbsp;测试.(两操作数作与运算,仅修改标志位,不回送结果).&nbsp;<BR>SHL&nbsp;逻辑左移.&nbsp;<BR>SAL&nbsp;算术左移.(=SHL)&nbsp;<BR>SHR&nbsp;逻辑右移.&nbsp;<BR>SAR&nbsp;算术右移.(=SHR)&nbsp;<BR>ROL&nbsp;循环左移.&nbsp;<BR>ROR&nbsp;循环右移.&nbsp;<BR>RCL&nbsp;通过进位的循环左移.&nbsp;<BR>RCR&nbsp;通过进位的循环右移.&nbsp;<BR>以上八种移位指令,其移位次数可达255次.&nbsp;<BR>移位一次时,&nbsp;可直接用操作码.&nbsp;如&nbsp;SHL&nbsp;AX,1.&nbsp;<BR>移位&gt;1次时,&nbsp;则由寄存器CL给出移位次数.&nbsp;<BR>如&nbsp;MOV&nbsp;CL,04&nbsp;<BR>SHL&nbsp;AX,CL&nbsp;<BR><BR>四、串指令&nbsp;<BR>───────────────────────────────────────&nbsp;<BR>DS:SI&nbsp;源串段寄存器&nbsp;:源串变址.&nbsp;<BR>ESI&nbsp;目标串段寄存器:目标串变址.&nbsp;<BR>CX&nbsp;重复次数计数器.&nbsp;<BR>AL/AX&nbsp;扫描值.&nbsp;<BR>D标志&nbsp;0表示重复操作中SI和DI应自动增量;&nbsp;1表示应自动减量.&nbsp;<BR>Z标志&nbsp;用来控制扫描或比较操作的结束.&nbsp;<BR>MOVS&nbsp;串传送.&nbsp;<BR>(&nbsp;MOVSB&nbsp;传送字符.&nbsp;MOVSW&nbsp;传送字.&nbsp;MOVSD&nbsp;传送双字.&nbsp;)&nbsp;<BR>CMPS&nbsp;串比较.&nbsp;<BR>(&nbsp;CMPSB&nbsp;比较字符.&nbsp;CMPSW&nbsp;比较字.&nbsp;)&nbsp;<BR>SCAS&nbsp;串扫描.&nbsp;<BR>把AL或AX的内容与目标串作比较,比较结果反映在标志位.&nbsp;<BR>LODS&nbsp;装入串.&nbsp;<BR>把源串中的元素(字或字节)逐一装入AL或AX中.&nbsp;<BR>(&nbsp;LODSB&nbsp;传送字符.&nbsp;LODSW&nbsp;传送字.&nbsp;LODSD&nbsp;传送双字.&nbsp;)&nbsp;<BR>STOS&nbsp;保存串.&nbsp;<BR>是LODS的逆过程.&nbsp;<BR>REP&nbsp;当CX/ECX&lt;&gt;0时重复.&nbsp;<BR>REPE/REPZ&nbsp;当ZF=1或比较结果相等,且CX/ECX&lt;&gt;0时重复.&nbsp;<BR>REPNE/REPNZ&nbsp;当ZF=0或比较结果不相等,且CX/ECX&lt;&gt;0时重复.&nbsp;<BR>REPC&nbsp;当CF=1且CX/ECX&lt;&gt;0时重复.&nbsp;<BR>REPNC&nbsp;当CF=0且CX/ECX&lt;&gt;0时重复.&nbsp;<BR><BR>五、程序转移指令&nbsp;<BR>───────────────────────────────────────&nbsp;<BR>1&gt;无条件转移指令&nbsp;(长转移)&nbsp;<BR>JMP&nbsp;无条件转移指令&nbsp;<BR>CALL&nbsp;过程调用&nbsp;<BR>RET/RETF过程返回.&nbsp;<BR>2&gt;条件转移指令&nbsp;(短转移,-128到+127的距离内)&nbsp;<BR>(&nbsp;当且仅当(SF&nbsp;XOR&nbsp;OF)=1时,OP1&lt;OP2&nbsp;)&nbsp;<BR>JA/JNBE&nbsp;不小于或不等于时转移.&nbsp;<BR>JAE/JNB&nbsp;大于或等于转移.&nbsp;<BR>JB/JNAE&nbsp;小于转移.&nbsp;<BR>JBE/JNA&nbsp;小于或等于转移.&nbsp;<BR>以上四条,测试无符号整数运算的结果(标志C和Z).&nbsp;<BR>JG/JNLE&nbsp;大于转移.&nbsp;<BR>JGE/JNL&nbsp;大于或等于转移.&nbsp;<BR>JL/JNGE&nbsp;小于转移.&nbsp;<BR>JLE/JNG&nbsp;小于或等于转移.&nbsp;<BR>以上四条,测试带符号整数运算的结果(标志S,O和Z).&nbsp;<BR>JE/JZ&nbsp;等于转移.&nbsp;<BR>JNE/JNZ&nbsp;不等于时转移.&nbsp;<BR>JC&nbsp;有进位时转移.&nbsp;<BR>JNC&nbsp;无进位时转移.&nbsp;<BR>JNO&nbsp;不溢出时转移.&nbsp;<BR>JNP/JPO&nbsp;奇偶性为奇数时转移.&nbsp;<BR>JNS&nbsp;符号位为&nbsp;<I>"</I>0<I>"</I>&nbsp;时转移.&nbsp;<BR>JO&nbsp;溢出转移.&nbsp;<BR>JP/JPE&nbsp;奇偶性为偶数时转移.&nbsp;<BR>JS&nbsp;符号位为&nbsp;<I>"</I>1<I>"</I>&nbsp;时转移.&nbsp;<BR>3&gt;循环控制指令(短转移)&nbsp;<BR>LOOP&nbsp;CX不为零时循环.&nbsp;<BR>LOOPE/LOOPZ&nbsp;CX不为零且标志Z=1时循环.&nbsp;<BR>LOOPNE/LOOPNZ&nbsp;CX不为零且标志Z=0时循环.&nbsp;<BR>JCXZ&nbsp;CX为零时转移.&nbsp;<BR>JECXZ&nbsp;ECX为零时转移.&nbsp;<BR>4&gt;中断指令&nbsp;<BR>INT&nbsp;中断指令&nbsp;<BR>INTO&nbsp;溢出中断&nbsp;<BR>IRET&nbsp;中断返回&nbsp;<BR>5&gt;处理器控制指令&nbsp;<BR>HLT&nbsp;处理器暂停,&nbsp;直到出现中断或复位信号才继续.&nbsp;<BR>WAIT&nbsp;当芯片引线TEST为高电平时使CPU进入等待状态.&nbsp;<BR>ESC&nbsp;转换到外处理器.&nbsp;<BR>LOCK&nbsp;封锁总线.&nbsp;<BR>NOP&nbsp;空操作.&nbsp;<BR>STC&nbsp;置进位标志位.&nbsp;<BR>CLC&nbsp;清进位标志位.&nbsp;<BR>CMC&nbsp;进位标志取反.&nbsp;<BR>STD&nbsp;置方向标志位.&nbsp;<BR>CLD&nbsp;清方向标志位.&nbsp;<BR>STI&nbsp;置中断允许位.&nbsp;<BR>CLI&nbsp;清中断允许位.&nbsp;<BR><BR>六、伪指令&nbsp;<BR>───────────────────────────────────────&nbsp;<BR>DB&nbsp;定义字节.&nbsp;<BR>DW&nbsp;定义字(2字节).&nbsp;<BR>PROC&nbsp;定义过程.&nbsp;<BR>ENDP&nbsp;过程结束.&nbsp;<BR>SEGMENT&nbsp;定义段.&nbsp;<BR>ASSUME&nbsp;建立段寄存器寻址.&nbsp;<BR>ENDS&nbsp;段结束.&nbsp;<BR>END&nbsp;程序结束.<BR>（第四课）&nbsp;<BR><BR>常用工具介绍<BR><BR>破解离不开工具，合适的工具使你事半功倍，本课主要是介绍几种破解工具，当然详细的用法，参考后面几课及范例。<BR>&nbsp;&nbsp;&nbsp;&nbsp;1.调试工具softice<BR>&nbsp;&nbsp;&nbsp;&nbsp;2.调试工具Trw2000<BR>&nbsp;&nbsp;&nbsp;&nbsp;3.反汇编工具Wdasm8.93&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;4.Hiew<BR>&nbsp;&nbsp;&nbsp;&nbsp;5.Visual&nbsp;Basic程序调试工具Smartcheck<BR>&nbsp;&nbsp;&nbsp;&nbsp;6.十六进制编辑器（如：Ultraedit、WinHex、Hex&nbsp;Workshop&nbsp;等）<BR>&nbsp;&nbsp;&nbsp;&nbsp;7.注册表监视工具RegShot、regmon或RegSnap<BR>&nbsp;&nbsp;&nbsp;&nbsp;8.侦测文件类型工具TYP、gtw或FileInfo等<BR>&nbsp;&nbsp;&nbsp;&nbsp;9.&nbsp;脱壳工具PROCDUMP&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;10.调试工具IceDump&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;11.注册机制作crackcode2000&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;12.备份windows配制文件工具ERU<BR>&nbsp;&nbsp;&nbsp;&nbsp;13.文件监视工具&nbsp;filemon&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;14.资源修改器&nbsp;EXESCOPE&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;15.Frogsice&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;16.IDA&nbsp;反汇编工具&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;一看这么多是不是吓坏了，其实你只需掌握一两种就能破解软件，当然要得心应手，最好还是全面掌握，因为现在软件什么手段都有可能采用。<BR><BR>Soft-ICE&nbsp;是目前公认最好的跟踪调试工具。使用Soft-ICE可以很容易的跟踪一个软件、或是监视软件产生的错误进行除错。你甚至可以用他来替代C语言的调试器－－如果你不喜欢使用C语言自己的调试器的话。主意其有几种平台的版本，DOS,WINDOW3.1,WIN95/98/2000/,NT，所以别搞错了。<BR><BR><BR>Trw2000&nbsp;&nbsp;中国人自己编写的调试软件，完全兼容SOFTICE各种指令，但现在许多软件能检测SOFTICE存在，而TRW2000在这方面就好多了。TRW2000有它自己的独特方面，是针对破解软件优化的，Windows下的跟踪调试程序，跟踪功能更强；可以设置各种断点，只是断点种类更多；它可以象一些脱壳工具一样完成对加密外壳的去除，自动生成EXE文件，只是留给用户更多的选择；在DOS下的版本为TR。<BR><BR><BR>Wdasm8.93&nbsp;&nbsp;反汇编的极品工具。可方便反汇编程序，它能静态分析程序流程，也可动态分析程序，操作简单、破解必备！<BR><BR><BR>Hiew&nbsp;不用多说，是一个十六进制工具，它除了普通十六进制的功能外，它还有个特色，能反汇编文件，并可以汇编指令修改程序，是不是够酷的！<BR><BR><BR>Smartcheck&nbsp;VB程序执行时从本质上讲是解释执行，它们只是调用&nbsp;VBRUNxxx.DLL&nbsp;中的函数&nbsp;，VB&nbsp;的&nbsp;exe&nbsp;是伪代码，程序都在&nbsp;vbXXX.dll&nbsp;里面执行，你只能在&nbsp;vbdll&nbsp;里面用SOFTICE&nbsp;打转转，什么都改不成，而且代码质量不高，结构还颇复杂。&nbsp;当然只要了解其特点用SOFTICE也可破解&nbsp;，但SmartCheck的出现，大大方便了我们，它可将VB程序执行的操作完全记录下来，使我们轻而易举的破解大部分VB程序。<BR><BR><BR>十六进制编辑器&nbsp;HIEW就是一种是十六进制工具，但其是DOS界面，因此有必要再准备一款windows下的工具，这样的工具很多，如：Ultraedit、WinHex、Hex&nbsp;Workshop&nbsp;等，其中Hex&nbsp;Workshop比较有特色，操作方便，但遗憾的是没有汉化版。<BR><BR><BR>注册表监视工具&nbsp;注册表是Windows&nbsp;95及Windows&nbsp;98的核心数据库，表中存放着各种参数，直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序运行的正常与否。而应用软件安装时，有可能在注册表中注册，将一些必要的信息放进去，如安装时间，使用次数等。RegShot、regmon或RegSnap就是一种监视注册表变化的工具，以了解应用程序在注册表何处修改了，以协助破解。<BR><BR><BR>侦测文件类型工具&nbsp;这样的工具有TYP、gtw或FileInfo等。这是一个能侦测你的软件是被哪一种「壳」给加密了&nbsp;(就好像侦测你的文件档是被zip、rar、arj哪一个给压缩&nbsp;了一样，如果连被哪种软体加了壳都不晓得，那要剥壳就难很多)。一般配合PROCUDUMP使用。<BR><BR><BR>PROCDUMP&nbsp;脱壳工具，可剥许多壳，你使用的许多软件都是压缩过的，用该工具很方便把它们还原，然后再修改，并可自己编写脚本文件，以便能脱壳新版的壳。它是也一款优秀的PE格式修改工具，脱壳必备！<BR><BR><BR>IceDump&nbsp;是配合SOFTICE而使用的，可抓取内存的数据，以重建EXE文件,脱壳必备。并可在SOFTICE下边调试边听mp3哟！具体参考其readme.<BR><BR><BR>crackcode2000&nbsp;一种全新的注册机工具，它可以从另一进程的内存中取出你想要的注册码，它可以令水平不高的你一夜之间成为破解高手，有了它，很多软件可以用二十秒时间写出注册机来，而你不需要会任何的语言，因为它只是一个工具，一个操作很简单的工具，它的参数只有四行，&nbsp;实在简单到不能再简单了，它的体积也很少，只有11K，如果再用其它压缩软件压一下一定&nbsp;会小于10K，所以用它是可以做出很优秀的注册机。<BR><BR><BR>ERU&nbsp;&nbsp;&nbsp;这是windows安装盘自带的小工具，备份注册表等一些windows重要的配制文件，强烈推荐，在你破解一软件前，最好备份一下系统，因为你在破解某些软件的过程中，寻找关键点时，在这时改动一下以验证自己的判断，结果正确注册成功，此时你再想回到那里看一究竟，重装该软件都没用，哈哈！永远是注册版版，除非你重装系统。此时你只要还原注册表和配制文件，再重装该软件，又可注册了，这次你就可好好研究它一下了......，当然这种情况不多见，但破解某些软件前备份一下注册表，还是有必要的。<BR><BR><BR>filemon&nbsp;文件监视工具&nbsp;，可监视系统文件运行状况，如哪个文件打开，哪个文件关闭，在哪个文件读取了数据等，破解时非常有用，以便了解程序在启动、关闭或验证注册码是做了哪些手脚。<BR><BR><BR>EXESCOPE&nbsp;资源修改器&nbsp;eXeScope&nbsp;可以说是&nbsp;EXE&nbsp;及&nbsp;DLL&nbsp;等执行文件的解析终结工具，&nbsp;它有执行文件(EXE,&nbsp;DLL等)的解析与显示功能；提取资源到外部文件&nbsp;；资源的重新写入；记录文件的记录及其再编辑(成批编辑)等功能。是汉化软件的常用工具，当然破解软件时也很有用。<BR><BR><BR< p>Frogsice&nbsp;最好的&nbsp;SOFT-ICE&nbsp;加强软件！它并不是简单的将&nbsp;SICE&nbsp;隐藏，而是让你可以配合&nbsp;SICE&nbsp;避过现在流行的各种加密、保护软件里面的各种防止&nbsp;SICE&nbsp;的陷阱。有了它，你再也不用怕在装入一个程序准备调试的时候，程序告诉你发现&nbsp;SICE&nbsp;的存在而终止运行，或者干脆把你的机器从新启动，又甚至触发更残酷的报复手段。&nbsp;<BR>IDA&nbsp;强大的反汇编工具，COOL！！&nbsp;<BR< p></FONT></TD></TR></TBODY></TABLE></FONT><img src ="http://www.blogjava.net/yjf_aimar/aggbug/27234.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2006-01-09 11:28 <a href="http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27234.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>服务器搬迁</title><link>http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27229.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Mon, 09 Jan 2006 02:50:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27229.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/27229.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27229.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/27229.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/27229.html</trackback:ping><description><![CDATA[1、IIS<BR>2、DNS中指向外网IP的记录<BR>3、HOSTS文件中指向外网IP的记录（C:\WINDOWS\system32\drivers\etc\hosts文件）<img src ="http://www.blogjava.net/yjf_aimar/aggbug/27229.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2006-01-09 10:50 <a href="http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27229.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>破解DR.COM的新方法之国外新秀</title><link>http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27223.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Mon, 09 Jan 2006 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27223.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/27223.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27223.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/27223.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/27223.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 破解DR.COM的新方法之国外新秀http://www.cqbullet.com/2005/10-26/105622-3.htmls写前话:&nbsp;&nbsp;&nbsp; 最近， 很多朋友来信咨询为什么使用SOCKS 代理无法使用DR.COM 了!,后经核实, 是DR.COM 升级了他的认证客户端，并对代理软件和端口进行了进一步限制的结果。&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27223.html'>阅读全文</a><img src ="http://www.blogjava.net/yjf_aimar/aggbug/27223.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2006-01-09 10:20 <a href="http://www.blogjava.net/yjf_aimar/archive/2006/01/09/27223.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL数据库同步</title><link>http://www.blogjava.net/yjf_aimar/archive/2006/01/08/27137.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Sun, 08 Jan 2006 06:28:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2006/01/08/27137.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/27137.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2006/01/08/27137.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/27137.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/27137.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 两台SQL Server数据同步解决方案复制的概念　　复制是将一组数据从一个数据源拷贝到多个数据源的技术，是将一份数据发布到多个存储站点上的有效方式。使用复制技术，用户可以将一份数据发布到多台服务器上，从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新，从而保证数据的一致性。　　SQL复制的基本元素包括：出版服务器、订阅服务器、分发服...&nbsp;&nbsp;<a href='http://www.blogjava.net/yjf_aimar/archive/2006/01/08/27137.html'>阅读全文</a><img src ="http://www.blogjava.net/yjf_aimar/aggbug/27137.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2006-01-08 14:28 <a href="http://www.blogjava.net/yjf_aimar/archive/2006/01/08/27137.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>无盘终端站的常见精典问题解答</title><link>http://www.blogjava.net/yjf_aimar/archive/2005/12/27/25605.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Tue, 27 Dec 2005 09:03:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2005/12/27/25605.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/25605.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2005/12/27/25605.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/25605.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/25605.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=4 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top align=middle colSpan=2><FONT class=bigfont face=Tahoma><B></B></FONT></TD></TR>
<TR>
<TD vAlign=top align=middle colSpan=2></TD></TR>
<TR>
<TD vAlign=top bgColor=#eeeeee colSpan=2 height=1>
<P align=center><FONT face=Tahoma>无盘终端站的常见精典问题解答</FONT></P></TD></TR>
<TR>
<TD vAlign=top colSpan=2>
<TABLE cellSpacing=1 cellPadding=4 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top>
<DIV class=subhead><B></B>&nbsp;</DIV></TD></TR>
<TR>
<TD style="WORD-BREAK: break-all" vAlign=top>
<DIV class=content>
<DIV class=hdtxt>1．<BR>Q：我在更换了服务器的网卡后，所有工作站仍然能够正常进行无盘DOS的启动，但是进不了无盘Win2K终端了。出现提示"NetBios not available ( NetBios 254 )"。怎么办？<BR>A：更换了服务器的网卡后，还需要改变服务器端相应的连接配置。具体操作如下：<BR>（1）在服务器端选"开始→程序→管理工具→MetaFrame Tools→Citrix Connection Configuration"项则进入名为"Citrix Connection Configuration"的窗口。<BR>（2）双击其中的连接"ica-netbios"即进入名为"Edit Connection"的窗口，把"Lan Adapter"项的值改选为新网卡，最后按"OK"保存退出即可。<BR><BR>2．<BR>Q：我的服务器本来运转正常，后来我又在服务器端新增加了一块网卡，结果接新增加网卡的那个网段虽然可以进行无盘DOS的启动，但不能进入无盘Win2K。是否还需要进行些什么额外的设置吗？<BR>A：在服务器端新加了网卡之后，还需要为新网卡建立相应的连接配置文件。具体操作如下：<BR>（1） 在服务器端选"开始→程序→管理工具→MetaFrame Tools→Citrix Connection Configuration"项则进入名为"Citrix Connection Configuration"的窗口。<BR>（2）选菜单"Connection→New"，则进入名为"New Connection"的窗口。在此窗口中，"Name"一项为连接配置文件名，可为任意内容，比如"new-netbios"；"Transport"一项需选择相应的连接传输协议，此处应选"NetBios"；"Lan Adapter"处则选择新网卡名；其他项目均取默认值即可。最后按"OK"保存退出。<BR>（3）需要注意的是，重新启动服务器后新连接配置文件方才生效！<BR><BR>3．<BR>Q：我登录Win2K服务器时，系统提示说我"没有登录此会话的权限"。我已给用户设了"在本机登录"的权限还是不行。这怎么办啊？<BR>A：可能是你安装终端服务时所选择的类型不当造成的。请按以下步骤重新安装Win2K自带的终端服务（已装好的其他软件和服务等均不需重装）： <BR>（1）选"控制面板→添加/删除程序→添加/删除Windows 组件"，则进入"Windows 组件安装向导"窗口。<BR>（2）在"Windows 组件安装向导"的"组件"框中勾选"终端服务"项，再单击"下一步"。<BR>（3）再依次选"应用程序服务器模式→下一步→跟 Terminal Server 4.0 用户兼容的模式"及其他默认选项,最后单击"完成"即可。<BR>（4）安装完成后，需重新启动计算机。<BR><BR>4．<BR>Q：如何才能仅给某个普通终端用户赋予关机的权限？<BR>A：在服务器端用管理员身份（Administrator）登录后，选"开始→程序→管理工具→本地安全设置→用户权利指派"，然后在右边窗口中双击"关闭系统"项，再将此用户添加到列表中即可。<BR><BR>5．<BR>Q：我用用户"07"登录到终端后，发觉只有16色，于是选了"关机"中的"断开"很快退出了Win2K终端屏幕；当我将色彩改成了16位色，再进去后，发现它仍然是16色！为什么没变呢？<BR>A：你退出时选错了"关机"中的项目！你选的是"断开"，再进去后，它仍将维持原有的所有特性，色彩自然也不会变了！你需要选一次"注消"，然后再重新登录进去，就可以看到新的效果了！<BR><BR>6．<BR>Q：我在某台工作站上用"07"完成了从DOS直接登录到Win2K终端后才发觉，我的鼠标驱动程序忘了加载，于是"断开"加载了后再重新进入，仍然找不到鼠标！用其他用户在这台机器上登录是有鼠标的。<BR>A：仍然是关机时选择错了项目！在这种情况下，你应该选"注销"以完全退出上次的运行状态，否则你下次进这个用户它还是保持以前无鼠标时的特性的！<BR><BR>7．<BR>Q：在Win2K终端状态下，服务器的硬盘、光驱和本地工作站自带的硬盘、光驱如何分辨和使用？<BR>A：请先进入Win2K终端窗口的"我的电脑"中，则可看到如图6-4-11所示的界面。其中，没有"位于"Client"上"字样的即为服务器的硬盘，比如下图中的C盘、D盘、E盘、F盘（前列均为服务器硬驱）和G盘（前列为服务器的光驱）；其他为本地驱动器，如图中的A盘、H盘、T盘、U盘和V盘等。具体的相关说明如下：<BR>（1）配为G盘（G$），而在Win2K终端状态下（即截图时所处状态）被分配为T盘（T:）。<BR>（2）第一个本地的硬盘驱动器（如果没硬盘即为第一个本地的光盘驱动器）在DOS下会自动分配为DOS的D盘；其他驱动器依此类推。而在Win2K中分配时，顺序却是倒着来，即最后一个硬盘或光盘驱动器被分配给最前顺序的盘符，第一个硬盘或光盘驱动器反是最后顺序的盘符了。<BR>（3）本地硬驱和光驱都被当作网络驱动器来看待，因此均具有相同的图标，不再区分。<BR>（4）基于DOS和基于Win3.2的Win2K终端均具有同样的相关属性。<BR><BR>8．<BR>Q：如何解决终端服务天数限制的问题？ <BR>A：可以试下这种方法：在安装Win2K前，先前系统时间调到2010年，然后再正常安装Win2K、设置无盘、安装终端，记住在安装Win2K自带的终端服务时不要选择其中的"终端服务授权"一项。所有东东都做完后，再把时间改回正常系统时间即可。<BR><BR>9．<BR>Q：如何激活终端服务？<BR>A：Win2K的终端服务有90天的限制，如果这90天内不激活它的话，过期之后就不能连接到Win2K终端了（不影响无盘DOS站的使用）。要激活它首先得拥有一个七位数的注册号码（6565792或者5296992中任意一个均可），利用它再经过如下操作即可完成终端的激活：<BR>（1）首先进入"我的电脑→控制面板→添加/删除程序，选"添加/删除 Windows 组件"，然后确保已选中其中的"终端服务"和"终端服务授权"两项。<BR>（2）当安装了"终端服务"和"终端服务授权"之后，在"开始→程序→管理工具"中就有"终端服务授权"一项，打开它，即可得到一个四段共20位数的"产品ID"，抄下它。<BR>（3）接入Internet，打开浏览器，进入https://activate.microsoft.com（注意是"https"而不是"http"，这里千万不要少了那个"s"）这个地址，此时是英文界面。在左上角的下拉框中选中"Chinese(Simplified)"（简体中文）项，再按"GO"图标。<BR>（4）现在便得到的是中文网页了。确保已选中"启用许可证服务器"项，再单击"下一步"按钮。<BR>（5）在随后要求提供的信息界面中，"产品ID"处输入刚才抄下的那个20位数字；"购买方式"为"Select or Enterprise Agreetment"；再填入自己的其他基本资料，然后再选"下一步"继续。<BR>（6）此时系统会显示你方才输入的个人信息，确信无误之后再 "下一步"。<BR>（7）你便可以得到"已成功处理您的许可证服务器启动申请。你的许可证ID是：…"，又是一个需要抄下的分为七段的35位数，里面包含有数字也有大写的英文字母；并且还会问你"需要此时获取客户机许可证吗？"，你当然应该?quot;是"。<BR>（8）在接下来的界面中，"产品类型"一项应为"Windows 2000终端服务客户机访问许可证"；"数量"为你欲连接的最大用户数（比如为"100"）；在"注册号码"中输入你从微软获得的那个七位数（6565792或者5296992中任意一个均可），再"下一步"。<BR>（9）此时又是让你确认你的操作，无误后按"下一步"。<BR>（10）现在应该是"谢谢您激活终端服务许可证"的时候了！你的收获包括两个东东，一个是刚才已经得到的那个35位数的"许可证服务器ID"，一个是现在才取得的另一个七段共35位数的"许可证密钥包ID"。恭喜你！<BR>（11）现在该重新回到"开始→程序→管理工?quot;的"终端服务授权"中，用"下一步"大胆地前进吧！<BR>（12）当要求你指定注册时的"连接方法"时选"万维网"，再"下一步"。<BR>（13）根据提示逐字认真输入所获得的那个"许可证服务器ID"。<BR>（14）现在便完成了授权向导，还需要"立即安装许可证"，"下一步"继续。<BR>（15）根据提示逐字认真输入所获得的那个"许可证密钥包ID"。<BR>（16）长出了一口气：现在就再也没有90天的后顾之忧了！<BR>（17）等等！还有一步呢！再选中"终端服务授权"中的"SERVER"（服务器名），单击右键，启用即可。<BR><BR>10．<BR>Q：我以前装的是MF18，本来使用正常，但是最近当我升级到SP2（或SP3）后，客户端用普通用户就无法登录了，先是显示"The Reauired licenses are not install . Either a Citrix Base License or Citrix Upgrade License needs to be installed to allow more than 1 logon."，我按"确定"后，接着显示"您没有登录这个会话的访问权"就退出来了；用管理员身份（administrator）还是可以登录的。<BR>A：你需要再安装客户端许可证。具体请参阅本站终端部分文章中的第三篇。http://www.enanshan.com/nodisk/wbt03.htm<BR><BR>11．<BR>Q：我的ICADOS或ICADOS32登录无盘Win2K终端是正常的，但是ICA16和ICA32均不行了！出现"error in connection.The Citrix Server is not available,please try again later."（连接错误！CITRIX服务器不合法。请稍候重试！）的提示，无法进入？<BR>A：估计是你的服务器的系统时间不正确！因为你的MF18可能是共享版，有时间限制。请把它调到"合法" （1999年9月23日～2000年3月8日）的时间范围内，再重新尝试登录连接应该就可以成功！</DIV></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><img src ="http://www.blogjava.net/yjf_aimar/aggbug/25605.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2005-12-27 17:03 <a href="http://www.blogjava.net/yjf_aimar/archive/2005/12/27/25605.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决终端服务90天限制问题</title><link>http://www.blogjava.net/yjf_aimar/archive/2005/12/27/25598.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Tue, 27 Dec 2005 08:52:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2005/12/27/25598.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/25598.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2005/12/27/25598.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/25598.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/25598.html</trackback:ping><description><![CDATA[<DIV class=post>
<DIV class=posthead>
<H2>所属分类: <A href="http://larkcom.cnblogs.com/category/10416.html">MetaFrame</A> <IMG height=1 src="http://larkcom.cnblogs.com/aggbug/115951.html?webview=1" width=1> <!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
rdf:about="http://larkcom.cnblogs.com/archive/2005/03/10/115951.html"
dc:identifier="http://larkcom.cnblogs.com/archive/2005/03/10/115951.html"
dc:title="解决终端服务90天限制问题"
trackback:ping="http://larkcom.cnblogs.com/services/trackbacks/115951.aspx" />
</rdf:RDF>
--></H2></DIV>
<DIV class=postbody>win2k服务器上装了应用程序模式的终端服务，并打了sp4的终端服务破解补丁，经测试解除了时间限制。但服务器在一次系统自动更新以后，该补丁失效了。90天以后，客户机不能再登陆到服务器。那个着急啊~~~~~~~~~ <BR><BR>后来，这篇文章帮助了我：<A href="http://www.33d9.com/doc/article/641.html">http://www.33d9.com/doc/article/641.html</A> <BR>贴出原文与大家分享： <BR><BR>Q：如何激活终端服务？ <BR>A：Win2K的终端服务有90天的限制，如果这90天内不激活它的话，过期之后就不能连接到Win2K终端了（不影响无盘DOS站的使用）。要激活它首先得拥有一个七位数的注册号码（6565792或者5296992中任意一个均可），利用它再经过如下操作即可完成终端的激活： <BR>（1）首先进入"我的电脑→控制面板→添加/删除程序，选"添加/删除 Windows 组件"，然后确保已选中其中的"终端服务"和"终端服务授权"两项。 <BR>（2）当安装了"终端服务"和"终端服务授权"之后，在"开始→程序→管理工具"中就有"终端服务授权"一项，打开它，即可得到一个四段共20位数的"产品ID"，抄下它。 <BR>（3）接入Internet，打开浏览器，进入<A href="https://activate.microsoft.com/">https://activate.microsoft.com</A>（注意是"https"而不是"http"，这里千万不要少了那个"s"）这个地址，此时是英文界面。在左上角的下拉框中选中"Chinese(Simplified)"（简体中文）项，再按"GO"图标。 <BR>（4）现在便得到的是中文网页了。确保已选中"启用许可证服务器"项，再单击"下一步"按钮。 <BR>（5）在随后要求提供的信息界面中，"产品ID"处输入刚才抄下的那个20位数字；"购买方式"为"Select or Enterprise Agreetment"；再填入自己的其他基本资料，然后再选"下一步"继续。 <BR>（6）此时系统会显示你方才输入的个人信息，确信无误之后再 "下一步"。 <BR>（7）你便可以得到"已成功处理您的许可证服务器启动申请。你的许可证ID是：…"，又是一个需要抄下的分为七段的35位数，里面包含有数字也有大写的英文字母；并且还会问你"需要此时获取客户机许可证吗？"，你当然应该?quot;是"。 <BR>（8）在接下来的界面中，"产品类型"一项应为"Windows 2000终端服务客户机访问许可证"；"数量"为你欲连接的最大用户数（比如为"100"）；在"注册号码"中输入你从微软获得的那个七位数（6565792或者5296992中任意一个均可），再"下一步"。 <BR>（9）此时又是让你确认你的操作，无误后按"下一步"。 <BR>（10）现在应该是"谢谢您激活终端服务许可证"的时候了！你的收获包括两个东东，一个是刚才已经得到的那个35位数的"许可证服务器ID"，一个是现在才取得的另一个七段共35位数的"许可证密钥包ID"。恭喜你！ <BR>（11）现在该重新回到"开始→程序→管理工?quot;的"终端服务授权"中，用"下一步"大胆地前进吧！ <BR>（12）当要求你指定注册时的"连接方法"时选"万维网"，再"下一步"。 <BR>（13）根据提示逐字认真输入所获得的那个"许可证服务器ID"。 <BR>（14）现在便完成了授权向导，还需要"立即安装许可证"，"下一步"继续。 <BR>（15）根据提示逐字认真输入所获得的那个"许可证密钥包ID"。 <BR>（16）长出了一口气：现在就再也没有90天的后顾之忧了！ <BR>（17）等等！还有一步呢！再选中"终端服务授权"中的"SERVER"（服务器名），单击右键，启用即可。 <BR><BR>另外，windows 2003的终端服务也可以激活：）</DIV></DIV><img src ="http://www.blogjava.net/yjf_aimar/aggbug/25598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2005-12-27 16:52 <a href="http://www.blogjava.net/yjf_aimar/archive/2005/12/27/25598.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>端口大全</title><link>http://www.blogjava.net/yjf_aimar/archive/2005/12/07/22853.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Wed, 07 Dec 2005 06:30:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2005/12/07/22853.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/22853.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2005/12/07/22853.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/22853.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/22853.html</trackback:ping><description><![CDATA[<P>
<TABLE cellSpacing=1 cellPadding=6 width="96%" align=center bgColor=#bdc0c8 border=0>
<TBODY>
<TR>
<TD align=middle bgColor=#ffffff><FONT color=#ff6600><B>端口总览</B></FONT></TD></TR></TBODY></TABLE>
<TABLE border=0>
<TBODY>
<TR>
<TD height=5></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=1 cellPadding=6 width="96%" align=center bgColor=#bdc0c8 border=0>
<TBODY>
<TR>
<TD align=middle bgColor=#ffffff>
<TABLE width="98%">
<TBODY>
<TR>
<TD id=xiaoc style="WORD-BREAK: break-all; LINE-HEIGHT: 150%"><BR><FONT color=#000000>--&nbsp;计算机端口介绍[详细列表]<BR>我们常常会在各类的技术文章中见到诸如135、137、139、443之类的“端口”，可是这些端口究竟有什么用呢？它会不会给我们的计算机带来潜在的威胁呢？究竟有多少端口是有用的？想要了解的话，就跟我来吧:D<BR><BR>端口：0 <BR>服务：Reserved <BR>说明：通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口，当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描，使用IP地址为0.0.0.0，设置ACK位并在以太网层广播。<BR>端口：1 <BR>服务：tcpmux <BR>说明：这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者，默认情况下tcpmux在这种系统中被打开。Irix机器在发布是含有几个默认的无密码的帐户，如：IP、GUEST UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。许多管理员在安装后忘记删除这些帐户。因此HACKER在INTERNET上搜索tcpmux并利用这些帐户。 <BR>端口：7 <BR>服务：Echo <BR>说明：能看到许多人搜索Fraggle放大器时，发送到X.X.X.0和X.X.X.255的信息。 <BR>端口：19 <BR>服务：Character Generator <BR>说明：这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时会发送含有垃圾字符的数据流直到连接关闭。HACKER利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。同样Fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包，受害者为了回应这些数据而过载。 <BR>端口：21 <BR>服务：FTP <BR>说明：FTP服务器所开放的端口，用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。 <BR>端口：22 <BR>服务：Ssh <BR>说明：PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点，如果配置成特定的模式，许多使用RSAREF库的版本就会有不少的漏洞存在。 <BR>端口：23 <BR>服务：Telnet <BR>说明：远程登录，入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术，入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。 <BR>端口：25 <BR>服务：SMTP <BR>说明：SMTP服务器所开放的端口，用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭，他们需要连接到高带宽的E-MAIL服务器上，将简单的信息传递到不同的地址。木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。 <BR>端口：31 <BR>服务：MSG Authentication <BR>说明：木马Master Paradise、Hackers Paradise开放此端口。<BR>端口：42 <BR>服务：WINS Replication <BR>说明：WINS复制 <BR>端口：53 <BR>服务：Domain Name Server（DNS） <BR>说明：DNS服务器所开放的端口，入侵者可能是试图进行区域传递（TCP），欺骗DNS（UDP）或隐藏其他的通信。因此防火墙常常过滤或记录此端口。 <BR>端口：67 <BR>服务：Bootstrap Protocol Server <BR>说明：通过DSL和Cable modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址。HACKER常进入它们，分配一个地址把自己作为局部路由器而发起大量中间人（man-in-middle）攻击。客户端向68端口广播请求配置，服务器向67端口广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。 <BR>端口：69 <BR>服务：Trival File Transfer <BR>说明：许多服务器与bootp一起提供这项服务，便于从系统下载启动代码。但是它们常常由于错误配置而使入侵者能从系统中窃取任何 文件。它们也可用于系统写入文件。 <BR>端口：79 <BR>服务：Finger Server <BR>说明：入侵者用于获得用户信息，查询操作系统，探测已知的缓冲区溢出错误，回应从自己机器到其他机器Finger扫描。 <BR>端口：80 <BR>服务：HTTP <BR>说明：用于网页浏览。木马Executor开放此端口。 <BR>端口：99 <BR>服务：Metagram Relay <BR>说明：后门程序ncx99开放此端口。 <BR>端口：102 <BR>服务：Message transfer agent(MTA)-X.400 over TCP/IP <BR>说明：消息传输代理。<BR>端口：109 <BR>服务：Post Office Protocol -Version3 <BR>说明：POP3服务器开放此端口，用于接收邮件，客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交 换缓冲区溢出的弱点至少有20个，这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。 <BR>端口：110 <BR>服务：SUN公司的RPC服务所有端口 <BR>说明：常见RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等 <BR>端口：113 <BR>服务：Authentication Service <BR>说明：这是一个许多计算机上运行的协议，用于鉴别TCP连接的用户。使用标准的这种服务可以获得许多计算机的信息。但是它可作为许多服务的记录器，尤其是FTP、POP、IMAP、SMTP和IRC等服务。通常如果有许多客户通过防火墙访问这些服务，将会看到许多这个端口的连接请求。记住，如果阻断这个端口客户端会感觉到在防火墙另一边与E-MAIL服务器的缓慢连接。许多防火墙支持TCP连接的阻断过程中发回RST。这将会停止缓慢的连接。<BR>端口：119 <BR>服务：Network News Transfer Protocol <BR>说明：NEWS新闻组传输协议，承载USENET通信。这个端口的连接通常是人们在寻找USENET服务器。多数ISP限制，只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子，访问被限制的新闻组服务器，匿名发帖或发送SPAM。<BR>端口：135 <BR>服务：Location Service <BR>说明：Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111端口的功能很相似。使用DCOM和RPC的服务利用计算机上的end-point mapper注册它们的位置。远端客户连接到计算机时，它们查找end-point mapper找到服务的位置。HACKER扫描计算机的这个端口是为了找到这个计算机上运行Exchange Server吗？什么版本？还有些DOS攻击直接针对这个端口。 <BR>端口：137、138、139 <BR>服务：NETBIOS Name Service <BR>说明：其中137、138是UDP端口，当通过网上邻居传输文件时用这个端口。而139端口：通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINS Regisrtation也用它。 <BR>端口：143 <BR>服务：Interim Mail Access Protocol v2 <BR>说明：和POP3的安全问题一样，许多IMAP服务器存在有缓冲区溢出漏洞。记住：一种LINUX蠕虫（admv0rm）会通过这个端口繁殖，因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后，这些漏洞变的很流行。这一端口还被用于IMAP2，但并不流行。<BR>端口：161 <BR>服务：SNMP <BR>说明：SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中，通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向用户的网络。<BR>端口：177 <BR>服务：X Display Manager Control Protocol <BR>说明：许多入侵者通过它访问X-windows操作台，它同时需要打开6000端口。 <BR>端口：389 <BR>服务：LDAP、ILS <BR>说明：轻型目录访问协议和NetMeeting Internet Locator Server共用这一端口。 <BR>端口：443 <BR>服务：Https <BR>说明：网页浏览端口，能提供加密和通过安全端口传输的另一种HTTP。 <BR>端口：456 <BR>服务：[NULL] <BR>说明：木马HACKERS PARADISE开放此端口。 <BR>端口：513 <BR>服务：Login,remote login <BR>说明：是从使用cable modem或DSL登陆到子网中的UNIX计算机发出的广播。这些人为入侵者进入他们的系统提供了信息。 <BR>端口：544 <BR>服务：[NULL] <BR>说明：kerberos kshell <BR>端口：548 <BR>服务：Macintosh,File Services(AFP/IP) <BR>说明：Macintosh,文件服务。 <BR>端口：553 <BR>服务：CORBA IIOP （UDP） <BR>说明：使用cable modem、DSL或VLAN将会看到这个端口的广播。CORBA是一种面向对象的RPC系统。入侵者可以利用这些信息进入系统。 <BR>端口：555 <BR>服务：DSF <BR>说明：木马PhAse1.0、Stealth Spy、IniKiller开放此端口。 <BR>端口：568 <BR>服务：Membership DPA <BR>说明：成员资格 DPA。 <BR>端口：569 <BR>服务：Membership MSN <BR>说明：成员资格 MSN。 <BR>端口：635 <BR>服务：mountd <BR>说明：Linux的mountd Bug。这是扫描的一个流行BUG。大多数对这个端口的扫描是基于UDP的，但是基于TCP的mountd有所增加（mountd同时运行于两个端口）。记住mountd可运行于任何端口（到底是哪个端口，需要在端口111做portmap查询），只是Linux默认端口是635，就像NFS通常运行于2049端口。 <BR>端口：636 <BR>服务：LDAP <BR>说明：SSL（Secure Sockets layer） <BR>端口：666 <BR>服务：Doom Id Software <BR>说明：木马Attack FTP、Satanz Backdoor开放此端口 <BR>端口：993 <BR>服务：IMAP <BR>说明：SSL（Secure Sockets layer）<BR>端口：1001、1011 <BR>服务：[NULL] <BR>说明：木马Silencer、WebEx开放1001端口。木马Doly Trojan开放1011端口。<BR>端口：1024 <BR>服务：Reserved <BR>说明：它是动态端口的开始，许多程序并不在乎用哪个端口连接网络，它们请求系统为它们分配下一个闲置端口。基于这一点分配从端口1024开始。这就是说第一个向系统发出请求的会分配到1024端口。你可以重启机器，打开Telnet，再打开一个窗口运行natstat -a 将会看到Telnet被分配1024端口。还有SQL session也用此端口和5000端口。 <BR>端口：1025、1033 <BR>服务：1025：network blackjack 1033：[NULL] <BR>说明：木马netspy开放这2个端口。 <BR>端口：1080 <BR>服务：SOCKS <BR>说明：这一协议以通道方式穿过防火墙，允许防火墙后面的人通过一个IP地址访问INTERNET。理论上它应该只允许内部的通信向外到达INTERNET。但是由于错误的配置，它会允许位于防火墙外部的攻击穿过防火墙。WinGate常会发生这种错误，在加入IRC聊天室时常会看到这种情况。 <BR>端口：1170 <BR>服务：[NULL] <BR>说明：木马Streaming Audio Trojan、Psyber Stream Server、Voice开放此端口。 <BR>端口：1234、1243、6711、6776 <BR>服务：[NULL] <BR>说明：木马SubSeven2.0、Ultors Trojan开放1234、6776端口。木马SubSeven1.0/1.9开放1243、6711、6776端口。 <BR>端口：1245 <BR>服务：[NULL] <BR>说明：木马Vodoo开放此端口。 <BR>端口：1433 <BR>服务：SQL <BR>说明：Microsoft的SQL服务开放的端口。 <BR>端口：1492 <BR>服务：stone-design-1 <BR>说明：木马FTP99CMP开放此端口。 <BR>端口：1500 <BR>服务：RPC client fixed port session queries <BR>说明：RPC客户固定端口会话查询 <BR>端口：1503 <BR>服务：NetMeeting T.120 <BR>说明：NetMeeting T.120 <BR>端口：1524 <BR>服务：ingress <BR>说明：许多攻击脚本将安装一个后门SHELL于这个端口，尤其是针对SUN系统中Sendmail和RPC服务漏洞的脚本。如果刚安装了防火墙就看到在这个端口上的连接企图，很可能是上述原因。可以试试Telnet到用户的计算机上的这个端口，看看它是否会给你一个SHELL。连接到600/pcserver也存在这个问题。 <BR>端口：1600 <BR>服务：issd <BR>说明：木马Shivka-Burka开放此端口。 <BR>端口：1720 <BR>服务：NetMeeting <BR>说明：NetMeeting H.233 call Setup。 <BR>端口：1731 <BR>服务：NetMeeting Audio Call Control <BR>说明：NetMeeting音频调用控制。 <BR>端口：1807 <BR>服务：[NULL] <BR>说明：木马SpySender开放此端口。 <BR>端口：1981 <BR>服务：[NULL] <BR>说明：木马ShockRave开放此端口。 <BR>端口：1999 <BR>服务：cisco identification port <BR>说明：木马BackDoor开放此端口。 <BR>端口：2000 <BR>服务：[NULL] <BR>说明：木马GirlFriend 1.3、Millenium 1.0开放此端口。 <BR>端口：2001 <BR>服务：[NULL] <BR>说明：木马Millenium 1.0、Trojan Cow开放此端口。 <BR>端口：2023 <BR>服务：xinuexpansion 4 <BR>说明：木马Pass Ripper开放此端口。 <BR>端口：2049 <BR>服务：NFS <BR>说明：NFS程序常运行于这个端口。通常需要访问Portmapper查询这个服务运行于哪个端口。 <BR>端口：2115 <BR>服务：[NULL] <BR>说明：木马Bugs开放此端口。<BR>端口：2140、3150 <BR>服务：[NULL] <BR>说明：木马Deep Throat 1.0/3.0开放此端口。 <BR>端口：2500 <BR>服务：RPC client using a fixed port session replication <BR>说明：应用固定端口会话复制的RPC客户 <BR>端口：2583 <BR>服务：[NULL] <BR>说明：木马Wincrash 2.0开放此端口。 <BR>端口：2801 <BR>服务：[NULL] <BR>说明：木马Phineas Phucker开放此端口。 <BR>端口：3024、4092 <BR>服务：[NULL] <BR>说明：木马WinCrash开放此端口。 <BR>端口：3128 <BR>服务：squid <BR>说明：这是squid HTTP代理服务器的默认端口。攻击者扫描这个端口是为了搜寻一个代理服务器而匿名访问Internet。也会看到搜索其他代理服务器的端口8000、8001、8080、8888。扫描这个端口的另一个原因是用户正在进入聊天室。其他用户也会检验这个端口以确定用户的机器是否支持代理。 <BR>端口：3129 <BR>服务：[NULL] <BR>说明：木马Master Paradise开放此端口。 <BR>端口：3150 <BR>服务：[NULL] <BR>说明：木马The Invasor开放此端口。 <BR>端口：3210、4321 <BR>服务：[NULL] <BR>说明：木马SchoolBus开放此端口 <BR>端口：3333 <BR>服务：dec-notes <BR>说明：木马Prosiak开放此端口 <BR>端口：3389 <BR>服务：超级终端 <BR>说明：WINDOWS 2000终端开放此端口。 <BR>端口：3700 <BR>服务：[NULL] <BR>说明：木马Portal of Doom开放此端口 <BR>端口：3996、4060 <BR>服务：[NULL] <BR>说明：木马RemoteAnything开放此端口 <BR>端口：4000 <BR>服务：QQ客户端 <BR>说明：腾讯QQ客户端开放此端口。 <BR>端口：4092 <BR>服务：[NULL] <BR>说明：木马WinCrash开放此端口。 <BR>端口：4590 <BR>服务：[NULL] <BR>说明：木马ICQTrojan开放此端口。 <BR>端口：5000、5001、5321、50505 服务：[NULL] <BR>说明：木马blazer5开放5000端口。木马Sockets de Troie开放5000、5001、5321、50505端口。 <BR>端口：5400、5401、5402 <BR>服务：[NULL] <BR>说明：木马Blade Runner开放此端口。 <BR>端口：5550 <BR>服务：[NULL] <BR>说明：木马xtcp开放此端口。 <BR>端口：5569 <BR>服务：[NULL] <BR>说明：木马Robo-Hack开放此端口。 <BR>端口：5632 <BR>服务：pcAnywere <BR>说明：有时会看到很多这个端口的扫描，这依赖于用户所在的位置。当用户打开pcAnywere时，它会自动扫描局域网C类网以寻找可能的代理（这里的代理是指agent而不是proxy）。入侵者也会寻找开放这种服务的计算机。，所以应该查看这种扫描的源地址。一些搜寻pcAnywere的扫描包常含端口22的UDP数据包。 <BR>端口：5742 <BR>服务：[NULL] <BR>说明：木马WinCrash1.03开放此端口。 <BR>端口：6267 <BR>服务：[NULL] <BR>说明：木马广外女生开放此端口。 <BR>端口：6400 <BR>服务：[NULL] <BR>说明：木马The tHing开放此端口。 <BR>端口：6670、6671 <BR>服务：[NULL] <BR>说明：木马Deep Throat开放6670端口。而Deep Throat 3.0开放6671端口。 <BR>端口：6883 <BR>服务：[NULL] <BR>说明：木马DeltaSource开放此端口。 <BR>端口：6969 <BR>服务：[NULL] <BR>说明：木马Gatecrasher、Priority开放此端口。 <BR>端口：6970 <BR>服务：RealAudio <BR>说明：RealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP-7070端口外向控制连接设置的。 <BR>端口：7000 <BR>服务：[NULL] <BR>说明：木马Remote Grab开放此端口。 <BR>端口：7300、7301、7306、7307、7308 <BR>服务：[NULL] <BR>说明：木马NetMonitor开放此端口。另外NetSpy1.0也开放7306端口。<BR>端口：7323 <BR>服务：[NULL] <BR>说明：Sygate服务器端。 <BR>端口：7626 <BR>服务：[NULL] <BR>说明：木马Giscier开放此端口。 <BR>端口：7789 <BR>服务：[NULL] <BR>说明：木马ICKiller开放此端口。 <BR>端口：8000 <BR>服务：OICQ <BR>说明：腾讯QQ服务器端开放此端口。 \' <BR>端口：8010 <BR>服务：Wingate <BR>说明：Wingate代理开放此端口。 <BR>端口：8080 <BR>服务：代理端口 <BR>说明：WWW代理开放此端口。 <BR>端口：9400、9401、9402 <BR>服务：[NULL] <BR>说明：木马Incommand 1.0开放此端口。 <BR>端口：9872、9873、9874、9875、10067、10167 <BR>服务：[NULL] <BR>说明：木马Portal of Doom开放此端口 <BR>端口：9989 <BR>服务：[NULL] <BR>说明：木马iNi-Killer开放此端口。 <BR>端口：11000 <BR>服务：[NULL] <BR>说明：木马SennaSpy开放此端口。<BR>端口：11223 <BR>服务：[NULL] <BR>说明：木马Progenic trojan开放此端口。 <BR>端口：12076、61466 <BR>服务：[NULL] <BR>说明：木马Telecommando开放此端口。 <BR>端口：12223 <BR>服务：[NULL] <BR>说明：木马Hack\'99 KeyLogger开放此端口。 <BR>端口：12345、12346 <BR>服务：[NULL] <BR>说明：木马NetBus1.60/1.70、GabanBus开放此端口。 <BR>端口：12361 <BR>服务：[NULL] <BR>说明：木马Whack-a-mole开放此端口。 <BR>端口：13223 <BR>服务：PowWow <BR>说明：PowWow是Tribal Voice的聊天程序。它允许用户在此端口打开私人聊天的连接。这一程序对于建立连接非常具有攻击性。它会驻扎在这个TCP端口等回应。造成类似心跳间隔的连接请求。如果一个拨号用户从另一个聊天者手中继承了IP地址就会发生好象有很多不同的人在测试这个端口的情况。这一协议使用OPNG作为其连接请求的前4个字节。 <BR>端口：16969 <BR>服务：[NULL] <BR>说明：木马Priority开放此端口。 <BR>端口：17027 <BR>服务：Conducent <BR>说明：这是一个外向连接。这是由于公司内部有人安装了带有Conducent"adbot"的共享软件。Conducent"adbot"是为共享软件显示广告服务的。使用这种服务的一种流行的软件是Pkware。 <BR>端口：19191 <BR>服务：[NULL] <BR>说明：木马蓝色火焰开放此端口。 <BR>端口：20000、20001 <BR>服务：[NULL] <BR>说明：木马Millennium开放此端口。 <BR>端口：20034 <BR>服务：[NULL] <BR>说明：木马NetBus Pro开放此端口。 <BR>端口：21554 <BR>服务：[NULL] <BR>说明：木马GirlFriend开放此端口。 <BR>端口：22222 <BR>服务：[NULL] <BR>说明：木马Prosiak开放此端口。<BR>端口：23456 <BR>服务：[NULL] <BR>说明：木马Evil FTP、Ugly FTP开放此端口。 <BR>端口：26274、47262 <BR>服务：[NULL] <BR>说明：木马Delta开放此端口。<BR>端口：27374 <BR>服务：[NULL] <BR>说明：木马Subseven 2.1开放此端口。 <BR>端口：30100 <BR>服务：[NULL] <BR>说明：木马NetSphere开放此端口。 <BR>端口：30303 <BR>服务：[NULL] <BR>说明：木马Socket23开放此端口。 <BR>端口：30999 <BR>服务：[NULL] <BR>说明：木马Kuang开放此端口。 <BR>端口：31337、31338 <BR>服务：[NULL] <BR>说明：木马BO(Back Orifice)开放此端口。另外木马DeepBO也开放31338端口。 <BR>端口：31339 <BR>服务：[NULL] <BR>说明：木马NetSpy DK开放此端口。 <BR>端口：31666 <BR>服务：[NULL] <BR>说明：木马BOWhack开放此端口。 <BR>端口：33333 <BR>服务：[NULL] <BR>说明：木马Prosiak开放此端口。 <BR>端口：34324 <BR>服务：[NULL] <BR>说明：木马Tiny Telnet Server、BigGluck、TN开放此端口。 <BR>端口：40412 <BR>服务：[NULL] <BR>说明：木马The Spy开放此端口。 <BR>端口：40421、40422、40423、40426、 <BR>服务：[NULL] <BR>说明：木马Masters Paradise开放此端口。 <BR>端口：43210、54321 <BR>服务：[NULL] <BR>说明：木马SchoolBus 1.0/2.0开放此端口。 <BR>端口：44445 <BR>服务：[NULL] <BR>说明：木马Happypig开放此端口。 <BR>端口：50766 <BR>服务：[NULL] <BR>说明：木马Fore开放此端口。<BR>端口：53001 <BR>服务：[NULL] <BR>说明：木马Remote Windows Shutdown开放此端口。 <BR>端口：65000 <BR>服务：[NULL] <BR>说明：木马Devil 1.03开放此端口。 <BR>端口：88 <BR>说明：Kerberos krb5。另外TCP的88端口也是这个用途。 <BR>端口：137 <BR>说明：SQL Named Pipes encryption over other protocols name lookup(其他协议名称查找上的SQL命名管道加密技术)和SQL RPC encryption over other protocols name lookup(其他协议名称查找上的SQL RPC加密技术)和Wins NetBT name service(WINS NetBT名称服务)和Wins Proxy都用这个端口。 <BR>端口：161 <BR>说明：Simple Network Management Protocol(SMTP)（简单网络管理协议） <BR>端口：162 <BR>说明：SNMP Trap（SNMP陷阱） <BR>端口：445 <BR>说明：Common Internet File System(CIFS)（公共Internet文件系统） <BR>端口：464 <BR>说明：Kerberos kpasswd(v5)。另外TCP的464端口也是这个用途。<BR>端口：500 <BR>说明：Internet Key Exchange(IKE)（Internet密钥交换） <BR>端口：1645、1812 <BR>说明：Remot Authentication Dial-In User Service(RADIUS)authentication(Routing and Remote Access)(远程认证拨号用户服务) <BR>端口：1646、1813 <BR>说明：RADIUS accounting(Routing and Remote Access)(RADIUS记帐（路由和远程访问）) <BR>端口：1701 <BR>说明：Layer Two Tunneling Protocol(L2TP)(第2层隧道协议) <BR>端口：1801、3527 <BR>说明：Microsoft Message Queue Server(Microsoft消息队列服务器)。还有TCP的135、1801、2101、2103、2105也是同样的用途。 <BR>端口：2504 <BR>说明：Network Load Balancing(网络平衡负荷) <BR>0 通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口，当你试图使用一种通常的闭合端口 <BR>连接它时将产生不同的结果。一种典型的扫描：使用IP地址为0.0.0.0，设置ACK位并在以太网层广播。</FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></P><img src ="http://www.blogjava.net/yjf_aimar/aggbug/22853.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2005-12-07 14:30 <a href="http://www.blogjava.net/yjf_aimar/archive/2005/12/07/22853.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL语句大全</title><link>http://www.blogjava.net/yjf_aimar/archive/2005/11/26/21510.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Sat, 26 Nov 2005 08:04:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2005/11/26/21510.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/21510.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2005/11/26/21510.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/21510.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/21510.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: --数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABLE --修改数据库表结构CREATE VIEW --创建一个视图DROP VIEW --从数据库中删除视图...&nbsp;&nbsp;<a href='http://www.blogjava.net/yjf_aimar/archive/2005/11/26/21510.html'>阅读全文</a><img src ="http://www.blogjava.net/yjf_aimar/aggbug/21510.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2005-11-26 16:04 <a href="http://www.blogjava.net/yjf_aimar/archive/2005/11/26/21510.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Citrix MF-License激活外网运用指南</title><link>http://www.blogjava.net/yjf_aimar/archive/2005/11/16/20055.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Wed, 16 Nov 2005 06:41:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2005/11/16/20055.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/20055.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2005/11/16/20055.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/20055.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/20055.html</trackback:ping><description><![CDATA[<SPAN lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">&nbsp;<IMG height=255 alt=licenses.bmp src="http://www.blogjava.net/images/blogjava_net/yjf_aimar/licenses.bmp" width=589 border=0><BR>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>License Numbers</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">激活</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>CITRIX</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">外网访问</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">解决方案：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>1</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、防火墙必须开</SPAN><SPAN lang=EN-US>80</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN lang=EN-US>1494</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">端口（通常安装的时候填写上自己的</SPAN><SPAN lang=EN-US>IP</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">地址和端口</SPAN><SPAN lang=EN-US>80</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，安装完毕激活后开起防火墙的</SPAN><SPAN lang=EN-US>1494</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">端口，其他关闭就可以了）</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>2</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、打开</SPAN><SPAN lang=EN-US>citrix </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US>web interface console</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>3</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、在</SPAN><SPAN lang=EN-US> web interface console</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的</SPAN><SPAN lang=EN-US>DMZ Settings</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的</SPAN><SPAN lang=EN-US>Network Address Translation </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中把</SPAN><SPAN lang=EN-US>Default address translation settion</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置成</SPAN><SPAN lang=EN-US>Translated address</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>4</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、在</SPAN><SPAN lang=EN-US>Specific address translation settings</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的</SPAN><SPAN lang=EN-US>Client subnet:</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的</SPAN><SPAN lang=EN-US>Address</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">填入本地地址，</SPAN><SPAN lang=EN-US>Mask<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为子网掩码。</SPAN><SPAN lang=EN-US>Option </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">选择</SPAN><SPAN lang=EN-US> </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Normal address<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。然后</SPAN><SPAN lang=EN-US> ADD</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">增加到</SPAN><SPAN lang=EN-US>Setting map </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>5</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</SPAN><SPAN lang=EN-US>MetaFrame server address translation </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的</SPAN><SPAN lang=EN-US>Server address</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">填入本地地址，</SPAN><SPAN lang=EN-US>Translated port</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为</SPAN><SPAN lang=EN-US>1494</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</SPAN><SPAN lang=EN-US>Translated address</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">填入外网地址（固定</SPAN><SPAN lang=EN-US>IP</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">），</SPAN><SPAN lang=EN-US>Translated port</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为</SPAN><SPAN lang=EN-US>1494</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，然后</SPAN><SPAN lang=EN-US>ADD</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">增加到</SPAN><SPAN lang=EN-US>Translation map</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>6</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、保存，然后应用</SPAN></P></v:shapetype></SPAN><img src ="http://www.blogjava.net/yjf_aimar/aggbug/20055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2005-11-16 14:41 <a href="http://www.blogjava.net/yjf_aimar/archive/2005/11/16/20055.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux群集</title><link>http://www.blogjava.net/yjf_aimar/archive/2005/11/15/19847.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Tue, 15 Nov 2005 05:18:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2005/11/15/19847.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/19847.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2005/11/15/19847.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/19847.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/19847.html</trackback:ping><description><![CDATA[<P>Linux集群大全 哪种群集适合您？ <BR>蓝森林 <A href="http://www.lslnet.com">http://www.lslnet.com</A> 2001年6月25日 09:16</P>
<P><A href="http://www-900.cn.ibm.com/developerWorks/cn/linux/cluster/lw-clustering.shtml#16">http://www-900.cn.ibm.com/developerWorks/cn/linux/cluster/lw-clustering.shtml#16</A><BR><A href="http://www.lslnet.com/linux/docs/linux-3656.htm">http://www.lslnet.com/linux/docs/linux-3656.htm</A></P>
<P>作 者： Rawn Shah</P>
<P><BR>LinuxWorld 专栏作家<BR>2000 年 5 月 </P>
<P>Rawn Shah 作为专家，在 Linux 现有的开放源码和封闭源码集群解决方案方面为您指点迷津。 </P>
<P>计算 Linux 中集群项目的数量就象计算硅谷中创业公司的数量一样。不象 Windows NT 已经受其自身的封闭环境阻碍，Linux 有大量的集群系统可供选择，适合于不同的用途和需要。但确定应该使用哪一个集群的工作却没有因此变得简单。 </P>
<P>问题的部分原因在于术语集群用于不同场合。IT 经理可能关心如何使服务器运行时间更长，或使应用程序运行得更快，而数学家可能更关心在服务器上进行大规模数值计算。两者都需要群集，但是各自需要不同特性的群集。 </P>
<P>本文调查了不同形式的集群以及许多实现中的一部分，这些实现可以买到，也可以免费软件形式获得。尽管列出的所有解决方案并不都是开放源码，但是大多数软件都遵循分发 Linux 源码的公共惯例，特别是由于那些实现集群的人还常常希望调整系统性能，以满足需要。 </P>
<P>硬件 <BR>集群总是涉及到机器之间的硬件连接。在现今大多数情况下，这只是指“快速以太网”网卡和集线器。但在尖端科学领域中，有许多专为集群设计的网络接口卡。 </P>
<P>它们包括 Myricom 的 Myrinet、Giganet 的 cLAN 和 IEEE 1596 标准可伸缩一致接口 (SCI)。那些卡的功能不但在群集的节点之间提供高带宽，而且还减少延迟（发送消息所用的时间）。对于在节点间交换状态信息以使其操作保持同步情况，那些延迟是至关重要的。 </P>
<P>Myricom <BR>Myricom 提供网卡和交换机，其单向互连速度最高可达到 1.28 Gbps。网卡有两种形式，铜线型和光纤型。铜线型 LAN 可以在 10 英尺距离内以全速进行通信，而在长达 60 英尺距离内以半速进行操作。光纤型 Myrinet 可以在 6.25 英里长的单模光纤或者 340 英尺长的多模光纤上全速运行。Myrinet 只提供直接点到点、基于集线器或基于交换机的网络配置，但在可以连接到一起的交换光纤数量方面没有限制。添加交换光纤只会增加节点间的延迟。两个直接连接的节点之间的平均延迟是 5 到 18 微秒，比以太网快得多。 </P>
<P>集群类型 <BR>最常见的三种群集类型包括高性能科学群集、负载均衡群集和高可用性群集。 </P>
<P>科学群集 <BR>通常，第一种涉及为群集开发并行编程应用程序，以解决复杂的科学问题。这是并行计算的基础，尽管它不使用专门的并行超级计算机，这种超级计算机内部由十至上万个独立处理器组成。但它却使用商业系统，如通过高速连接来链接的一组单处理器或双处理器 PC，并且在公共消息传递层上进行通信以运行并行应用程序。因此，您会常常听说又有一种便宜的 Linux 超级计算机问世了。但它实际是一个计算机群集，其处理能力与真的超级计算机相等，通常一套象样的群集配置开销要超过 $100,000。这对一般人来说似乎是太贵了，但与价值上百万美元的专用超级计算机相比还算是便宜的。 </P>
<P>负载均衡群集 <BR>负载均衡群集为企业需求提供了更实用的系统。如名称所暗示的，该系统使负载可以在计算机群集中尽可能平均地分摊处理。该负载可能是需要均衡的应用程序处理负载或网络流量负载。这样的系统非常适合于运行同一组应用程序的大量用户。每个节点都可以处理一部分负载，并且可以在节点之间动态分配负载，以实现平衡。对于网络流量也是如此。通常，网络服务器应用程序接受了太多入网流量，以致无法迅速处理，这就需要将流量发送给在其它节点上运行的网络服务器应用。还可以根据每个节点上不同的可用资源或网络的特殊环境来进行优化。 </P>
<P>高可用性群集 <BR>高可用性群集的出现是为了使群集的整体服务尽可能可用，以便考虑计算硬件和软件的易错性。如果高可用性群集中的主节点发生了故障，那么这段时间内将由次节点代替它。次节点通常是主节点的镜像，所以当它代替主节点时，它可以完全接管其身份，并且因此使系统环境对于用户是一致的。 </P>
<P>在群集的这三种基本类型之间，经常会发生混合与交杂。于是，可以发现高可用性群集也可以在其节点之间均衡用户负载，同时仍试图维持高可用性程度。同样，可以从要编入应用程序的群集中找到一个并行群集，它可以在节点之间执行负载均衡。尽管集群系统本身独立于它在使用的软件或硬件，但要有效运行系统时，硬件连接将起关键作用。 </P>
<P>Giganet <BR>Giganet 是用于 Linux 平台的虚拟接口 (VI) 体系结构卡的第一家供应商，提供 cLAN 卡和交换机。VI 体系结构是独立于平台的软件和硬件系统，它由 Intel 开发，用于创建群集。它使用自己的网络通信协议在服务器之间直接交换数据，而不是使用 IP，并且它并不打算成为 WAN 可路由的系统。现在，VI 的未来取决于正在进行的“系统 I/O 组”的工作，这个小组本是 Intel 领导的“下一代 I/O”小组与 IBM 和 Compaq 领导的“未来 I/O 小组”的合并。Giganet 产品当前可以在节点之间提供 1 Gbps 单向通信，最小延迟为 7 微秒。 </P>
<P>IEEE SCI <BR>IEEE 标准 SCI 的延迟更少（低于 2.5 微秒），并且其单向速度可达到 400 MB／秒 (3.2 Gbps)。SCI 是基于环拓扑的网络系统，不像以太网是星形拓扑。这将使在较大规模的节点之间通信速度更快。更有用的是环面拓扑网络，它在节点之间有许多环形结构。两维环面可以用 n 乘 m 的网格表示，其中在每一行和每一列都有一个环形网络。三维环面也类似，可以用三维立体节点网格表示，每一层上有一个环形网络。密集超级计算并行系统使用环面拓扑网络，为成百上千个节点之间的通信提供相对最快的路径。 </P>
<P>大多数操作系统的限制因素不是操作系统或网络接口，而是服务器的内部 PCI 总线系统。几乎所有台式 PC 通常有基本 32-位，33-MHz PCI，并且大多数低端服务器只提供 133 MB／秒 (1 Gbps)，这限制了那些网卡的能力。一些昂贵的高端服务器，如 Compaq Proliant 6500 和 IBM Netfinity 7000 系列，都有 64-位， 66-MHz 网卡，它们能够以四倍速度运行。不幸地是，矛盾是更多公司使用低端的系统，因此大多数供应商最终生产和销售更多低端 PCI 网卡。也有专门的 64-位，66-MHz PCI 网卡，但价格要贵许多。例如，Intel 提供了这种类型的“快速以太网”网卡，价格约 $400 到 $500，几乎是普通 PCI 版本价格的 5 倍。 </P>
<P>科学群集 <BR>某些并行群集系统可以达到如此高的带宽和低延迟，其原因是它们通常绕过使用网络协议，如 TCP/IP。虽然网际协议对于广域网很重要，但它包含了太多的开销，而这些开销在节点相互已知的封闭网络群集中是不必要的。其实，那些系统中有一部分可以在节点之间使用直接内存访问 (DMA)，它类似于图形卡和其它外围设备在一台机器中的工作方式。因此横跨群集，可以通过任何节点上的任何处理器直接访问一种形式的分布式共享内存。它们也可以使用低开销的消息传递系统，在节点之间进行通信。 </P>
<P>消息传递接口 (MPI) 是并行群集系统间消息传递层的最常见实现。MPI 存在几种衍生版本，但在所有情况下，它为开发者访问并行应用程序提供了一个公共 API，这样开发者就不必手工解决如何在群集的节点之间分发代码段。其中一个，Beowulf 系统首先将 MPI 用作公共编程接口。 </P>
<P>很难决定使用哪种高性能集群包。许多都提供类似服务，但计算的具体要求才是决定性因素。很多情况下，在那些系统中的研究工作只是解决需求的一半，而且使用那些软件需要集群包开发者的特殊帮助和合作。 </P>
<P>Beowulf <BR>当谈到 Linux 集群时，许多人的第一反映是 Beowulf。那是最著名的 Linux 科学软件集群系统。没有一个包叫做 Beowulf。实际上，它是一个术语，适用于在 Linux 内核上运行的一组公共软件工具。其中包括流行的软件消息传递 API，如“消息传送接口”(MPI) 或“并行虚拟机”(PVM)，对 Linux 内核的修改，以允许结合几个以太网接口、高性能网络驱动器，对虚拟内存管理器的更改，以及分布式进程间通信 (DIPC) 服务。公共全局进程标识空间允许使用 DIPC 机制从任何节点访问任何进程。Beowulf 还在节点间支持一系列硬件连通性选件。 </P>
<P>Beowulf 可能是考虑 Linux 时注意到的第一个高性能集群系统，这只是因为它的广泛使用和支持。关于这个主题，有许多文档和书籍。Beowulf 与以下一些科学集群系统之间的差异可以是实际的，或者只是在产品名称中有差异。例如，尽管名称不同，Alta Technologies 的 AltaCluster 就是一个 Beowulf 系统。某些供应商，如 ParTec AG，一家德国公司，提供了 Beowulf 模型的衍生版本，以包括其它管理接口和通信协议。 </P>
<P>Giganet cLAN <BR>Giganet 提供了一种定制的基于硬件的解决方案，它使用非 IP 协议在一个科学群集的节点间进行通信。如前所述，“虚拟接口”协议通过除去不少协议的开销，如 IP，以支持服务器间更快的通信。另外，硬件系统可按千兆比特速度运行，并且延迟很短，使它非常适合构建最多达 256 个节点的科学群集。该供应商支持 MPI，这样许多并行应用程序就可以在类似的系统（如 Beowulf）上运行。 </P>
<P>它也有 Beowulf 的缺点，即不能用作网络负载共享系统，除非想要编写应用程序来监控和分发在服务器间传送的网络包。 </P>
<P>Legion <BR>Legion 试图构建一个真正的多计算机系统。这是一个群集，其中每个节点都是一个独立系统，但在用户看来，整个系统只是一台计算机。Legion 设计成支持一台世界范围的计算机，由上百万个主机以及数以万亿计的软件对象组成。在 Legion 中，用户可以创立他们自己的合作小组。 </P>
<P>Legion 提供了高性能并行、负载均衡、分布式数据管理和容错性。 </P>
<P>Legion 提供了高性能并行、负载均衡、分布式数据管理和容错性。它通过其容错管理和成员节点间的动态重新配置来支持高可用性。它还有一个可扩充核心，该核心可以在出现新的改进和进展时动态替换或升级。系统并不是只接受单一控制，而是可以由任意数量的组织管理，而每个组织都支持整体的自治部分。Legion API 通过其内置的并行性提供了高性能计算。 </P>
<P>Legion 需要使用特别编写的软件，以使它可以使用其 API 库。它位于用户计算机操作系统之上，协调本地资源和分布式资源。它自动处理资源调度和安全性，还管理上下文空间以描述和访问整个系统中上亿种可能之外的对象。然而，在每个节点上运行时，不需要使用系统管理员特权，并且可以使用无特权的用户帐号进行工作。这将增加加入 Legion 的节点和用户的灵活性。 </P>
<P>Cplant <BR>Sandia National Lab 中的 Computational Plant 是一个大规模整体并行群集，用于实现 TeraFLOP（万亿次浮点运算）计算并构建在商业组件上。整个系统由“可伸缩单元”组成，这些“可伸缩单元”可以划分成适合不同目的（计算、磁盘 I/O、网络 I/O、服务管理）。群集中的每个节点都是一个 Linux 系统，带有专门开发的、提供分区服务的内核级模块。每个分区的功能可以通过装入和卸载内核级模块来修改。 </P>
<P>项目分三个阶段完成，开始阶段是原型，有 128 个基于 433-MHz DEC Alpha 21164 的系统，其中每个都有 192 MB RAM 和 2 GB 驱动器，相互之间用 Myrinet 网卡和 8-端口的 SAN 交换机连接。第 1 阶段将它扩充为 400 个基于 21164 的工作站，这些工作站的运行速度为 500 MHz，有 192 MB RAM，没有存储器，用 16-端口的 SAN 交换机以超立方体结构连接起来，并且运行 Red Hat 5.1。当前的第 2 阶段有 592 台基于 DEC 21264 的机器，它们的运行速度为 500 MHz，有 256 MB RAM，没有驱动器。每个节点都使用 64-位，33-MHz PCI Myrinet 网卡，并且仍使用 16-端口交换机以超立方体结构连接。 </P>
<P>在 Cplant 上运行的应用程序包括解决稀疏线性系统、流体力学和结构力学中计算系统的优化、分子力学的模拟、线性结构力学的有限元分析，以及并行应用程序的动态负载均衡库。 </P>
<P>JESSICA 2 <BR>香港大学的系统研究小组有一个基于 Java 的群集，叫做支持 Java 的单系统映像计算体系结构 (JESSICA)，它作为一个中间件层以完成单系统映像的幻想。该层是每个使用分布式共享内存 (DSM) 系统进行通信的节点上运行的所有线程的一个全局线程空间。该项目使用 ThreadMark DSM，但最终将用他们自己创建的 JiaJia Using Migrating-home Protocol (JUMP)。他们使用定制的基于 Java 的 ClusterProbe 软件来管理群集的 50 个节点。 </P>
<P>PARIS <BR>法国的 IRISA 研究所的“大规模数字模拟应用程序的编程并行和分布式系统”(PARIS) 项目提供了几种用于创建 Linux 服务器群集的工具。该项目由三部分组成：群集的资源管理软件、并行编程语言的运行时环境，以及分布式数字模拟的软件工具。 </P>
<P>资源管理软件包括用于共享内存、磁盘和处理器资源的 Globelins 分布式系统，及其 Dupleix 和 Mome 分布式共享内存系统。 </P>
<P>负载均衡群集 <BR>负载均衡群集在多节点之间分发网络或计算处理负载。在这种情况下，区别在于缺少跨节点运行的单并行程序。大多数情况下，那种群集中的每个节点都是运行单独软件的独立系统。但是，不管是在节点之间进行直接通信，还是通过中央负载均衡服务器来控制每个节点的负载，在节点之间都有一种公共关系。通常，使用特定的算法来分发该负载。 </P>
<P>网络流量负载均衡是一个过程，它检查到某个群集的入网流量，然后将流量分发到各个节点以进行适当处理。它最适合大型网络应用程序，如 Web 或 FTP 服务器。负载均衡网络应用服务要求群集软件检查每个节点的当前负载，并确定哪些节点可以接受新的作业。这最适合运行如数据分析等串行和批处理作业。那些系统还可以配置成关注某特定节点的硬件或操作系统功能：这样，群集中的节点就没有必要是一致的。 </P>
<P>Linux 虚拟服务器 <BR>“Linux 虚拟服务器”项目已经实现了许多内核补丁，它们为入网 TCP/IP 流量创建了负载均衡系统。LVS 软件检查入网流量，然后根据负载均衡算法，将流量重定向到一组充当群集的服务器。这允许网络应用程序，如 Web 服务器，在节点群集上运行以支持大量用户。 </P>
<P>LVS 支持作为负载均衡服务器直接连接到同一个 LAN 的群集节点，但它还能够以通道传送 IP 包的方式连接到远程服务器。后一种方法包括压缩 IP 包中的均衡请求，这些 IP 信息包从负载均衡服务器直接发送到远程群集节点。尽管 LVS 可以远程支持网站的负载均衡，但它使用的负载均衡算法现在对于虚拟群集中的广域 Web 服务器仍无效。因此，如果 Web 服务器都在同一个 LAN 中，LVS 最好当作负载均衡服务器使用。 </P>
<P>负载均衡系统的几种硬件实现比在通用操作系统，如 Linux，上运行得更快。它们包括来自 Alteon 和 Foundry 的硬件，其硬件逻辑和最少操作系统可以在硬件中执行流量管理，并且速度比纯软件快。它们的价格也很高，通常都在 $10,000 以上。如果需要简单和便宜的解决方案，一个有很多内存 (256 MB) 的中等 Linux 系统将会是一个好的负载均衡系统。 </P>
<P>TurboLinux TurboCluster 和 enFuzion <BR>TurboLinux 有一个产品叫 TurboCluster，它最初以“Linux 虚拟服务器”项目开发的内核补丁为基础。因此，它可以得到大部分优点，但它的缺点也与原来的项目一样。TurboLinux 为此还开发了一些工具，用于监控增加产品实用性的群集行为。一家主要供应商的商业支持也使它对于大型网站更具吸引力。 </P>
<P>EnFuzion 支持在节点之间实现自动负载均衡和资源共享，而且可以自动重新安排失败的作业。 </P>
<P>EnFuzion 是 TurboLinux 即将推出的科学群集产品，它并不基于 Beowulf。但是，它可以支持上百个节点以及许多不同的非 Linux 平台，包括 Solaris、Windows NT、HP-UX、IBM AIX、SGI Irix 和 Tru64。EnFuzion 非常有趣，因为它运行所有现有软件，并且不需要为环境编写定制的并行应用程序。它支持在节点间实现自动负载均衡和资源共享，而且可以自动重新安排失败的作业。 </P>
<P>Platform Computing 的 LSF 批处理 <BR>Platform Computing 是群集计算领域的老手，现在提供了 Linux 平台上的“负载均衡设施 (LSF) 批处理”软件。LSF 批处理允许中央控制器安排作业在群集中任意数量的节点上运行。在概念上，它类似于 TurboLinux enFuzion 软件，并且支持在节点上运行任何类型的应用程序。 </P>
<P>这种方法对于群集大小是非常灵活的，因为可以明确选择节点的数量，甚至是运行应用程序的节点。于是，可以将 64 个节点的群集分成更小的逻辑群集，每个逻辑群集都运行自己的批处理应用程序。而且，如果应用程序或节点失败，它可以在其它服务器上重新安排作业。 </P>
<P>Platform 的产品在主要 Unix 系统和 Windows NT 上运行。目前，只有它们的 LSF 批处理产品已经移植到 Linux 上。最终，LSF Suite 组件的其余部分也将紧随其后移植到 Linux 上。 </P>
<P>Resonate Dispatch 系列 <BR>Resonate 有一种基于软件的负载均衡方法，类似于 Linux 虚拟服务器。但是，它支持更多特性，以及一些更好的负载均衡算法。例如，使用 Resonate，可以在每个群集节点装入一个代理，以确定该节点当前的系统负载。然后，负载均衡服务器检查每个节点的代理，以确定哪个节点的负载最少，并且将新的流量发送给它。另外，Resonate 还可以使用它的 Global Dispatch 产品更有效地支持地区性分布式服务器。 </P>
<P>Resonate 已经在 Red Hat Linux 上彻底测试了该软件，相信它也可以在其它发行版上运行。Resonate 的软件还可以在其它各种平台上运行，包括 Solaris、AIX、Windows NT，并且它还可以在混合环境中进行负载均衡。 </P>
<P>MOSIX <BR>MOSIX 使用 Linux 内核新版本来实现进程负载均衡集群系统。该群集中，任何服务器或工作站可以按指定加入或离开，即添加到群集的总处理能力，或从中除去。根据其文档，MOSIX 使用自适应进程负载均衡和内存引导算法使整体性能最大化。应用程序进程可以在节点之间抢先迁移，以利用最好的资源，这类似于对称多处理器系统可以在各个处理器之间切换应用程序。 </P>
<P>MOSIX 在应用层是完全透明的，并且不需要重新编译或者重新链接到新的库，因为所有一切都发生在内核级上。可以有几种方法将它配置成多用户共享环境群集。所有服务器可以共享一个池，系统可以是群集的一部分，或者群集可以动态地分成几个子群集，每种方法都有不同的用途。Linux 工作站还可以是群集的一部分，可以是固定的，也可以是临时的，或者只是作为批处理作业提交者。作为临时群集节点，工作站可以在其空闲时用于增加群集处理能力。也允许只以批处理方式使用群集，在这种方式中，群集被配置成通过队列接受批处理作业。然后，守护程序取走作业并将它们发送到群集节点进行处理。 </P>
<P>MOSIX 的不利之处是它更改 Linux 内核行为的一些核心部分，于是系统级应用程序将不会按期望运行。 </P>
<P>除了高性能科学计算，MOSIX 提供了一个有趣的选项，用于以共同设置创建集群环境。通过使用服务器和工作站上的闲置资源，它可以更快更有效地创建和运行应用程序。由于访问了多台服务器，并且可以动态调整群集大小和更改负载均衡规则，它还可以提供高度的服务器可用性。MOSIX 的不利之处是它更改 Linux 内核行为的一些核心部分，于是系统级应用程序将不会按期望运行。要使用网络应用程序时，而该程序使用基于单个服务器地址的套接字连接，MOSIX 通常也会受到限制。这意味着网络应用程序在一个服务器节点上开始运行时，如果 IP 地址与套接字绑定，那么它必须继续在该节点上运行。显然，MOSIX 还正在开始迁移套接字，因此这很快就变成了争论的焦点。 </P>
<P>高可用性群集 <BR>高可用性 (HA) 群集致力于使服务器系统的运行速度和响应速度尽可能快。它们经常使用在多台机器上运行的冗余节点和服务，用来相互跟踪。如果某个节点失败，它的替补将在几秒钟或更短时间内接管它的职责。因此，对于用户而言，群集永远不会停机。 </P>
<P>某些 HA 群集也可以维护节点间冗余应用程序。因此，用户的应用程序将继续运行，即使他或她使用的节点出了故障。正在运行的应用程序会在几秒之内迁移到另一个节点，而所有用户只会察觉到响应稍微慢了一点。但是，这种应用程序级冗余要求将软件设计成具有群集意识的，并且知道节点失败时应该做什么。但对于 Linux，大多数现在还做不到。因为 Linux 系统没有 HA 集群标准，并且也没有公共 API 可供应用程序开发者构建有群集意识的软件。 </P>
<P>HA 群集可以执行负载均衡，但通常主服务器运行作业，而系统使辅助服务器保持闲置。辅助服务器通常是主服务器操作系统设置的镜像，尽管硬件本身稍有不同。辅助节点对主服务器进行活动监控或心跳观察，以查看它是否仍在运行。如果心跳计时器没有接收到主服务器的响应，则辅助节点将接管网络和系统身份（如果是 Linux 系统，则是 IP 主机名和地址）。 </P>
<P>但是，Linux 在这一领域仍有一点忽略。好消息是有一家著名的供应商正在努力尽快研制高可用性群集，因为它是企业级服务器都必需的功能。 </P>
<P>Linux-HA 项目 <BR>高可用性 Linux 项目，根据其目标声明，旨在为 Linux 提供高可用性解决方案，以通过社区开发成果提高可靠性、可用性和服务能力。Linux 达到高可用性集群时，这是一种试图给予 Linux 与先进的 Unix 系统，如 Solaris、AIX 和 HP/UX，一样具有竞争力的特性。因此，项目的目标是在 2001 年之前达到 Unix 集群比较报告 (<A href="http://www.sun.com/clusters/dh.brown.pdf">http://www.sun.com/clusters/dh.brown.pdf</A>) 中分析专家组 D. H. Brown 特定功能性级别。 </P>
<P>项目中有可以维护节点间心跳并接管失败节点的 IP 地址的软件。如果一个节点失败，它使用“伪造冗余 IP”软件包将失败节点的地址添加到工作节点以承担它的职责。于是，可以在几毫秒时间内自动替换失败的节点。实际使用中，心跳通常在几秒范围内，除非在节点之间有专用网络链接。因此，失败系统中的用户应用程序仍需要在新的节点上重新启动。 </P>
<P>无处不在的集群 <BR>对于 Linux，有许多集群系统可供选用。同时，那些项目中有几个是非商业性的，甚至是实验性质的。虽然对学术界和某些组织这也没有形成问题，但大公司通常首选著名供应商的商业支持平台。供应商，如 IBM、SGI、HP 和 Sun，提供了用于在 Linux 中构建科学群集的产品和服务，因为群集很流行，并且可以销售大量的服务器设备。一旦商业机构认为其它形式的集群是可靠的，那些相同的服务器供应商或许会围绕着开放源码集群解决方案创建自己的产品。 </P>
<P>Linux 作为服务器平台的重要性依赖于支持大型服务器和服务器群集的能力。这就使它可以与 Sun、HP、IBM 和其它公司的 UNIX 服务器在更高层面上竞争。虽然 Windows NT 和 2000 不支持 Linux 能够支持的集群范围，但是 HA 集群正规方法的可用性以及用于构建有群集意识的 API 也使它能够参与竞争。 </P>
<P>如果正在考虑构建一个群集，那么您应当仔细检查那些可能性，并将它们与您的需求做比较。您也许会发现想要实现的目标还不能成为一个完整的解决方案，或许会发现已经有了现成的解决方案。不管是哪种情况，请相信许多现有公司将他们的应用程序托付给进行深度计算并提供大量网页的 Linux 系统群集。集群是一种企业系统服务，已经在 Linux 下成功测试过。尽管新的集群将出现，但选择的多样性正是 Linux 超过其它系统，如 Windows NT，的优势。 </P>
<P>关于作者 <BR>Rawn Shah 是居住在亚利桑那州图森市的一位独立顾问。他多年来与多平台问题打交道并撰写相关文章，但常常令他不解的是很少有人知道有用的系统工具。</P>
<P>&nbsp;</P>
<P>摘自：IBM DeveloperWorks</P>
<P>&nbsp;</P><img src ="http://www.blogjava.net/yjf_aimar/aggbug/19847.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2005-11-15 13:18 <a href="http://www.blogjava.net/yjf_aimar/archive/2005/11/15/19847.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小范例</title><link>http://www.blogjava.net/yjf_aimar/archive/2005/11/15/19825.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Tue, 15 Nov 2005 03:22:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2005/11/15/19825.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/19825.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2005/11/15/19825.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/19825.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/19825.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">class XiyoujiRenwu<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">{ float height,weight;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>String head, ear,hand,foot, mouth;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>void speak(String s)<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{ head="</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">歪着头<SPAN lang=EN-US>";<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>System.out.println(s);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>class Example4_3<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">{<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>public static void main(String args[]) <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>{ XiyoujiRenwu<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>zhubajie,sunwukong;//</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">声明对象。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>zhubajie=new<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>XiyoujiRenwu();<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>//</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">为对象分配内存，使用<SPAN lang=EN-US>new </SPAN>运算符和默认的构造方法。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>sunwukong=new<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>XiyoujiRenwu();<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</SPAN>zhubajie.height=1.80f;<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>//</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">对象给自己的变量赋值。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>zhubajie.weight=160f;<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>zhubajie.hand="</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">两只黑手<SPAN lang=EN-US>";<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>zhubajie.foot="</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">两只大脚<SPAN lang=EN-US>"; <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>zhubajie.head="</SPAN>大头<SPAN lang=EN-US>"; <o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>zhubajie.ear="</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">一双大耳朵<SPAN lang=EN-US>"; zhubajie.mouth="</SPAN>一只大嘴<SPAN lang=EN-US>"; <o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>sunwukong.height=1.62f;<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>//</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">对象给自己的变量赋值。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>sunwukong.weight=1000f;<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>sunwukong.hand="</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">白嫩小手<SPAN lang=EN-US>";<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>sunwukong.foot="</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">两只绣脚<SPAN lang=EN-US>"; sunwukong.head="</SPAN>绣发飘飘<SPAN lang=EN-US>"; <o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>sunwukong.ear="</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">一对小耳<SPAN lang=EN-US>";<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>sunwukong.mouth="</SPAN>樱头小嘴<SPAN lang=EN-US>";<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>System.out.println("zhubajie</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">的身高：<SPAN lang=EN-US>"+zhubajie.height);<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>System.out.println("zhubajie</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">的头：<SPAN lang=EN-US>"+zhubajie.head);<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>System.out.println("sunwukong</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">的重量：<SPAN lang=EN-US>"+sunwukong.weight);<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>System.out.println("sunwukong</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">的头：<SPAN lang=EN-US>"+sunwukong.head);<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>zhubajie.speak("</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">俺老猪我想娶媳妇<SPAN lang=EN-US>");<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>//</SPAN>对象调用方法。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>System.out.println("zhubajie</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">现在的头：<SPAN lang=EN-US>"+zhubajie.head);<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>sunwukong.speak("</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">老孙我重<SPAN lang=EN-US>1000</SPAN>斤，我想骗八戒背我<SPAN lang=EN-US>"); //</SPAN>对象调用方法。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>System.out.println("sunwukong</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">现在的头：<SPAN lang=EN-US>"+sunwukong.head);<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>}<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>}</SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P><img src ="http://www.blogjava.net/yjf_aimar/aggbug/19825.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2005-11-15 11:22 <a href="http://www.blogjava.net/yjf_aimar/archive/2005/11/15/19825.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小程序</title><link>http://www.blogjava.net/yjf_aimar/archive/2005/11/15/19824.html</link><dc:creator>pablo cesar aimar</dc:creator><author>pablo cesar aimar</author><pubDate>Tue, 15 Nov 2005 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/yjf_aimar/archive/2005/11/15/19824.html</guid><wfw:comment>http://www.blogjava.net/yjf_aimar/comments/19824.html</wfw:comment><comments>http://www.blogjava.net/yjf_aimar/archive/2005/11/15/19824.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yjf_aimar/comments/commentRss/19824.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yjf_aimar/services/trackbacks/19824.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>public class people</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>{</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>float hight,weight; </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>String head, ear, mouth;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>void speak(String s)</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>{ </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>System.out.println(s);</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>}</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>}</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>class A</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>{ public static void main(String args[])</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>{people zhubajie;</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN lang=EN-US>zhubajie=new people();</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>zhubajie.weight=200f;<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>zhubajie.hight=1.70F;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>zhubajie.head=“</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">大头</SPAN><SPAN lang=EN-US>”;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>zhubajie.ear="</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">两只大耳朵</SPAN><SPAN lang=EN-US>";</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>zhubajie.mouth="</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一只大嘴</SPAN><SPAN lang=EN-US>";</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>System.out.println("</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">重量</SPAN><SPAN lang=EN-US>"+zhubajie.weight+"</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">身高</SPAN><SPAN lang=EN-US>" +zhubajie.hight);</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>System.out.println(zhubajie.head+zhubajie.mouth+zhubajie.ear);</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>zhubajie.speak("</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">师傅，咱们别去西天了，改去月宫吧</SPAN><SPAN lang=EN-US>");</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>}</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>}</SPAN></P><img src ="http://www.blogjava.net/yjf_aimar/aggbug/19824.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yjf_aimar/" target="_blank">pablo cesar aimar</a> 2005-11-15 11:21 <a href="http://www.blogjava.net/yjf_aimar/archive/2005/11/15/19824.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>