Monthly Archives: November 2006

什么叫”绿色软件”?

  世道变了,流氓软件创使人周鸿祎离职,推出安全卫士360手刃自己高价卖给YAHOO的3721,暴风影音也忘记了自己被华军停止下载的丑事,扯起了“绿色软件”的大旗……
新闻:暴风影音联合10家下载站推绿色软件名单
声称:为进一步截断恶意软件传播渠道,给用户的机器和上网环境最切实的保护,暴风影音倡导推出《装机必备绿色软件名单》。

  那到底什么叫“绿色软件”?

绿色软件的定义和分类

  安装完操作系统后,我们一般需要安装一些常用的软件,但是随着我们常用软件的增多,这个安装过程显得越来越令人厌烦:运行setup,然后是选择目标路径,不断的重复这个过程。后来我见到有人制作所谓的绿色软件,不需要安装,感觉很方便。当时很好奇,想知 道怎么做的,有没有什么方便的工具等等,可是在网上没有找到什么相关的知识,随着自己的一步步摸索,我逐渐积累了一些经验和比较有效的方法,在这里提供给大家。

首先要先弄清楚何谓绿色软件?其定义是什么?我收集了一些网友的讨论和想法:
  A 说,不需要安装 同时 不向注册表写入任何东西
  B 说,应该还包括不向系统文件夹拷贝文件,我的理解就是:安装这个软件对现有的操作系统没有任何改变,改变包括写注册表之类的。
  C 说,除了你现在安装的目录,应该不往任何地方写东西(比如log)。
  D 说,免安装,并且 不往程序所在目录以外的任何地方产生垃圾文件,还有 不写注册表
  E 说,综上加一条,可以放在移动存储器上在任一电脑上使用且效果相同。
  F 说,好像不写注册表,直接copy来就可以用得就算吧。
  G 说,重新安装系统的时候,仅需导入注册表,不需重新安装,就可以认为是绿色软件。
  H 说,其实只要不写注册表、不往系统文件夹写文件,哪怕需要.ini文件也在软件自己的目录里就行,那么就可算作绿色软件,特征是能够任意copy到别的文件夹照样能用或重装系统后直接能用,没有其它变化。所以有小部分“安装”的软件其实也符合绿色软件,因 为它 的安装只是解压缩建立文件夹而已。
  I 说,基本同意,但不写注册表的几乎是不可能,你只要运行过那个软件,打开注册表编辑器HKLM和HKLU下面software看看,几乎都会留下键值,其实这样也应该叫做绿色的吧。

  综合上面的意见,可以总结出绿色软件的优点,就是对操作系统无污染(恐怕这也是绿色这个名字的由来),不需要安装,方便卸载,便于携带,可以拷贝到便携的U盘上到处运行。

绿色软件的真正定义

我的意见是,绿色软件应该分类,分为狭义的绿色和广义的绿色:
  狭义的绿色可以叫做纯绿色软件,就是指这个软件对现有的操作系统部分没有任何改变,除了软件现在安装的目录,应该不往任何地方写东西,删除的时候,直接删除所在的目录就可以了,就类似于以前的大多数DOS程序。
  广义的绿色就是指不需要专门的安装程序,对系统的改变比较少,手工也可以方便的完成这些改变,比如拷贝几个动态库,或者导入注册表,这里的关键是手工可以方便的完成这些改变,或者可以借助于批处理等等脚本完成。
为什么要分为两类?虽然狭义的绿色软件最为理想,但是完全符合这种定义的软件非常罕见,而相当多的软件可以划分到广义的绿色这个类别,这样包括了广义的绿色软件的概念后使得绿色软件这个概念更有意义。
  那么不符合绿色软件要求的有哪些呢?主要是指那些和操作系统联系和集成非常紧密的软件,这些软件不适合制成绿色软件,最好还是用原来的安装程序来安装。如IE6,替换了系统中的许多动态库,手工完成这个过程很困难,也不太安全。又比如大多数杀毒软件,如果 必须实时监控系统的底层运作,对系统的修改比较大,就不适合做成绿色软件。还有微软公司的Office系列软件,和系统集成的也比较紧密。但是广义的这个标准比较灵活,如果有人搞清楚了Office系列软件的安装制作过程,也有可能制作出广义的绿色的Of fice系列。

从现代软件的安装过程和运行过程两个方面来看绿色软件

为了充分理解绿色软件的定义,必须从现代软件的安装过程和运行过程两个方面来讨论。
  安装过程:以前在dos下面的时候,就没有这些所谓绿色软件的说法,原来程序的安装基本上都是简单的复制或者解压缩,然后配置一下config.sys 和autoexec.bat文件就可以了。随着windows的发展,应用软件也越来越大,也越来越复杂,从而有公司专门从事安装程序的制作,如InstallShield就是一款比较有名和应用比较广泛的安装软件,现在windwos也有了专门的安装程 序,就是Microsoft Installer。安装程序的作用是什么呢?主要是为了给要安装的程序提供一个简单方便的设置环境,而不需要用户手工完成这个步骤,越是复杂的配置过程,对系统的修改越多,对安装程序的依赖性就越高,Windows程序的易学易用的优点和良好的安装界面 是分不开的,安装软件的任务就是给应用程序提供一个初步完好的可以运行的环境,而不需要用户进行手工配置。
  运行过程:应用程序启动的时候,从注册表或者配置文件中读取配置,运行的时候,可以修改配置,但这个修改一般是在安装软件所作工作的基础上进行的,例如不能改变应用程序的安装位置了。
  明白安装过程和运行过程的区别后,很容易就想到把绿色软件的使用按照这两个阶段分为绿色安装过程和绿色运行过程。绿色安装是绿色运行的前提,没有绿色安装,也就说不上什么绿色运行了,绿色软件首先必须是绿色安装,我前面提到的不适合绿色软件标准的基本上都 是不能绿色安装的。

绿色安装的基本含义,我认为可以也可以分为狭义的和广义的绿色安装:
  1 狭义的绿色安装就是指直接拷贝或者解压缩到目标目录,不需要向系统目录拷贝也不需要写入注册表,这是最理想的情况,或者是安装程序的作用除了解压缩外是可以忽略的,如在开始菜单加入快捷键等对系统和软件的运行没有太大影响的操作,也就是说安装过程的作用就 是复制文件到目标文件夹。
  2 广义的绿色安装就是指在狭义的复制的基础上,必须向系统目录拷贝一些动态库,或者要在注册表中导入必要的设置,或者要进行一些其他的配置,否则的话,应用程序不能运行,而且这个配置工作应该比较简单,也容易撤销这些操作对系统的改变。

同样,绿色运行也可以分为狭义的和广义的绿色运行:
  1 狭义的绿色运行指的是软件运行时完全不改变操作系统的文件和配置–很多小程序属于这个类别,或者运行结束后把撤销对系统的改变,比如运行的时候加载一个驱动程序,退出时卸载该驱动程序,所操作的INI文件在自己的程序目录中。
  2 广义的绿色运行指的是可以通过程序本身来改变当前的设置,如改变当前软件的运行方式,或者与某些文件后缀相关联,或者在注册表中留下当前的软件设置,也就是说对系统的注册表有永久的改变,但是这些改变都是应用程序自己完成的,不需要借助其他程序或者用手工 完成。
综合绿色安装和绿色运行,可以把绿色软件细分为:
  1 狭义的绿色安装,同时是狭义的绿色运行的软件,对操作系统没有任何改变。
  2 狭义的绿色安装,广义的绿色运行的软件,软件的配置工作由软件本身来完成,不是通过安装程序。
  3 广义的绿色安装,狭义的绿色运行,软件的配置工作由安装程序来完成,软件本身不能对配置修改,同时如果没有配置工作,软件无法正常运行。
  4 广义的绿色安装,广义的绿色运行,最复杂的一种绿色软件,软件的配置工作由安装程序来完成,但是软件本身可以对配置 修改,同时如果没有配置工作,软件无法正常运行。

只有第一个类别属于我说的狭义的绿色软件,其他3类都属于广义的绿色软件的范畴。

绿色软件的制作

  下面讲一下绿色软件的制作,简称软件的“绿化”,绿色软件的制作实际上就是我们自己完成安装程序的工作。没有什么固定的方法,基本上是猜测加上试验,不同类别的绿色软件分别有不同的制作策略。
  拿到一个新的软件,想要制成绿色软件的话,我一般遵循如下步骤:
  1 判断。就是指猜测这个软件能不能制成绿色软件,从功能,从你对它的了解,如果你觉得这个软件和系统的关系非常紧密,就不要继续下去了,还是用原始的安装程序最保险最方便,这样的例子有directx9 ,IE6,Norton的反病毒软件等等。这样的判断可以节省你的时间,当然你可以忽略这一步,尝试制作绿色软件,那么就转到第2步。
  2“绿化”。对于不同的软件有不同的方法,没有一定的规则,但是总的来说,就是理解软件的安装过程,转换为绿色安装,在这个过程中,可能需要尝试多个方法,也可能最后由于软件的复杂性或者某些特性,导致无法绿化。要有失败的思想准备,具体的绿化方法随后讲 述。
  3 测试。”绿化“后的测试最好到你个全新安装的操作系统中测试,而且如果你要在多个操作系统中使用这个软件的话,还要在其他的操作系统中测试,有的软件的文件随着操作系统的不同而不同,这个时候你需要在不同的操作系统中进行”绿化“过程,最后综合为一个完整 的适应多个操作平台的绿色软件。

  “绿化”方法,需要根据经验选择不同的“绿化”方法,也可能需要不断尝试不同的方法,直到成功为止。按照先易后难的次序,具体的方法包括:
  1 解压缩。这是最简单的一种方法,就是指尝试能不能直接解开软件的压缩包。用Winzip和Winrar试一试,看看能不能直接打开压缩的安装文件,如果不能打开,那么就换别的方法。如果可以,那么恭喜,这个软件多半是属于绿色安装的软件(有个别例外,如E mEditor),把压缩包中的文件直接解压到目标路径,然后测试软件的功能是否正常,如果功能正常,那么“绿化”就成功了,如果使用不正常,那么就换别的方法。这一类软件的特点是安装程序的工作完全可以由软件自身来完成。
  2 安装然后卸载。也是比较容易的方法,完全是体力劳动,就是指直接安装这个软件,然后把程序复制出来,最后卸载安装程序。如果这个软件的安装程序的作用仅仅是复制文件和生成快捷键等工作,那么就属于绿色安装,可以使用这个方法。最后测试软件的功能是否正常, 如果功能正常,那么“绿化”就成功了,如果使用不正常,那么就换别的方法。
  3 反编译安装程序。这个方法需要动脑筋,就是根据安装程序所用的制作工具,选择相应的反编译程序,然后阅读反编译出的安装脚本,制作绿色软件。目前的软件大多使用专门的安装工具制作,如InstallShield,Wise,Inno Setup,Windows Installer,NSIS(Nullsoft),Installer VISE,其中Windows Installer格式的安装文件(就是MSI,MST为后缀的文件),可以通过微软的免费工具Orca打开查看,InstallShield格式的安装文件也有很多免费的工具可以解压缩和查看脚本。当然专门的安装工具很多,有许多安装程序没有相应的反编 译程序,这种时候,就无法使用这个方法了。
  4 观察反安装程序和log文件。现在的软件安装完成后绝大多数都带有卸载方法。卸载是安装的逆过程,如果知道怎么卸载,那么也可以推测出如何安装。由专门的安装工具制作的反安装程序,一般都是根据某一个文件中的信息来卸载的,可以用一个纯文本的编辑器打开这 个文件。个别情况下这个文件完全不包含可读信息,就只好换用其他方法了。具体过程就是先采用方法2,然后理解反安装过程,最后根据反安装的信息制作绿色软件。
  5 比较系统快照。当前面的方法都失败的时候,可以试一试这个方法。具体思路就是首先在安装软件之前,把系统的状态记录下来,主要包括注册表和系统目录的所有的文件状态。然后就是安装软件。安装完成后,再一次记录系统状态。最后就是比较前后两个系统状态的不同 ,而得知安装程序所做的工作。这个工作一般由专门的软件完成,如免费工具Regshot,免费工具inctrl5或者WinInstall LE(在Windows 2000 Sever 光盘的目录VALUEADD3RDPARTYMGMTWINSTLE中)。在多数时候,仅仅需要对比安装前后注册表的不同,这时候还有大量的注册表工具可以选用。在得出系统差异后,把差异分解为两个部分:文件部分和注册表部分。文件部分指的是向系 统目录拷贝的文件,以及作为COM组件注册的文件,还有与这些文件相关的注册表部分。注册表部分单单指其余的注册表的变化。对于文件部分,可以进一步区分出必须要往系统目录拷贝的文件(这种情况是少数)和可以放在软件的安装目录的文件。对于注册表部分,区 分出由这个软件的安装程序本身所作出的注册表操作和注册COM组件时候的注册表操作,抛弃其他程序(如资源管理器Explorer)的操作。根据所有这些,写一个拷贝文件,注册COM组件和导入注册表的批处理文件,就可以完成绿色软件的制作了。当注册表文 件中含有路径信息的时候,可以手工修改注册表文件或者把注册表文件转化为INF文件从而实现全自动的路径处理。
  6 直接导出注册表,寻找自注册的COM组件。这个方法是上面的方法5的简化版,现在软件的配置大多写在注册表中的“HKEY_LOCLAL_MACHINESOFTWARE软件公司名字”和“HKEY_CURRENT_USERSOFTWARE软件 公司名字”这2个键下面,直接对把这2个注册表键导出到REG文件中。自注册的COM组件都需要导出如下4个函数:DllCanUnloadNow,DllGetClassObject,DllRegisterServer, DllUnregisterServer,可以用vc自带的depend.exe找出哪一个动态链接库是自注册的COM组件。最后写一个批处理文件用regsvr32.exe注册COM组件和用regedit.exe导入注册表。
  通过上面分析安装程序的动作,把安装程序的工作分解为复制文件,注册COM组件,安装服务驱动,注册表配置等几个部分,虽然注册表配置可以覆盖注册COM组件,安装服务驱动等操作步骤,但是把这些明显分割出来有助于制作绿色安装的软件。对于需要更复杂的步 骤来安装的软件,还是使用原来的安装程序比较保险。

  对于每个方法,下面我会给出具体的例子,有些时候,需要几个方法联合使用,无论使用什么方法,都是模拟原来的软件作者的安装过程,所以原作者最容易给出该软件的绿色版本。
  winrar3.30 和Winzip9.0,采用方法1,解压缩。这个方法非常简单,从天空软件站下载Winzip90.exe和winrar330sc.exe,在一个安装了Winrar的系统上,用鼠标右键选择下载的文件,运行右键菜单中的用Winrar打开的命令,然后 把文件解压到我们的目标路径,如E:tools目录,就可以了。然后分别对Winzip9和Winrar进行设置就可以了。运行winzip9目录中的Winzip32.exe,进行winzip的设置。Winrar也是一样,运行Winrar.exe ,打开菜单选项-〉设置,弹出一个对话框,选择标签–集成,如图WinrarSetting.png,逐项对Winrar设置。当拷贝到U盘而到新的机器上运行时,需要重复这些设置过程。
  这一类软件的特点是安装程序的工作完全可以由软件自身来完成,从而完全抛开安装程序,或者说安装程序的工作也就是解压缩。类似的软件还有一些,最简单的测试办法就是看看Winrar能否直接打开压缩的安装程序。也可以采用方法2,过程基本上和方法1一样。
  方法2就不具体说明了,仅仅指出有许多程序属于这个类别,如Myie2,GreenBrowser,qq,BPFTP Server,IDA_Pro_Standard_4.5.1.770,FinalData,EASYRECOVERY 6.03,腾逊公司的TM等等。
  flashget是大家用得比较多的一个软件,可以多线程下载并且下载管理的功能也很方便,从天空软件站sky.com下载flashget1.60a国际版,运行一下,然后取消安装。从图上可以看出flashg et1.60a国际版是使用Wise制作的安装程序,从网上下载wungui程序,非常容易的把安装程序解压缩到一个目录中,观察Maindir目录,其中有两个DLL文件Jccatch.dll和fgiebar. dll,进一步察看这两个动态库文件的导出函数,可以知道这两个DLL文件都是自注册的COM组件,写一个批处理文件install.bat来注册这两个DLL:
REGSVR32 JCCATCH.DLL /s
REGSVR32 fgiebar.dll /s
  经过测试,功能正常,并且可以从浏览器IE中用鼠标的右键菜单激活flashget,功能完全,下面考虑卸载过程。
  运行Regedit.exe,发现flashget在注册表中的路径是[HKEY_CURRENT_USERSoftwareJetCarJetCar],写一个注册表文件unflashget.reg删除这个路径,如下:
REGEDIT4
; flashget
[-HKEY_CURRENT_USERSoftwareJetCarJetCar]
同时写一个批处理文件uninstall.bat来卸载这两个DLL文件并导入unflashget.reg:
Regedit unflashget.reg /s
REGSVR32 JCCATCH.DLL /s /U
REGSVR32 fgiebar.dll /s /U

  随后就是删除一些我们用不到的文件,比如language目录的绝大多数欧洲的语言文件,这时候这个绿色版本就做好了。把制作好的绿色的flashget拷贝到U盘上,需要用的时候,直接执行里面的install.bat文件就可以了(注意,要在flas hget的目录运行批处理文件),不需要任何文件拷贝。
  我看到有人提到用优化大师提取falshget的注册表,然后直接导入注册表来制作绿色的flashget,这样做是不行的,从我前面的步骤来看,注册2个DLL文件必然在注册表中引入了绝对路径,那么如果直接提取注册表的话,就必须根据当前的路径来修改 注册表中的路径,否则的话制作的绿色版的flashget只能在固定的目录运行。在制作flashget绿色版的时候,我同时使用了方法3和方法6,使用方法3的目的就是避免安装程序对系统作的修改,这样可以直接在当前系统进行测试,而不需要到另外一个没 有安装过flashget的系统测试。

  从以上的事例中,可以看出,方法2和方法1基本一样,只不过方法1我们使用WinRar解压缩,而方法2我们使用安装程序解压缩。方法6可以说是方法5的简化版本,方法3和方法4也可以辅助方法5,也有一些需要联合应用这些方法,有时候难以判断到底使用了 那个方法,方法是死的,需要灵活运用,有些时候需要不断试验。
  我简单说几个软件“绿化”时候使用的方法,某些软件可能有多种“绿化”方法,然而最后的结果基本一样:

  使用方法1就不提了,只要没有专门的安装程序,直接以zip形式发布的,都使用方法1。
  CuteFTP,Flashfxp,qq,foobar ,winamp2.8,acrobat,FinalData ,金山词霸 ,ZoomPlayer,WinISO ,IsoBuster,WinISO ,MIRC,WinCVS,Photoshop6 ,EASYRECOVERY 6.03,网易泡泡使用方法2。
VisualC++ 6, real player,realmedia的解码器包,大部分解码器如vp6,mpeg2,ac3 ,ogg ,divx ,xvid 使用方法5。
  Netants ,flashget,OfflineExplorer acdsee,ultraedit ,IBM词典,theBat,网文快捕,和现在的CyberArticle,PartitionMagic7 使用方法6。
  不适合“绿化”的有Directx9,Mediaplayer9,IE6,微软的补丁程序,Office2003,反病毒工具NAV,Java虚拟机,虚拟机VMware等等,其中有些是不知道如何“绿化”或者说比较困难,如Office 2003,我认为那种把Office安装到硬盘上,然后抽去注册表的变化的方法部叫做“绿化”,因为注册表文件中有大量的绝对路径存在,而且Offcie的组件之间有比较复杂的联系,所以难以“绿化”。有些是“绿化”没有意义,如IE6,微软的补丁程序, Directx9等等。

  目前我使用的软件,绝大部分都“绿化”了,只有少数几个必须安装了,如 MS Office,Visual Studio.net 2003等等。感觉非常方便,尤其是改变盘符的时候,非常简单,可以做到便携化。

张二舟倒斗记 – 转载

  月黑风高,早春的夜晚还是有一点寒冷。
  张二舟最后吸了一口烟屁股,丢到地上踩熄,回头给伙计们打了个眼色。七个人扛起家伙,朝封土堆上走去。
  张二舟是老地仙了,零二年中专毕业后,一直找不到工作,后来在网吧里拜了个师傅,就入了这一行,一来一去也混了四年,大小事务学的差不多了,就自立门户,收了几个半大不小的徒弟,开始单干,这几年混的不好不坏,逐渐的也感觉到世态炎凉起来。
  这一次是他带徒弟出来踩盘子的,没想到给他碰到一唐墓,带着镐子宫的,竟然还没给人动过,犹豫再三,实在舍不得,决定他娘的打铁趁热,免的给别人截胡。
  徒弟们负责开盗洞,他在边上看着下面几个笨手笨脚的样子,心里郁闷,这年头,社会上混的很多,像样子的越来越少,一个个都是好吃懒做的料,打个盗洞,六个人还没他一个人利索。
  好不容易挖到金刚墙,几个徒弟都软在了那里,张二舟只好自己下去卸墓砖,他自己选的位置还可以,几下,便卸出一个足球大的口子,手电照了照里面,还不小,有壁画,他娘的这次发了,不用看古玩店老板的脸色了。
  正欢喜着,突然盗洞里亮起了一团鬼魅一样的蓝光,把张二舟吓了一跳。
  回头一看,一徒弟正全神关注的用手机发短信,用的是一老式的蓝屏的,照的整个盗洞幽蓝幽蓝的。
  “你爷爷的”张二舟骂了一句,一把把手机抢过来,“你他***找死,什么时候了,还给我发短信,没收!”
  那徒弟郁闷的挠挠头,其他几个幸灾乐祸的笑了起来,一个说:“三子,给女朋友汇报吧,你也太准时了,这样下去怎么振夫纲啊?”
  张二舟做了个闭嘴的手势,拿起没收来的手机一看,又骂了一声爷爷。
  ***老婆,我已经在盗洞里了,等墓砖卸完就可以进去了,你乖,听话,我七点前一定到家,你早饭想吃什么,我给你带?***
  ***老公好棒哦,那你加油,我要吃油条和小馄饨,不要放葱***
  ***知道了,老婆,亲一个***
  什么东西!张二舟心里想,这小子脑子有病,他***不能要了,这次干完就把他踢走。操他奶奶的,态度这么不端正。
  墓气放的差不多了,张二舟把其他几块砖头都卸了下来,带了一行人进去,手电四处一照,应该是大户人家的墓,至少是个朝廷里的官,壁画里都画着呢,一帮小的第一次进来,希奇的到处去看,拉都拉不住。
  张二舟拍了拍手,轻声说道:“别闹了,老规矩,耳室里的东西先全整出来,被给我碰坏了,碰坏一件我扒你们皮。三子,胖子,给我起棺材。”
  小的应声,分头忙活,三子和胖子跟着他来到红木棺材前,三个互看一眼,胖子举起撬杆子,咯吱一声,插进了棺材缝里。
  张二舟祈祷了一下,老天有眼,给我放点好东西,来点带金的来点带金的,老子好提早退休,离这些兔崽子远点,然后吐了两口口水在手上,在另一个方向将撬秆子插进了棺材缝。
  “机灵点,有不对劲就后退,三子,操好家伙,别走神,知道不?” 张二舟说
  另两个人恩了一声,咽了口吐沫,非常紧张。
  “好,我数一,二,三,就用力,来,一……二……”
  张二舟刚想气压丹田,把那三字吼出来,突然后面一个叫道:“师傅!!”
  张二舟给吓了一跳,一下泻了气,差点摔倒,回头一看,是年纪最小的豆叮,一脸焦急的表情,不知道出了什么事情。
  “干啥?”张二舟问道。
  “我想尿尿。”
  “哦,”张二舟看了看胖子和三子,无力的挥了挥手“出去尿去。”
  “哦”豆叮转身爬进了盗洞里。
  张二舟深吸了口气,给胖子和三子使了个眼色,三个又回到各自的位置上,扎好马步,刚想再喊123,有一个声音轻声叫道:“师傅!”
  张二舟心里突然涌出一股杀意,心里骂了一声,猛的回过头,问道:“什~么~事?!!”
  “王麻子不对劲,师傅,他从刚才一开始就站在那墙角,看着那壁画一直抖,我看中邪了!你要不去看看?”
  张二舟转头一看,果然,那个叫王麻子的女徒弟正呆呆的面对墙角站着,身体古怪的颤抖着,好象还在念着什么东西?
  几个做事情的人都停了下来,看着王麻子,在手电光的闪动下,王麻子的影子不停的变换着形状,显得非常诡异。
  “王麻子?”张二舟叫了一声,同时匕首已经翻到了手上,这几年凶险的事情不是没碰到过,他并不慌张,不过好不容易碰到这么好有肥斗,要出点事情,也未免不痛快。
  王麻子毫无反应,好象没有听见一样。
  几个人害怕起来,张二舟摆了摆手,让他们别紧张,蹑手蹑脚的向王麻子后背靠了过去,来到四五米的地方,他突然感到不对劲,匕首往腰上一插,几步串了过去,揪住王麻子就是一个巴掌。同时从他耳朵上扯下一只耳机,破口大骂:“我日你爷爷的!!告诉你多少次了,倒斗的时候不要听mp3!”
  教育了半天,总算把火气压下来,张二舟感觉到有点心力不济,怎么带上徒弟比自己单干还类,真他娘的怨气。
  这一惊一匝的,他回到棺材边上,甩了甩手提不起力气,只好点上只烟,喘口气顶一下,顺便看看其他几个干的怎么样。却看见几个小的,不知道怎么回事情,都傻傻的站在那里,像僵尸一样,张二舟看了又火了,骂道:“干什么干什么?不叫你们去搬东西吗?杵在这里干什么,不想发财了?”
  “师傅,耳室里没东西,空的,不信您自个儿去看看。”一个叫凤凰的徒弟说道。
  “放屁,空的?”
  “真的,不骗您,两个都空的,啥也没有,咱们是不是给别人截胡了啊?”
  “呸,别瞎说,这墓封的好着呢。” 张二舟把烟一掐,一挥手,一群人跟着他走进了左耳室。
  大该四个平方大的地方,空空如也,的确什么也没。
  怪了,他心想,怎么没陪葬品,唐墓而已,不至于烂光啊。
  “是吧,师傅,真啥也没有。” 凤凰摊摊手说道。
  张二舟摆摆手让他别烦,自己东敲敲西敲敲,墙壁里也不见夹层,眉头皱了起来,又跑到右耳室,那地方和左边的对称,也是什么都没有,唯一不同的,地上有一土包,不知道是什么东西。
  张二舟捏了一把,那土很松软,一碰就成粉,放在嘴里一尝,也没什么味道。
  “师傅,您说这是怎么回事情,?”三子按奈不住问他。
  张二舟捏了捏鼻子,心说怪了,我还真没碰到过,又不好在弟子面前露短,说道:“没啥希奇的,就是修墓的这人,修的时候家境比较好,但是死的时候已经落魄了,所以草草埋了,所以没放什么东西陪葬。这教育我们,要目光放远,不要短视,知道不?”
  “啊?那不是买卖又黄了?空欢喜一场?”众人哗然。
  “他娘的,担心个屁,不还有只棺材吗?” 张二舟心里郁闷,不好表现出来,只好硬装出不在乎的样子。“你们这几个小不死的,别给我罗嗦,把棺材开了,咱们快走!”
  一群人回到棺材边上,起棺材的三人站回自己的位置,张二舟定了定神,心说老天保佑啊,这一活就指望这一拨了,怎么样也给我点吃饭钱啊,想着挥了挥手,让围观的几个退后,然后给胖子一使眼色,两个人同时往下一压,噶蹦一声,棺材板子弹了起来,翻到了一边。
  张二舟伸头一看,正想着会是先看到尸体那傻样子呢,还是看到一团腐烂的被褥,或者是一层陪葬品,可是一眼下去,却什么都没看到。
  棺材是空的。而且空的非常离谱,里面啥也没有,干干净净,好象刚买来一样。
  张二舟整个人僵住了,一股闷气从他胸口喷上来,几乎要吐血,他死死抓住棺材的边缘,不让自己跌倒。但是人还是倒了下去,凤凰和豆钉马上扶住他,一边给他敲后背顺气。
  怎么回事情,怎么连棺材也是空的,而且空成这样子,难道真给人截胡了?
  没道理啊,这封土上没洞啊,自己也算老手了,不能会看错这么低级的东西啊。
  几个小的凑上来看了看棺材,都不敢说话,几个胆子大点的还感叹了一下:空的好彻底啊。
  胖子安慰道“师傅,你也别伤心了,这家人可能太穷了,最后穷的实在没办法,把尸体也卖给别人解剖了。我们运气不好,以后还有机会的。”
  “是啊,师傅,您别伤心了。”
  张二舟苦笑一声,摆了摆手,表示不想听。
  “哎,你们看,棺材里面有一份信啊。”豆钉突然叫道。
  “哪里?”张二舟一下子跳了起来,往棺材里一看,之间棺材里面的一个影子处果然一封古旧的信封。
  胖子想去拿,被张二舟一把抓住:“别动,纸这东西,年代太久,一碰就会变成粉末的。”
  “可是师傅,这是航空信封,你看,横着开的。”胖子说
  “啊!”张二舟脑门上筋都爆了出来,捡出来一看,果然是一个铜板纸的航空信封,上书几个字:发冢者阅
  他一头雾水,心说难道是个玩笑,忙不迭打开,一看,顿时一股闷气在胸口炸想,几乎要眼前一黑晕过去了。
  信的第一行字:
  ##天宝十四年,范阳节度使安禄山叛,承平日久,民不知战,而六军宿卫多市井劣徒,不能受甲,天下犯乱,发冢者多如邙,余修虚冢,于耳室屙屎一砣,如有发冢者,当知天下之修,早日回头是岸。——天朝御史大夫 魏济
  信的第二段:
  ##咸平元年,山西发丘中朗将张易,探冢中局,魏老匹夫,欲匡天下而不直知,不做文章而戏草莽,何为修而?
  接着:
  ##宣德三年,利阳书生王平之探冢中局,天下文士寒苦,阉臣当道,当以修离,见棺中书,以记之。
  再接:
  ##康熙十一年,利阳铁匠李文进冢中局,李为白丁,得二三字以记之,以求留名。
  再接:
  ##民国二十一年,利阳法驼寺和尚空海,盗冢十余年,方入空门,华中内战,不堪佛门清净,欲重操旧夜,进此冢乃为天意,从此修心向佛,不问其他。
  再接:
  ##一九八二年,我X你XX的,你们这帮人每次出去都把洞填的这样好,说的好听,他***还不是自己倒霉了,想让别人也中招,X你 ——长沙无名氏
  再接:
  ##一九九五年, 日的,害爷爷我白忙活,以后要碰到各位的陵寝,老子让你们好瞧。——王凯旋
  再接:
  ##驴日的死胖子,上过当也不提醒我。
  再接:
  ##信纸我拿去做纪念了,换上好纸,下面继续。我会定时回来看的。
  再接:
  ##二零零六年,楼上的不厚道,把原件还来。——杭州吴邪
  再接:
  ##楼上是SB ,鉴定完毕——洛阳张二舟,(三子,凤凰,王麻子,豆钉,胖子,步步)

完善了网站在firefox下显示不正常的问题

1、div+css 中做的页面,在IE中是居中的,在火狐是在左边。
解决办法:更改#outmain的样式,加入margin-left:auto;margin-right:auto;

2、FLASH背景透明
解决办法:在ie中实现flash背景透明很简单,加这样一个值
<param name="wmode" value="transparent">
在Mozilla,Firefox浏览器中起作用的是这个标签 <embed></embed>
那这样,在<embed>标签内加入属性 wmode="transparent" 就可以实现flash背景透明。

回忆

生命终将老去,即使爱永恒不变。
已失去的不可复得,纵使拥有回忆。
那我们的心又为何会牵绊于一两页陈旧不堪的日记?