1、基本知识

  手动脱壳就是不借助自动脱壳工具,而是用动态调试工具SOFTICE或TRW2000来脱壳。这课谈谈一些入门方面的知识,如要了解更深的脱壳知识,请参考《脱壳高级篇》这课。

  工具

  *调试器:SoftICE 、TRW2000

  *内存抓取工具:Procdump等;

  *十六进制工具:Hiew、UltraEdit、Hex Workshop等;

  *PE编辑工具: Procdump、PEditor等;  

  名词概念

  ★PE文件:Microsoft设计了一种新的文件格式Portable Executable File Format(即PE格式),该格式应用于所有基于Win32的系统:Windows NT、Windows 2000、Win32s及Windows 95/98。  

  ★基址(ImageBase ):是指装入到内存中的EXE或DLL程序的开始地址,它是Win32中的一个重要概念。 在Windows NT中,缺省的值是10000h;对于DLLs,缺省值为400000h。在Windows 95中,10000h不能用来装入32位的执行文件,因为该地址处于所有进程共享的线性地址区域,因此Microsoft将Win32可执行文件的缺省基地址改变为400000h。  

  ★RVA:相对虚拟地址(Relative Virual Address),是某个项相对于文件映象地址的偏移。例如:装载程序将一个PE文件装入到虚拟地址空间中,从10000h开始的内存中,如果PE中某个表在映像中的起始地址是10464h,那么该表的RVA就是464h。虚拟地址(RVA)=偏移地址+基址(ImageBase )  

  ★Entry Point:入口点,就是程序在完成了对原程序的还原后,开始跳转到刚还原的程序执行,此时的地址就是入口点的值。

  2、步骤  

  ★确定壳的种类  

  一般拿到软件后,可用工具FileInfo、gtw、TYP32等侦测文件类型的工具来看看是何种壳,然后再采取措施。  

  ★入口点(Entry Point)确定  

  对初学者来说定位程序解壳后的入口点确定较难,但熟练后,入口点查找是很方便的。 决大多数 PE 加壳程序在被加密的程序中加上一个或多个段。 所以看到一个跨段的 JMP 就有可能是了。如:UPX 用了一次跨段的 JMP , ASPACK 用了两次跨段的 JMP 。 这种判断一般是跟踪分析程序而找到入口点,如是用TRW2000也可试试命令:PNEWSEC,它可让TRW2000中断到入口点上。

  PNEWSEC:运行直到进入一个 PE 程序内存的新的 section时产生断点。(如不懂,以后到脱壳高级篇自会明白)  

  另外也可用D.boy的冲击波2000,它能轻易的找到任何加密壳的入口点,  

  ★dump取内存己还原文件  

  找到入口点后,在此处可以用 Procdump的FULL DUMP功能来抓取内存中整个文件,

  如是用TRW2000也可用命令:  

  makepe命令含义:从内存中整理出一个指令名称的PE格式的exe文件, 当前的 EIP 将成为新的程序入口,生成文件的 Import table 已经重新生成过了。生成的PE文件可运行任何平台和微机上。  

  pedump命令含义:将PE文件的内存映像直接映像到指定的文件里。生成的文件只能在本机运行,不能在其它系统平台或微机运行。   

  ★修正刚dump取的文件  

  如是用 Procdump的FULL DUMP功能脱壳的文件,要用 Procdump或PEditor等PE编辑工具修正入口点(Entry Point)。

Java 平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的 Java 应用程序的过程变得相当复杂。在本文中,研究科学家蒋清野讨论了两个项目,它们通过提供使Java 应用程序可以使用 USB 设备的 API 而使这个过程变得更容易。虽然这两个项目仍然处于萌芽状态,但是它们都显示了良好的前景,并已经成为一些实用应用程序的基础。

通用串行总线(Universal Serial Bus USB)规范的第一个版本发表于 1996 1月。因为它的低成本、高数据传输率、使用容易和灵活性,USB 在计算机行业里获得了广泛接受。今天,许多周边设备和装置都是通过 USB 接口连接到计算机上的。目前,大多数一般用途的操作系统都提供了对 USB 设备的支持,并且用 C 或者 C++ 可以相对容易地开发访问这些外设的应用程序。不过,Java 编程语言在设计上对硬件访问提供的支持很少,所以编写与 USB 设备交互的应用程序是相当困难的。

IBM Dan Streetman 最早开始了在 Java 语言中提供对 USB 设备的访问的努力。2001年,他的项目通过 Java 规范请求(Java Specification RequestJSR)过程被接受为 Java 语言的候选扩展标准。这个项目现在称为 JSR-80 并且指定了官方包 javax.usb。同时,在 2000 6月,Mojo Jojo David Brownell SourceForge 开始了 jUSB 项目。这两个项目都开发出了 Linux 开发人员可以使用的包,尽管它们都还很不完善。这两个项目也都开始试图向其他操作系统上的 Java 应用程序提供对 USB 设备的访问,尽管它们都还没有开发出可以使用的包(参阅 参考资料 中有关本文中讨论的这两个项目及其他项目的资料)

在本文中,将对 jUSB JSR-80 项目作一个简要介绍,不过,我们首先要看一下 USB 协议的具体细节,这样您就可以理解这两个项目是如何与 USB 设备交互的。我们还将提供代码片段以展示如何用这两个项目的 API 访问 USB 设备。

USB 介绍

1994年,一个由四个行业伙伴(CompaqIntelMicrosoft NEC)组成的联盟开始制定 USB 协议。该协议最初的目的是将 PC 与电话相连并提供容易扩展和重新配置的 I/O 接口。1996 1月,发表了 USB 规范的第一个版本,1998 9月发表了后续版本(版本 1.1)。这个规范允许 127台设备同时连接到一起,总的通信带宽限制为 12 Mbps。后来,又有三个成员(Hewlett-PackardLucent Philips)加入了这个联盟。2000 4月,发表了 USB 规范的 2.0版本,它支持高达 480 Mbps 的传输率。今天,USB 在高速(视频、图像、储存)和全速(音频、宽带、麦克风)数据传输应用中起了关键作用。它还使各种低速设备(键盘、鼠标、游戏外设、虚拟现实外设)连接到 PC 上。

USB 协议有严格的层次结构。在所有 USB 系统中,只有一个主设备,到主计算机的的 USB 接口称为主控器(host controller)。主控器有两个标准??开放主控器接口(Compaq Open Host Controller InterfaceOHCI)和通用主控器接口(Intel Universal Host Controller InterfaceUHCI)。这两个标准提供了同样的能力,并可用于所有的 USB 设备,UHCI 的硬件实现更简单一些,但是需要更复杂的设备驱动程序(因而 CPU 的负荷更大一些)

USB 物理互连是分层的星形拓朴,最多有七层。一个 hub 是每个星形的中心,USB 主机被认为是 root hub。每一段连线都是 hub USB 设备的点对点连接,后者可以是为系统提供更多附加点的另一个 hub,也可以是一个提供功能的某种设备。主机使用主/从协议与 USB 设备通信。这种方式解决了包冲突的问题,但是同时也阻止了附加的设备彼此建立直接通信。

所有传输的数据都是由主控器发起的。数据从主机流向设备称为下行(downstream)或者输出(out)传输,数据从设备流向主机称为上 (upstream)或者输入(in)传输。数据传输发生在主机和 USB 设备上特定的端点(endpoint) 之间,主机与端点之间的数据链接称为管道(pipe) 一个给定的 USB 设备可以有许多个端点,主机与设备之间数据管道的数量与该设备上端点的数量相同。一个管道可以是单向或者是双向的,一个管道中的数据流与所有其他管道中的数据流无关。

USB 网络中的通信可以使用下面四种数据传输类型中的任意一种:

控制传输 这些是一些短的数据包,用于设备控制和配置,特别是在设备附加到主机上时。

批量传输 这些是数量相对大的数据包。像扫描仪或者 SCSI 适配器这样的设备使用这种传输类型。

中断传输 这些是定期轮询的数据包。主控器会以特定的间隔自动发出一个中断。

等时传输 这些是实时的数据流,它们对带宽的要求高于可靠性要求。音频和视频设备一般使用这种传输类型。

像串行端口一样,计算机上每一个 USB 端口都由 USB 控制器指定了一个惟一的标识数字(端口 ID)。当 USB 设备附加到 USB 端口上时,就将这个 惟一端口 ID 分配给这台设备,并且 USB 控制器会读取设备描述符。设备描述符包括适用于该设备的全局信息、以及设备的配置信息。配置定义了一台 USB 设备的功能和 I/O 行为。一台 USB 设备可以有一个或者多个配置,这由它们相应的配置描述符所描述。每一个配置都有一个或者多个接口,它可以视为一个物理通信渠道 ;每一个接口有零个或者多个端点,它可以是数据提供者或者数据消费者,或者同时具有这两种身份。接口由接口描述符描述,端点由端点描述符描述。并且一台 USB 设备可能还有字符串描述符以提供像厂商名、设备名或者序列号这样的附加信息。

正如您所看到的,像 USB 这样的协议为使用 Java 这种强调平台和硬件无关性的语言的开发人员提出了挑战。现在让我们看两个试图解决这个问题的项目。

jUSB API

jUSB 项目是由 Mojo Jojo David Brownell 2000 6月创立的。其目标是提供一组免费的、在 Linux 平台上访问 USB 设备的 Java API。这个 API 是按照 Lesser GPL (LGPL)条款发表的,这意味着您可以在专有和免费软件项目中使用它。这个 API 提供了对多个物理 USB 设备的多线程访问,并支持本机和远程设备。具有多个接口的设备可以同时被多个应用程序(或者设备驱动程序)所访问,其中每一个应用程序(或者设备驱动程序)都占据一个不同的接口。该 API 支持控制传输、批量传输和中断传输,不支持等时传输,因为等时传输用于媒体数据(如音频和视频)JMF API 已经在其他标准设备驱动程序上对此提供了很好的支持(参阅 参考资料)。当前,该 API 可以在具有 Linux 2.4 核心或者以前的 2.2.18 核心的 GNU/Linux 版本上工作。因此可支持大多数最新的版本,例如,该 API 可以在没有任何补丁或者升级的 Red Hat 7.2 9.0 上工作。

jUSB API 包括以下包:

1.usb.core: 这个包是 jUSB API 的核心部分。它使得 Java 应用程序可以从 USB 主机访问 USB 设备。

2.usb.linux: 这个包包含 usb.core.Host 对象的 Linux 实现、bootstrapping 支持和其他可以提升 Linux USB 支持的类。这个实现通过虚拟 USB 文件系统(usbdevfs)访问 USB 设备。

3.usb.windows: 这个包包含 usb.core.Host 对象的 Windows 实现、bootstrapping 支持和其他可以提升 Windows USB 支持的类。这个实现仍然处于非常初级的阶段。

4.usb.remote: 这个包是 usb.core API 的远程版本。它包括一个 RMI proxy 和一个 daemon 应用程序,它让 Java 应用程序可以访问远程计算机上的 USB 设备。

5.usb.util: 这个包提供了一些有用的实用程序,可以将 firmware下载到 USB 设备上、将 USB 系统的内容转储到 XML 中、以及将只有 bulk I/O USB 设备工具转换成一个套接字(socket)

6.usb.devices: 这个可选包收集了用 jUSB API 访问不同 USB 设备的 Java 代码,包括柯达数码相机和 Rio 500 MP3 播放器。这些 API 经过特别编写以简化访问特定 USB 设备的过程,并且不能用于访问其他设备。这些 API 是在 usb.core API 之上构建的,它们可以工作在所有支持 jUSB 的操作系统上。

7.usb.view: 这个可选包提供了基于 Swing USB 树简单浏览器。它是一个展示 jUSB API 应用的很好的示例程序。

尽管 usb.core.Host 对象的实现对于不同的操作系统是不同的,但是 Java 程序员只需要理解 usb.core 包就可以用 jUSB API 开始应用程序的开发。表 1 列出了 usb.core 的接口和类,Java 程序员应该熟悉它们:

1. jUSB 中的接口和类

接口/

说明

Bus

将一组 USB 设备连接到 Host

Host

表示具有一个或者多个 Bus USB 控制器

Configuration

提供对设备所支持的 USB 配置的访问,以及对与该配置关联的接口的访问

Descriptor

具有 USB 类型的描述符的实体的基类

Device

提供对 USB 设备的访问

DeviceDescriptor

提供对 USB 设备描述符的访问

EndPoint

提供对 USB 端点描述符的访问、在给定设备配置中构造设备数据输入或者输出

HostFactory

包含 bootstrapping 方法

Hub

提供对 USB hub 描述符以及一些 hub 操作的访问

Interface

描述一组端点,并与一个特定设备配置相关联

PortIdentifier

USB 设备提供稳定的字符串标识符,以便在操作和故障诊断时使

jUSB API 访问一台 USB 设备的正常过程如下:

1.通过从 HostFactory 得到 USB Host 进行 Bootstrap

2. Host 访问 USB Bus,然后从这个 Bus 访问 USB root hub( USB Device)

3.得到 hub 上可用的 USB 端口数量,遍历所有端口以找到正确的 Device

4.访问附加到特定端口上的 USB Device。可以用一台 Device PortIdentifier 直接从 Host 访问它,也可以通过从 root hub 开始遍历 USB Bus 找到它。

5. ControlMessage 与该 Device 直接交互,或者从该 Device 的当前 Configuration 中要求一个 Interface,并与该 Interface 上可用的 Endpoint 进行 I/O

清单 1 展示了如何用 jUSB API 获得 USB 系统中的内容。这个程序编写为只是查看 root hub 上可用的 USB 设备,但是很容易将它改为遍历整个 USB 树。这里的逻辑对应于上述步骤 1 到步骤 4

清单 1. jUSB API 获得 USB 系统的内容

import usb.core.*;

public class ListUSB

{

 public static void main(String[] args)

 {

try

{

 // Bootstrap by getting the USB Host from the HostFactory.

 Host host = HostFactory.getHost();

 // Obtain a list of the USB buses available on the Host.

 Bus[] bus = host.getBusses();

 int total_bus = bus.length;

 // Traverse through all the USB buses.

 for (int i=0; i

 {

// Access the root hub on the USB bus and obtain the

// number of USB ports available on the root hub.

Device root = bus[i].getRootHub();

int total_port = root.getNumPorts();

// Traverse through all the USB ports available on the

// root hub. It should be mentioned that the numbering

// starts from 1, not 0.

for (int j=1; j<=total_port; j++)

{

 // Obtain the Device connected to the port.

 Device device = root.getChild(j);

 if (device != null)

 {

// USB device available, do something here.

 }

}

 }

} catch (Exception e)

{

 System.out.println(e.getMessage());

}

 }

清单 2 展示了在应用程序成功地找到了 Device 的条件下,如何与 Interface EndPoint 进行批量 I/O 这个代码段也可以修改为执行控制或者中断 I/O。它对应于上述步骤 5

清单 2. jUSB API 执行批量 I/O

if (device != null)

{

 // Obtain the current Configuration of the device and the number of

 // Interfaces available under the current Configuration.

 Configuration config = device.getConfiguration();

 int total_interface = config.getNumInterfaces();

 // Traverse through the Interfaces

 for (int k=0; k

 {

// Access the currently Interface and obtain the number of

// endpoints available on the Interface.

Interface itf = config.getInterface(k, 0);

int total_ep = itf.getNumEndpoints();

// Traverse through all the endpoints.

for (int l=0; l

{

 // Access the endpoint, and obtain its I/O type.

 Endpoint ep = itf.getEndpoint(l);

 String io_type = ep.getType();

 boolean input = ep.isInput();

 // If the endpoint is an input endpoint, obtain its

 // InputStream and read in data.

 if (input)

 {

InputStream in;

in = ep.getInputStream();

// Read in data here

in.close();

 }

 // If the Endpoint is and output Endpoint, obtain its

 // OutputStream and write out data.

 else

 {

OutputStream out;

out = ep.getOutputStream();

// Write out data here.

out.close();

 }

}

 }

}


jUSB
项目在 2000 6月到 2001 2月期间非常活跃。该 API 的最新的版本 0.4.4发表于 2001 2 14日。从那以后只提出了很少的改进,原因可能是 IBM 小组成功地成为了 Java 语言的候选扩展标准。不过,基于 jUSB 已经开发出一些第三方应用程序,包括 JPhoto 项目(这是一个用 jUSB 连接到数码照相机的应用程序) jSyncManager 项目(这是一个用 jUSB 与使用 Palm 操作系统的 PDA 同步的应用程序)

JSR-80 API (javax.usb)

正如前面提到的,JSR-80 项目是由 IBM Dan Streetman 1999年创立的。2001年,这个项目通过 Java 规范请求(JSR)过程被接受为 Java 语言的候选扩展标准。这个项目现在称为 JSR-80 并且被正式分派了 Java javax.usb。这个项目使用 Common Public License 的许可证形式,并通过 Java Community Process 进行开发。这个项目的目标是为 Java 平台开发一个 USB 接口,可以从任何 Java 应用程序中完全访问 USB 系统。JSR-80 API 支持 USB 规范所定义的全部四种传输类型。目前,该 API Linux 实现可以在支持 2.4 核心的大多数最新 GNU/Linux 版本上工作,如 Red Hat 7.2 9.0

JSR-80 项目包括三个包:javax-usb (javax.usb API)javax-usb-ri (操作系统无关的基准实现的公共部分)以及 javax-usb-ri-linux (Linux 平台的基准实现,它将公共基准实现链接到 Linux USB 堆栈)。所有这三个部分都是构成 Linux 平台上 java.usb API 完整功能所必需的。在该项目的电子邮件列表中可以看到有人正在致力于将这个 API 移植到其他操作系统上(主要是 Microsoft Windows),但是还没有可以工作的版本发表。

尽管 JSR-80 API 的操作系统无关的实现在不同的操作系统上是不同的,但是 Java 程序员只需要理解 javax.usb 包就可以开始开发应用程序了。表 2 列出了 javax.usb 中的接口和类, Java 程序员应该熟悉它们:

2. JSR-80 API 中的接口和类

接口/

说明

UsbConfiguration

表示 USB 设备的配置

UsbConfigurationDescriptor

USB 配置描述符的接口

UsbDevice USB

设备的接口

UsbDeviceDescriptor USB

设备描述符的接口

UsbEndpoint USB

端点的接口

UsbEndpointDescriptor USB

端点描述符的接口

UsbHub

USB hub 的接口

UsbInterface

USB 接口的接口

UsbInterfaceDescriptor

USB 接口描述符的接口

UsbPipe USB

管道的接口

UsbPort USB

端口的接口

UsbServices

javax.usb实现的接口

UsbHostManager

javax.usb 的入口点

JSR-80 API 访问 USB 设备的正常过程如下:

1.通过从 UsbHostManager 得到相应的 UsbServices 进行 Bootstrap

2.通过 UsbServices 访问 root hub。在应用程序中 root hub 就是一个 UsbHub

3.获得连接到 root hub UsbDevices 清单。遍历所有低级 hub 以找到正确的 UsbDevice

4.用控制消息(UsbControlIrp) UsbDevice 直接交互,或者从 UsbDevice 的相应 UsbConfiguration 中要求一个 UsbInterface 并与该 UsbInterface 上可用的 UsbEndpoint 进行 I/O

5.如果一个 UsbEndpoint 用于进行 I/O,那么打开与它关联的 UsbPipe。通过这个 UsbPipe 可以同步或者异步提交上行数

( USB 设备到主计算机)和下行数据(从主计算机到 USB 设备)

6.当应用程序不再需要访问该 UsbDevice 时,关闭这个 UsbPipe 并释放相应的 UsbInterface

在清单 3 中,我们用 JSR-80 API 获得 USB 系统的内容。这个程序递归地遍历 USB 系统上的所有 USB hub 并找出连接到主机计算机上的所有 USB 设备。这段代码对应于上述步骤 1 到步骤 3

清单 3. JSR-80 API 获得 USB 系统的内容

import javax.usb.*;

import java.util.List;

public class TraverseUSB

{

 public static void main(String argv[])

 {

try

{

 // Access the system USB services, and access to the root

 // hub. Then traverse through the root hub.

 UsbServices services = UsbHostManager.getUsbServices();

 UsbHub rootHub = services.getRootUsbHub();

 traverse(rootHub);

} catch (Exception e) {}

 }

 public static void traverse(UsbDevice device)

 {

if (device.isUsbHub())

{

 // This is a USB Hub, traverse through the hub.

 List attachedDevices = ((UsbHub) device).getAttachedUsbDevices();

 for (int i=0; i

 {

traverse((UsbDevice) attachedDevices.get(i));

 }

}

else

{

 // This is a USB function, not a hub.

 // Do something.

}

 }

}

清单 4 展示了在应用程序成功地找到 Device 后,如何与 Interface EndPoint 进行 I/O。这段代码还可以修改为进行所有四种数据传输类型的 I/O。它对应于上述步骤 4 到步骤 6

清单 4. JSR-80 API 进行 I/O

public static void testIO(UsbDevice device)

{

 try

 {

// Access to the active configuration of the USB device, obtain

// all the interfaces available in that configuration.

UsbConfiguration config = device.getActiveUsbConfiguration();

List totalInterfaces = config.getUsbInterfaces();

// Traverse through all the interfaces, and access the endpoints

// available to that interface for I/O.

for (int i=0; i

{

 UsbInterface interf = (UsbInterface) totalInterfaces.get(i);

 interf.claim();

 List totalEndpoints = interf.getUsbEndpoints();

 for (int j=0; j

 {

// Access the particular endpoint, determine the direction

// of its data flow, and type of data transfer, and open the

// data pipe for I/O.

UsbEndpoint ep = (UsbEndpoint) totalEndpoints.get(i);

int direction = ep.getDirection();

int type = ep.getType();

UsbPipe pipe = ep.getUsbPipe();

pipe.open();

// Perform I/O through the USB pipe here.

pipe.close();

 }

 interf.release();

}

 } catch (Exception e) {}

}

JSR-80 项目从一开始就非常活跃。2003 2月发表了 javax.usb APIRI RI 0.10.0 版本。看起来这一版本会提交给 JSR-80 委员会做最终批准。预计正式成为 Java 语言的扩展标准后,其他操作系统上的实现会很快出现。Linux 开发者团体看来对 JSR-80 项目的兴趣比 jUSB 项目更大,使用 Linux 平台的 javax.usb API 的项目数量在不断地增加。

结束语

 

jUSB API JSR-80 API 都为应用程序提供了从运行 Linux 操作系统的计算机中访问 USB 设备的能力。JSR-80 API 提供了比 jUSB API 更多的功能,很有可能成为 Java 语言的扩展标准。目前,只有 Linux 开发人员可以利用 jUSB JSR-80 API 的功能。不过,有人正在积极地将这两种 API 移植到其他操作系统上。Java 开发人员应该在不久就可以在其他操作系统上访问 USB 设备。从现在起就熟悉这些 API,当这些项目可以在多个平台上发挥作用时,您就可以在自己的应用程序中加入 USB 功能了.

越来越感觉这个C-Blog难用了,发现N多BUG。
1. 评论不能超过一定字数,否则会说你没有写评论
2. 列表浏览模式只能针对首页
3. 在写Blog的时候的表情不能插入
4. 写Blog的时候,会自动在双引号”和反斜杠前面自动加反斜杠
5. 日志搜索用不了
6. 相册功能如同鸡肋
7. WAP登录界面极其简单
8. 除了自带的那一个模板外,其余模板都是针对800×600分辩率的
9. ……………
正在转移Blog中,顺便仔细看一下这个新的Blog系统好不好用。

刚看了影片《零下八度》,英文名是eight below。非常不错的影片,推荐大家一定要看啊!特别是喜欢狗的朋友!具体情节我就不说了,大家在网上都可以搜到相关信息。该影片最感人的地方就是那几 只雪撬犬在南极经过了半年时间克服了各种困难,终于和主人团聚时。经典啊 ^_^图片附件:
b00005jotg.01.lzzzzzzz.jpg

这是一篇非常感人的爱情,我是从别的地方转来的,我不知道故事是真的还是假的,但是被他确实的感动了,朋友你进来了吗?你感动了吗?

  (一)

  从搬进,这家民房的第一天,我就开始怀疑我隔壁的那个储藏室根本没住人。一天到晚黑黢黢的,没半点声响。

  我终于还是忍受不了房间里那个破沙发了,便又一次跟房东要求,能不能让我把一些杂物放进隔壁的储藏室。房东斜着眼,哼了一下:跟你说过多少次了?那储藏室租给一对民工夫妇了,里面住着人呢!

  我算见识了广东人的抠门,就打算再也不去碰这一鼻子灰了。

  那天,我出来倒垃圾,经过储藏室的门,听到里面窸窸嗦嗦的,气就不打一处来,我知道肯定是老鼠又在里面大**了。我狠狠的一脚踹在门上,还不解气,就又猛踹一脚。

  门吱嘎的开了,我吓了一跳。我以为我把门踹坏了;正忐忑不安的时候,一个女人的脑袋伸了出来,确切的说应该是个女孩或者少妇,从她那蓬松的马尾辫和还有些稚气的脸上我实在无法判断她的年龄。

  她轻轻的问道:您找谁?

  我愣了,呆在那里,不知道说什么好。

  这时候一个有些猥琐的男孩子也把脑袋凑着伸了出来,迟疑了一下说:你是隔壁的吧?

  !

  我一下子醒悟过来,说:是啊,是啊。

  男孩子笑嘻嘻的得意的说:我上次下班回来见过你。

  周围的空气戛然的停在那里,有些尴尬。我赶忙说着:不好意思,不好意思,打扰你们了。便迅速的溜回自己的房门。我听到了他们轻轻关房门的声音,还听到了他们窃窃私语的声音,好像在说:是不是我们平时动静太大,吵到邻居了?那以后我们要多注意了!之类的话。

  我喝了口水,平静下来,我才确信,那个一天到晚黑洞洞的储藏室里真的住着俩人,

  这俩人也许就是房东说的那对民工夫妇。

  我突然冷笑了一下,还夫妇呢,一看也就20来岁的样子,私奔出来的?还是新婚小夫妻?不自觉的笑了笑,自我解嘲的想:民工么,农村出来的,结婚普遍早。那看来以后得称呼,那男人,那女人了。这样想着,还抑制不住的笑出了声。

  第一次跟这对小夫妻接触是因为我忘记了带钥匙,进不了门,便找他们借工具,想把门撬开。

  那是我第一次真正的去敲那个门,也是第一次去光顾那个阴暗的储藏室。

  门开了,他们夫妻看到我似乎很惊喜,赶忙的让我进屋。我说明来意,他们夫妻就转身找家伙去了。门开着,里面黑乎乎的,我忍不住往里迈了一步。不知道脚被什么绊了一下,我以为是有老鼠,吓得“哎哟”大叫。

  他们中的一下,立马打开了灯。天花板上的那盏小灯散发着昏黄的光,我敢肯定那灯泡不会超过10瓦。我很怀疑他们能从哪里买到这样的灯泡,在这样一个南方大都市我实在想象不出来那里会有卖这样的灯泡的。我猜想也许那是他们从老家带老的也说不定。

  我打量着这个我曾经很想把杂物放进来的储藏室。我以最奢侈的估算,房间不会超过10个平方。四周没有任何一个窗户,门是唯一可以通风和出入发地方。房间里散发着一种潮湿的霉味,钻进嗓子眼,让人感觉恶心。我忍不住一个箭步退了出来。

  可是我却清楚的看到,房间里除了一张单人木板床和零落在地上的锅碗瓢盘,真的没有任何插脚的地方,我真佩服那对小夫妻是怎么呆在里面生活的。

  最后,夫妻俩找到他们做饭的刀,也是唯一一个有可能打开我房门的工具,费了九牛二虎之力帮我弄开了门。

  门开了,我并没有任何要他们进来的意思。他们站在门口,把着门框。踮着脚尖,一副腼腆的样子,打量着我这个两室一厅的房子。

  女人终于说了一句话:怎么从来没看见过您先生啊?我怔着脸说:我还没结婚。女的脸红了,似乎说错了话,低着头,不敢搭腔。

  男人不好意思的说;那您一个人住这么大的房子啊。我没回答。

  两个人,半响没说话。不知道是谁先看到了我放在客厅的电脑,便忍不住说:您有电脑呢!

  我心里一个咯噔,民工也懂电脑?我说:是啊,你会上网么?

  男的挠了挠头皮说:我们读大学的时候,有电脑课,上过机。

  我嗖的浑身一阵发凉,大学?他们是大学生?可是怎么看怎么不象阿!

  我心里多少有点被欺骗的感觉,就故意问:那你们现在做什么工作的?你们什么学校毕业的?读的什么专业啊?

  他们抿了抿嘴,有点不好意思,我以为这下可揭穿你们了,真虚伪!

  突然男的开口了:我们读的学校不好,也就是个三流大学,我跟我老婆是一个大学的又是同乡,她读文科,我读理科。现在我做业务员,她在餐馆当服务员。

  我撇了撇嘴,“哦”了一声。

  (二)

  众所周知,这几年扩招,大学生可谓是遍地爬。大学容易读了,可是就业却难多了。

  三流大学的毕业生,真的是连民工都不如,要体力没体力,要脑力又够不上格。而且三流大学学费并不见得低,甚至要比好的大学要高很多,我就知道很多三流大学学费高的惊人。

  看这对小夫妻,估计是农村出来的,当初他们也许并不知道,花光家里的积蓄,得到的这一纸文凭,原来在这个社会里也许什么都不是。背负着一身债务,出来打工才知道,

  原来三流大学的大学生只能跟小学没毕业的靠体力吃饭的民工是一个层次的,都是命比纸薄,人比命贱的。

  第二天,虽然我内心深处还在揣测着,他们拿刀给我撬门技术这么好会不会哪天趁我不在也会这样熟练的顺手?可是总还是觉得别人帮了忙过意不去,就买了几斤南方的水果给他们拎了过去。

  他们似乎受宠若惊,说什么也不要。我就告诉他们这是广州这边的规矩,找人帮了忙,一定要表示的,不收就是不给我面子。他们才诚惶诚恐的收下了。

  没过一会,他们又来敲我的门。我以为是他们是把水果又送回来的,结果开门后的第一句话就说:请问,这水果最多能放多久?我诧异的望着他们,心里有点气,心想:难道他们以为我给他们买的水果过期了?我正要发作,他们便补充一句:能放到过年回家么?

  我愣了,他们说:过年没啥带回去的,这水果一定不便宜吧?我们想过年回去的时候带回去当年货。我有点哭笑不得说:广州天热,不能放那么久的,个把星期就得坏了。

  他们有点无奈,说了句谢谢,就走了。

  可是我明明听到:男的对女的说:要不我们想办法留到8月15,过节的时候打打馋吧。

  一个月后,农历的8月15,单位每人发了一盒高级月饼,拿回来后,我拆开尝了一个,感觉很难吃,就想丢掉。

  经过那个储藏室的门,我改变了主意,想着丢了也怪可惜的,他们那么可怜,倒不如给他们过节的好。

  看着门虚掩着,我没敲,就径直推开了,那盏昏黄的灯亮着,两个人蹲在地上,男的正在小心翼翼的切一个小小的月饼,正准备把一块稍大点的给老婆吃,看到我站在门口,

  不知所措的说不出话来。女的正低头啃着明显已经有点坏了的水果,吃的津津有味,我看到她没有削皮,番石榴和火龙果都是带着皮吃的。

  男人呆了五秒,赶紧要把那块稍微大点的月饼让给我吃,我说我不吃月饼的,然后说明了来意。把那盒月饼放在门口就准备离去。

  (三)

  周末,隔壁的女人来敲门,问我有什么事能是他们帮的上忙的,我笑着说没有。她眼尖,看到我沙发上放着一大堆脏衣服,非要帮我洗,我说有洗衣机,一会丢进去就是了,不费事的。她尴尬的站在那里,像是很对不起的的样子,不知道该做什么好。

  我第一次,很热情的邀请她进门,坐一会。她脱了鞋,光着脚丫子,进了门。战战兢兢的,似乎怕弄脏了我的底板,不敢使劲踩下去。她哪里知道其实我已经一个多星期没有擦过地板了。

  她告诉我,今天她休班,本来想帮我做点事的,可是没想到没做成。她似乎很羞愧,一直细声细气的答着我的话。她在我这里呆了半个小时,告诉了我他们的境遇,说那些话的时候她一直很温柔,像在说一个故事,丝毫没让我感觉到她的埋怨和委屈。

  我给她倒的那杯矿泉水,她一直攥在手里,临走的时候,她望了望我,我点头示意,她带走了那个一次性的纸杯子和那杯矿泉水。我猜,她是想留给她的老公喝。

  从今天我才知道,他们是这样的:

  两个农村出来的孩子,父母都是守着一亩三分地的地道农民,每年家庭收入从来不会超过2000的贫困家庭,又都考上了同一所三流大学,学费每年 的需要是父母不吃不喝的5年的家庭收入。读不起书,不想去,父母不肯,说这是唯一一次改变农村孩子命运的机会,跪下来求你去读。来读了,没钱交学费,好歹 有个助学贷款,好不容易凭着优异的成绩申请到了,可是毕业的时候却因为没有还清贷款不发毕业证。四年的生活费是靠着奖学金艰难的撑下来的。到头来,辛苦的 付出却换不到那一纸毕业证。于是两人只能出来打工赚钱,攒够了钱好回去赎回毕业证。

  他们租着这个城市最廉价的房子,吃着这个城市最廉价的饭菜,过着这个城市最贫困的生活,可是一年到头下来却还攒不到1万块钱。这样下去,要还完两人的贷款还要8年。

  我不知道8年对一个人的青春意味着什么,也不知道8年后是不是还能有机会有权利买回他们的毕业证。可是我知道8年的这样的生活,不是随便哪一个人能撑的住的!

  (四)

  那天,我回来的时候,有点晚,楼道里的灯已经都开始亮着了,经过隔壁门口的时候,看到他们门开着,屋里照样还是黑黢黢的,男的蹲在门口大口大 口的扒着面条,吃的很香。我问了一句:灯坏了?他先是迟疑了一下,然后憨憨的笑了:没呢,省电,反正楼道里的灯亮着,开着门,屋里也挺亮堂的。我笑了。我 这才知道,怪不得他们屋里天天都不开灯。

  那晚他们的门一直敞开着到很晚。我在客厅里能隐隐约约的听到他们的谈话。

  他们先是谈了会,这个月又多花了多少钱,什么肥皂用的太快了,水太浪费了,上次过生日不该买那2斤肉的,以后洗菜的水可以洗脸,洗脸的水可以洗澡洗脚,洗脚的水可以洗袜子,洗袜子的水可以冲厕所等等之类的话。

  他们一边自责着自己花钱太多,一边却又忍不住憧憬着美好的未来。

  他们想象着,不久的将来,也许还完了钱,就可以能要个孩子,也许将来还能攒前买房子呢。

  听着他们兴奋的呢喃声,我久久没有睡意。

  半夜,我听到男的喊肚子疼,好象疼的很厉害的样子,“哎呀哎呀”的叫着。女的很着急,问怎么了?男的说好象今晚吃多了,撑着了。女的就招呼他赶紧起来上厕所。

  男的迟疑了很久,似乎不想去,半响,我听到男的说话了:我不想去上厕所,我们攒的冲厕所的水还不够,那样这个月的水又要超支了。再说了,上完厕所,拉空了肚子,晚上容易饿!

  听到这里,我脑袋轰的一下,空白了,我的心被揪的生疼生疼,那句话成了我整夜的梦魇:拉空了肚子,我怕饿!

  五)

  听到那句话,我的心震撼了。我想到了我的爷爷。

  爷爷生活在苦命的旧社会,在那个吃不饱,穿不暖的社会里,一年到头,小孩子拼命的盼着过年,因为过年能吃顿饱饭!

  所以,每个孩子在过年那天,吃的撑的小肚子圆溜溜的,肚子再怎么涨,都不舍得去厕所。因为,去了厕所,拉空了肚子,会容易感觉到饿,可是过完了年,是没有机会再能吃顿饱饭的!所以每个孩子都憋着,忍着,因为那个年代,穷,人们怕饿,孩子更怕饿!

  可是在21世纪,在这么发达的年代,你竟然能从一个大学毕业生的嘴巴里听到这样的话,你会有怎样的感觉?感动?悲恸?还是心酸?还是无可奈何的哀叹?

  或许都是,或许都不是!

  我无暇顾及一个弱者的心态,因为社会如此,我也无能为力。我唯一能表示的除了同情或许还是只有同情.

  我也曾经鄙视过,甚至曾经在心底侮辱过:活该,谁让你没本事考个名牌大学呢!没钱读个屁书,自作自受!

  可是我也不得不承认,一个山里的孩子,是不能仅仅凭着聪明才智就能高攀的起名牌大学的门槛的;那需要能力,实力.实力有时候除了良好的教育,优秀的老师,还有很多很多,比如金钱堆砌的补习班,比如只有城里孩子才能享受的到的全方位的教育,又比如有有权有势的父母.

  他们没有,他们是农村的孩子,他们没资格和权利有,没人给他们买各种辅导资料,也没有全国的优秀教师给他们手把手的教,他们没见过钢琴,没见过电脑,他们甚至除了村支书,不认识任何一个可以称得上干部的领导.

  他们一天到晚只会看发的那唯一的课本,只会拼命的学,只知道只有考上大学才能改变自己的命运.

  听着他们蹩脚的英语,不太流利的普通话,有些邋遢的装扮,破旧过时的衣着,我们都会忍不住笑.

  我们喜欢在背后对他们评头论足,喜欢抿着嘴吧装作淑女般的嘲笑他们的无知,甚至喜欢在要去吃麦当劳的时候故意问他们去不去.习惯了看他们的尴尬,习惯了看他们的无助,也习惯了他们失去的比得到多.

  当我们有了太多的这样的习惯,于是我们便开始不在乎,他们是不是饿,是不是在我们浪费粮食的时候,他们在心底里还默念着:不敢去厕所,怕拉空了肚子,饿!的事实.

  "人怎能跟人相比呢?没有可比性!农村的怎么能跟城市的孩子比呢?没比的必要!"这是以前我的一个朋友经常跟我说的一句话,那时候听了觉得好笑,现在想起来,觉得有点无可奈何的心酸.

  人难道真分三六九等么?谁分的?你么??

  (六)

  广州的治安是越来越差了,住这种私房,真的是冒着生命危险的.可是眼下我又找不到合适的房子搬,只能暂且战斗在最前线了.

  整栋楼有十几个房东,他们是天天围着麻将桌懒得轮流值班的,反正偷的也不是他们家的东西.最后在我们几个房客的据理力争下,好歹请了一个保安.

  我下班回来,看到楼下吵吵嚷嚷的,原来是保安抓住了个嫌疑犯.我好奇的瞥了一眼,这人不是别人,就是住在我隔壁的那个看上去有些猥琐的男人.他低着头,拼命的解释:自己不是小偷,自己是住在这里的.

  可是没有人相信他,因为当保安问他住几楼,哪个房间时,他只说了6楼,却说不出房门号.因为储藏室是没门牌号码的!

  他像个吓坏了的孩子,眼睛惊恐的扫视着周围的每个人,听着叽里呱啦的客家话,他无力的解释像一个人最后的死命挣扎.

  我本能的走过去,他看到了我,眼睛里充满了希望,含着泪珠的眸子闪过某种感激.我抬了抬我那总是直视远方的眼睛,发现周围的人都盯着我.

  我迟疑了,立刻停住了自己那8公分的高跟鞋.我轻轻理了理自己的粉色洋装,脸上滑过让人不易察觉的一丝惊慌和害怕.我想扭头冲向楼梯,当作什么都没发生过.可是我怎么也抬不动我的双腿,我僵持在哪里半秒钟.

  我尽量的压低嗓门,很礼貌矜持的说:你怎么没带大门的钥匙?是不是又丢了,真让人烦!

  保安放开了他,我微笑着说:他是我的远房亲戚.不好意思,给你添麻烦了.

  我扭头,踩着我那尖尖的高跟鞋上楼了,楼道里留下一串"嗒嗒"的响声.

  他老婆回来的时候,一直隔着门,站在我门口不停的说着:谢谢.我没吱声.过了不久,似乎她已经走了的时候,我打开门,看到他们却还站在门口,捧着一大把花生和红枣.

  我盯着他们,没开门,他们也没敢说这是给我.只是一个劲的解释:下午那会,他老公是想在楼下捡几个矿泉水瓶子呢;要早知道不让捡,他说啥也不去了.

  我本想打断她的讲话,告诉他们:不是不让捡,是你们长的不像住在这栋楼里的人.可是我还是忍住了,继续听他们说.

  他们始终低着头,轻声慢语的,说:他们也知道这里的规矩,人家帮了忙呢,一定要感谢的,可是他们没什么能拿的出手的东西,这是他们老乡回家给他们捎来的家里的特产,都是自家种的,没用过化肥,让我放心吃.

  我还是开了门,拿了张纸,让他们把那把礼物放在了一张洁白的A6纸上.

  那把花生和枣我没有吃,我就放在哪里,看着.他们都光溜溜的,泛着光,很心想的样子,一般大小的个头.很饱满.

  我猜,他们一定是精心挑过了的.估计一麻袋里才能挑出这般的花生枣子吧.

  想到这里,我笑了.不大会,我又后悔起来,我真不该笑!

  (七)

  房东终于找上门了,开门见山的第一句话就是:是不是你家新住进一个人?我愣了好大一会,才想起来,可能是保安跟他说了。

  我把事情的来龙去脉解释了一下,并试图说服房东给隔壁的门也挂个号,房东不情愿的“嗯呢了几声,便走了。

  第二天,我真的看到他们的门上贴了张纸,写着:清洁工具存放处。

  没过几天,我大学里的死party兼室友和她新结识的男友来广州找乐,我被迫请了一天假,陪他们。

  随便找了个馆子想请他们吃粤菜,可是朋友说粤菜没味,没吃几下,就嚷着走,后来还是不得不去了湘菜馆子,才算满足他们的胃口。吃完饭,没事,街上是不敢拎着包包闲逛的,就去了钱柜K歌,唱到一半,结果又使性子,非要去朝歌。弄来弄去,歌没唱好,还耽误了时间。

  晚上回来的时候,已经有些晚了。可是我看到隔壁的灯还亮着,屋里还嘤嘤的传来抽泣的声音。

  我没理会那声音,开了门,把朋友让了进去。朋友进门就开了电脑,把那首《不怕不怕》开的声音老大,震的整个房子都晃悠。

  楼下的终于忍不住了。来敲门,让我们动静小点。我关了音乐,跟朋友谈起了隔壁的那对小夫妻。朋友以为我在讲故事,一边说着无聊,一边就摸过烟开始吸。我最讨厌烟味,因为那能呛出眼泪。

  我赶朋友出门,让她在楼道里吸够了再回来。

  半枝烟工夫,朋友死命的敲门,兴奋的叫着她男朋友的名字,说快出来听戏。

  他们俩出去,便没了声息。好久才回来。

  朋友一进来,就凑到我耳朵边说:你别假正经了,是不是每天晚上没事,就去隔壁听音乐啊?我还没来得及反应过来,他们俩就大笑起来。没完没了的,怪烦人的。

  后来,我才知道,原来他们俩是去隔壁门口听动静去了。至于什么动静,我没问,但我想,应该与颜色相关。

  晚上睡不着拿起《洛丽塔》,看了两页,就开始走神。后来迷迷糊糊的睡着的时候,我似乎真的听道了隔壁的动静,声音不大,但很诱人。

  朋友呆了还不到3天,我就开始烦躁,我感觉那种以往的宁静被打破了,而且一个单身女人看到一对情人在你面前晃来晃去的亲昵,真的容易中风!

  送走他们,我开始变得神经质,我经常故意关门很大声,估计开开关关防盗门不停,故意想让隔壁听到我在发脾气,故意想让每个人都知道我心情很不好。

  隔壁的小夫妻还是每次看见我笑笑的,有点腼腆的羞赧。男人那头有点油腻有点乱的头发依旧还是在发梢上泛着或多或少的头皮屑,女人的马尾辫也依旧蓬松的拢在后面,有点像秋天乱飞的树叶。

  可是我见了他们,却没有笑,也不再板着脸,只是面无表情的点个头,用自己有力的鞋跟敲打着地面,匆匆离去。

  每次低下头,看着自己那8公分的高跟鞋,我才恍惚的感觉到,其实没有了这鞋跟,我似乎也不高!

  然后就是无休止的失落和郁闷!

  (八)

  有这么几天,那扇门一直关的紧紧的,屋里也一直没亮过灯,我扒在门缝里瞅,竟然不能看到里面的任何东西。有几次,我甚至使劲贴着耳朵听,竟然也丝毫没听到任何动静。

  我开始害怕,担心他们不声不响的搬走了。

  我甚至开始抱怨,为什么走的时候没打声招呼。我不知所措,在房间里踱来踱去,狠命的撕扯着那个抱枕,用力敲打着键盘,写着一些很尖刻的文字,用蔑视的眼光看着周遭的一切。

  我发现我有好久没这么情绪激动过了,甚至应该说我有很多年没这么情绪化了。我突然伤感起来。似乎失去了什么珍贵的东西,似乎别人偷走了原本属于我的一份心情。我开始诅咒,开始谩骂,开始憎恨这个世界。

  我每天站在门口,期望着能突然有人站在我面前笑,我总是忍不住去瞄那扇门,希望能看到里面透出一丝淡淡的泛着黄晕的光。可是一连好几天,都没有。

  我终于还是跑去找了那个有点啰嗦的房东。我说我要租那个储藏室。房东讶异的看着我:你要住?我皱了皱眉,说:我要放沙发。房东似乎有点为难:你想什么时候租?我诧异了:难道现在还有人住么?不是空出来了么?房东说:那对民工下个月到期。

  我忽然有种莫名的欣喜,难道还没走?我结结巴巴的说着:那下个月我租!

  等我再经过那扇门的时候,我有点高兴,因为我似乎看到里面锅碗瓢盘碰撞的声音,因为似乎我能听到他们的窃窃私语。

  那天,我睡的很早,我其实一点也不困。可是我还是早早的躺在了床上,我睁大了眼睛,看着天花板,想着有一次能有人敲我的门。

  一阵开门的声音惊动了我,尽管那声音小的还没蚊子“嗡嗡”声大,可是近几天我练就了一双聪慧的耳朵。我唰的从床上爬起来,冲了出去。

  那女人看着我当啷的一声开门声,吓得站在哪里不动了。我很尴尬,赶忙掩饰自己的那种激动:回来了?怎么这几天都不在?回老家了么?女人望了我半响,吞吞吐吐的说:

  还没睡呢,大姐。没,没呢,没回去。这几天有事。

  她第一次不是微笑着跟我说话,也是第一次没有过多的说什么,就进了那间我天天盯紧了的储藏室。

  我愣在那里,好久,好久,我才反应过来。我突然想哭,是那种有点委屈,有点付出了很多热情却被冷落后的难过。可是我没哭出来,也没掉泪,我只是关了门,打开了电脑,开始漫无目的到处游荡。

  那晚,我听到她一个人忙到很晚,丁零当啷的不知道是做饭还是收拾东西。

  听到那个屋里一直传来一个人的声响,我突然很奇怪,那男人呢?

  我孤单起来,感觉到寂寞的可怕,尤其是那隔壁的单调的动静,让我彻底的开始感觉到浑身冰凉。

  我突然意识到:原来一个人是这么凄清,这么荒凉的可悲。我裹紧了睡衣,可是仍旧无法驱散这午夜的孤寂。

  (九)

  她似乎有点不好意思,在门口站了许久,没有敲门,也没有要走的意思,低着头,好像在思索着怎么开口。

  其实对于昨天那些简单的话语,在南方这个有点冷漠的城市,不算什么,客套显得奢侈,敷衍是每个人对周遭的理所当然的态度。可是我看得出来,她 还并不适应这种人与之之间的冷淡和乏味的陌路。也许,她以为,在这里还是跟家里一样。可是,她单纯的,怎么能想象的出来在异地他乡很多时候人和人是没人情 味可言的。

  我主动开了门,走了出去,看着她,等她第一个开口。

  她听到门响,忽的抬起头,眼睛里有点惊慌,有点不好意思的欣喜。她笑了笑,我明显的看到她的眼睛红红的,肿了,有哭过的痕迹。

  她微微点了下头:对不起大姐,平时你挺照顾我们的,昨天我心里难受,对你态度不大好,你别在意。我还有事,要赶着出门,没别的事,我走了。。

  。

  她转过身,我一把拉住了她。我第一次像对一个朋友那样的语气问到:出啥事了?

  她愣了,泪珠子像断了线一样,噼哩啪啦的掉下来,所有的委屈,压抑,和内心深处的痛苦,都随着眼泪倾泻下。。。我毫无防备,她一下趴在我肩头,哭出声来。我没拒

  绝,轻轻的环住了她,想着也许这样能多少分担一些她那莫大的苦楚。

  她娓娓道来,我才知道,她老公住院了。

  他老公本来做业务员,可是由于本性木讷,不善于交际,所以业绩一直不好,只好辞职了,另找了份体力活暂时做着。由于体质不好,又加上吃的不好,每天都很累,那天,去上班,不小心被掉下来的砖头砸破了头,住进了医院。

  本来以为这算工伤,单位会报销医药费,可是单位不仅不管,还把他开除了。积蓄都花光了,她只好回来收拾收拾,然后

  去把老公接回来养伤。

  我拿出了张银行卡,想给她取点钱,暂时用着,她死活不肯,就一溜烟的跑下了楼。

  下午她和她老公就回来了,她老公的头上包着纱布,有气无力的样子,看到我,还是挤出了笑容。看着他那矮矮瘦瘦的样子,我似乎觉得他看上去没那么猥琐,尽管卑微,却很精神;尽管怯懦,却很坚强。我回了他一个微笑,这一次,我笑的很真,很用心。

  那一天,一整天,我心情都很好.这是我从来到这座城市后第一次这么开心,第一次这么用心的笑,第一次这么在乎自己是否笑的认真.

  那天,我看到了自己脸上掉下来的面具,赤裸裸的摆在我面前,露着森森白牙无力的呻吟,无力的挣扎,无力的哀嚎.

  而我,就那么漫不经心的,拿起打火机,点燃了它.

  (十)

  我小心翼翼的敲开了他们家的门,女的不在家,上班去了,男的颤巍巍的站在门口,

  望着我傻乎乎的笑着,不知道该怎么把我让进门。

  我并没有要进去的意思,就那么直直的站在门口,像聊天一样,像跟家人朋友说起话来:你们单位叫什么名字?凭什么在你上班期间受伤不按工伤负责医药费?他们有什么理由开除你?按照《劳动法》你有权利……..我话还没说完,他就傻傻的笑了,插嘴道:

  我知道,我也读过大学,我也懂法,可是没用的!《劳动法》也许真的能保障你们这些白领的合法权益,可是对于一个民工,是没有任何保障可言的。拿什么保障?谁给你保障?

  你找谁讨说法?什么这个机构,那个机构都去过了,磨破了嘴皮子,根本没人管!去单位,那些老板雇佣的打手不把你打残废算是幸运的了,再说,去挨顿揍,最后还是自己掏腰包看病,更不划算。算了,我认了,谁让咱没啥社会地位呢!

  听着他的叹气,听着他那些话语,我似乎感觉到了自己的幼稚,社会是残酷的,生活是残忍的。报纸上那些民工年年讨要工钱反被打,干了活拖欠工 资,受了工伤没人管的新闻一幕幕浮现在我的眼前。我一下子开始清醒,社会就是这样的,你让这样的一个弱者去那里讨说法,你让这样的一个社会底层的人,拿什 么来维护自己的权益?

  我不再言语,我感到了语言的苍白无力,我感到了词汇的贫乏,我也感到了自己那些不太现实的想法的天真。

  我有点虚弱的沉沉的叹息,呓语般的说:外面的社会太无奈,这么艰难,还是回去吧,于是这样备受凌辱和煎熬,不如回去过岁更贫困却有尊严的日子。

  他还是笑了,笑的有点无奈。他抬起头,望着远处,似乎在自言自语:回去?回去怎么办?欠的学费无论如何要还的,都不还,国家怎么办?国家在我 最需要的帮助的时候伸出了手,我不能忘恩负义,做人要厚道!何况家里还有弟弟妹妹在读书,父母也年迈了,身体又不好,不赚钱,怎么供弟妹?怎么养爹娘?

  做人要厚道!听到这句话,我惊呆了,一个生活这么艰难的人,一个沦落到社会最底层的人,竟然还想着国家,竟然做人的原则比我们这些衣冠楚楚的人都高尚。我开始感觉到自己似乎变小了,有些卑微。

  我睁大眼睛,看着他,有那种很敬畏的目光一直盯着他,耳朵里飘过的全是他那些幽幽道来的话:

  农村真的穷,很多人都说,穷还生那么多?其实,为什么要生了一个还要生一个?谁愿意那么穷还要养几个孩子,生活压力更大,可是没办法。被逼的 啊!在农村,人老了,没劳动能力的,就等于开始要养个闲人,农村的老人没养老保险,没任何社会福利,也没任何生活保障。如果不多生自己孩子,老了后,一个 孩子养不起俩人老,那还不得活活饿死,于是只好多生几个,分轻负担。养儿防老是农村不得以的传统!

  每个农村的父母都想自己孩子有出息,而想改变命运只有考大学一条出路,可是读大学却是很昂贵的,所以家里只要有一个考上大学的,全家都要遭殃,跟着砸锅卖铁的供着。

  可是现在大学生毕业工作很难找,尤其是读的学校不好,专业又不好,更难找;没拿到毕业证等于没上大学,去任何单位人家都要看你学历证书,没有,只能当民工。

  说到这儿,他很无奈的摇了摇头,用力的憋着嘴巴,不再言语。

  我也没说话,我不知道该说什么好,因为这是一个从小生活在城市里的孩子无法想象的,于是我选择沉默。也只能沉默。

  中午,我叫了两份快餐,我端了一份给他,他说什么也不要。我假装生气道:我打扰你一个上午,让你没好好休息,请你吃个快餐算是表示歉意!他推辞不掉,只好接过去了。

  我知道一个快餐,太寒碜了,可是我知道,如果过于奢侈的东西,他又怎么肯接受?

  晚上,女的很晚才回来,累的一身疲惫。我听到男的说:我给你留了好吃的,你饿了吧,快吃吧。女人坚持说吃过了,非要男的吃,因为男的有伤在身,需要营养。听着他们推来推去。我的眼眶湿润了。

  我知道,我又错了,我太不了解他们彼此的爱了,他们的爱是双份的啊!又怎么忍心一个人独吞一份自己认为是好的东西,而让另一个咽着口水眼睁睁看着呢?

  那天,我终于知道:两份爱的倍数很大,很大,很大。以至于我根本无法看到它的边际,无从理解它的内涵。

  (十一)

  男人终于慢慢的好起来了,等他完全康复的时候,我托朋友给他找了份稍微轻松点的工作,虽然赚钱不多,可是毕竟比先前的要好些。他们夫妻俩带着满怀的感激不知道说了多少遍:谢谢。尽管我一再说这是举手之劳,可是他们还是不停的说谢谢。弄的我都有些惭愧了。

  一个月后,男人和女人兴高采烈的跑来拽着我往外走,我还没弄清怎么回事,他们就把我拖出了门外。直到楼下,我才搞明白,原来男人发工资了,非 要请我吃饭。我呵呵的笑着,说:不用客气了,都是出门在外,互相照应是应该的,吃饭就免了吧。可是他们固执的拉住我,非请不可,说:不请,于情于理都说不 过去。看着我也一副坚决不去的样子,他们俩急了:你是不是怕我们带的钱不够,不看,我带了好几百呢。说着就要去掏钱。

  看着他们憨厚可爱的样子,我实在推辞不过,只好应了。

  我一边走着,一边想着:怎么样才能既让他们请了我,了却了他们的心愿,又能为他们省钱。我想起了广州最便宜的饭馆,拉面馆。

  于是我装作沉思良久的样子说:我知道有个地方的东西很好吃,我最喜欢吃了。不如我们去吃兰州拉面吧。他们俩先是一呆,接着就说:那怎么行呢?怎么能请你只吃碗面呢?说啥也要请你吃顿好的。

  我故意很生气的样子:我就喜欢吃拉面,你们要是诚心请我,就请我吃拉面,要是吃别的,我可不高兴了。

  他们俩看我生气了,只好答应着,说:一切都依着我。

  到了面馆,我点了一碗牛肉面,男的点了一碗素的,一碗牛肉的。等拉面端上来的时候,男人把最大的一碗带牛肉的面推到我面前,把另一碗有牛肉的端给他老婆,他自己的那碗却是碗小的素的。

  看着我疑惑的眼神,男的赶紧解释到:我喜欢吃素的。以前的伤口还没长好,吃荤的对伤口不好,素的好。

  其实我知道,这根本不管伤口的事,我知道他是为了省钱,可是他不会亏待朋友,于是只能亏待自己。

  看着他大口的吃着面,看着他老婆不停的把牛肉夹到他碗里,看着夫妻两人你不停的你把肉夹给我,我把肉夹给你;我的嗓子哽在那里,难受的咽不下去一口面。我能感觉到我的眼前一片模糊,不知道是面的热气扑在了脸上,还是有别的东西糊住了眼睛,能感受的只有一阵潮湿。

  第一次,我学着他们的样子,吃光了碗里的面,喝光了碗里的汤,尽管我撑的胃疼。

  可是我第一次能感觉到我内心深处很充实,很满足。

  虽然吃的是8块钱一碗的拉面,但是我知道这一餐很贵。那不仅仅是花去了他们好几天的生活费;让我得到的更不仅仅是饱饱的胃,而是我从未有过的感激和体会。这无论是多少钱都不能买得到的,也不是所有人都能得到的恩惠;那种价值只有人性中才有。

  我想,这是我至今为止吃过的最贵的一顿饭,它真的很奢侈,很昂贵。

  (十二)

  一个懒洋洋的午后,我的那个朋友给我打电话来,当我听完他的叙述,我吓呆了,我不知道他说的是不是真的,也没听清楚事情到底怎么回事,我只知道,我隔壁的那个男的被抓进了公共安全专家局。

  朋友不停的埋怨我,怎么会给这样的人介绍工作,言语间的不满,无疑是说,我让他帮忙找了这个工作,事情现在弄成这样,他在那个公司老板面前已经颜面尽失。听着他愤愤的挂断电话,我就知道,以后这个朋友算是没了,更别说再找他帮忙给那对夫妻介绍工作了。

  我已经来不及关心,这份或许叫友谊的东西还是否能完整的存在,也无心去跟这位朋友道歉,我只想知道他怎么样?我只想弄清楚事情到底是怎么回事。我在潜意识里竟然多了份对他的信任,我告诉自己,也许这是个误会。

  我请了假,急忙的赶回家,跑上楼,去敲那扇门,可是良久,都没人来开门。我有点失落,我想也许女的已经赶去公共安全专家局了。

  我无力的靠在那里,望着隔壁我的门,突然伤感起来。我看到了我门框上贴着一张纸条,我跑过去,撕下来,是女的给我留的言。上面没说什么事,只是留下了一个派出所的地址。我来不及多想,便赶去了那个派出所。

  赶到那里的时候,我看到两个民警正在对女的训话,女的低着头,忍住抽泣,耸动的肩膀似乎在极度的压抑着将要哭出来的声音。旁边还坐着一个中年 妇女。那个中年妇女频频的皱着眉头,尽量的让身子往一边靠,唯恐女人那身有点破旧的衣服玷染她。我冲过去,拉住女的胳膊问道:到底出了什么事?

  两个民警先是打量了我一番,沉吟了半响,然后口气缓和的问道:你是?我没看他们一眼,自顾的说:我是**晚报的记者,她是我的朋友,我想来找她了解一下情况。

  两个民警互相看了一眼,半信半疑,但是有似乎不敢冒险,于是姿态便低了下来,不再大声的吼着对女人训话,对我也客气的套起交情来。

  我把女人拉到一边,问她到底是怎么回事,她老公在哪里?女人看着我,还没开口,眼泪就刷的掉了下来,我安慰她不要哭,先把事情跟我说清楚,我们再想办法。

  原来事情是这样的,今天上午,他老公去为公司的一个客户送资料,在公共汽车站等车的时候,正巧遇到“飞车party”抢劫正在等车的一个妇女 的包。妇女拼命拉住自己的包哭喊,却没有一个人去管,正在双方你争我夺,僵持不下的时候,他看到了,想都没想,就冲过去,帮妇女夺包。无论贼人怎么打他, 甚至拿出了刀子,可是他还是拉住包不放手,这时候执勤民警赶来,飞车party便逃窜了。

  本来事情就这么简单,可是当民警赶来的时候,看着他也在夺包,以为他是抢劫犯的同伙,就问那个被抢的妇女,认不认识这个男的,妇女一口咬定不 认识,并且还强调:她也不知道这个男的是飞车party同伙,还是另一伙抢劫犯,反正跑上来就夺她的包。民警二话不说,就带走了男人。

  由于男人着急给客户送资料,所以再怎么解释都没有,挨了匪徒的打也就罢了,竟然还被民警猛揍一顿,让他老实交待。他怕耽误公司交待的任务,只好报出了公司的名字,

  本想着这样只是可以赶紧让公司派人来把资料及时转交给客户,没想到,公司一听,立马不承认他是本单位的人,也就是说他立马就被开除了。

  民警通知了他的老婆,他老婆一来,就被定性为:抢劫犯家属。不停的被训话,还让她交待问题。她吓得不知道说什么,脑袋一片空白,要是我不来,她真的不知道该怎么办?

  听完她的叙述,我一股无名火就上来了。我转身到那位妇女旁边:请问,你就是受害人?我想采访一下您,这是我的工作证件。妇女愣了,不知所措的 看着我,我不理会她的莫名其妙,继续问道:请你详细描述一下当时的情况,你为什么就认定这个帮你夺包的人也是抢劫犯,为什么你就不能认为他是来帮你从匪徒 手上夺回包的人呢?

  妇女,看了看我,又看了看民警,慢吞吞的,结结巴巴的说:怎么可能有那么好的人?这年头,谁还爱管闲事啊?难道他不怕死?他要是真帮我,那他不是傻子就是精神有问题。police听着,也频频点头,似乎她说的才是一个正常的人所应该做的。

  看着他们理所当然然的表情,我愤怒了,我大吼起来:他如果是抢劫犯的同伙,为什么抢劫犯打他?他如果也想抢你东西,为什么police来了不 跑?在police来之前那会,他完全可以抢了你东西就跑?你东西少了么?他打你了么?有目击证人可以证明他也是在抢你包么?你们pol.ice有什么证 据证明他就是抢劫犯?是因为他没有这个城市的户口?还是因为他穿着不够华丽?一个冒着生命危险帮你忙

  (十三)

  pol.ice可以抓错你,法律可以错判你,可是你要想去纠正这个错误却不是一件简单的事情。

  抓错你,可以只是因为怀疑你,就能给你戴个嫌疑犯的帽子;疑罪从无在很多时候只是法律条文里的一句话而已,现实中能真正贯彻实施的屈指可数。判错你,可以有一万个

  理由归咎于司法的不健全,可是没有人会为你你受到的不公待遇负责,提起国家赔偿,也只是说说而已,又有那个人能真的得到过这样的道歉形式?!

  我知道,要给他洗清罪名,我必须全力以赴,我必须有足够的证据证明他是无辜的,他是好人,他当时是想去帮助那个妇女。

  尽管,现在妇女含糊其辞,以把自己搞糊涂了,自己也说不清楚他到底是不是来帮自己的等等理由来推脱,不想面对自己遇到好人,反咬一口的事实。police也以虽然没有证据证明他是抢劫犯,但是事关他出现在事发现场,并与此事有关联为由,不能彻彻底底的还他一个清白。

  我知道,要靠抓住当时的那两个抢劫犯来为他洗脱不白之冤可能性微乎其微,我只能想办法找其他证据。我利用自己是记者的身份,想尽办法,找到了 当时事发现场的2个目击证人,是一个报亭的老头和一个推着车买水果的妇女。他们都说当时那男的的确是去帮被抢的妇女夺包,不是抢劫犯。可是当我想要他们陪 我去趟派出所跟pol.ice证明一下的时候,他们却死活都不肯。说不想多管闲事,怕惹一身臊。在我苦苦哀求无果的情况下,我不得不耍了点小手段,与其说 是手段,不如说是无奈之举。

  我说我是记者,现在要对那天发生的事件,写篇评论。广州街头一妇女被抢,好心人施救,反被诬赖是歹徒,旁观者无人肯出头!我还故意说:你们俩我也会以匿名形式将你们事不关己的态度写进去的,不知道你们的孩子看了,会有何感想。

  看着两人有点迟疑,我又说,如果你们肯证明,我当然也会在文章中把你们伸张正义,深明大义的善良举动报道出来的。我相信你们都是好人,都不会眼睁睁的看着另一个好人被诬赖受不白之苦的。

  他们掂量了很久,终于还是被我说动了。

  我又去找了男人公司的上司,尽管他很不情愿的开证明说那天的确是派男人去给客户送资料的事实,但是碍于我与他们老板朋友有交情的情面,还是开了。尽管,我也知道,那个原来的朋友其实也许已经没得朋友可作了。

  我找了律师,咨询了这方面的法律,托了很多朋友和同学,终于把男人弄出来了。

  尽管出来的时候,pol.ice没一句道歉的话,尽管那个受过他帮助的妇女没一个谢字。

  可是,我看得出来,他并没斤斤计较的去在乎。起码证明了他无罪,证明了他是个好人。

  当这件事发生的时候,我失去了原本可以称之为好友的朋友;甚至失去了以后可能再联系的可能。但是我得到的更多,更多,我得到了让一个好人恢复声誉的机会,我得到了去帮助一个值得去帮助的人幸运,我也得到了一份我对自己的由衷的感激。

  我不知道,他以后再碰到这样的事还会不会毫无顾虑的冲上去帮忙,也不知道他内心是不是已经开始对于做一个好人的概念有了新的诠释,可是我知道他本质的善良不会因此而动摇。

  可是无论怎样,也不管以后他会不会继续这样做,我们都没资格再去怪他,也没权利去让一个受过伤害的好人忍着痛再去迎头顶刀子!因为,那个拿刀子伤害他的人,其实就是我们,我们这些人,我们这个社会。

  天空飘着雨,有点阴霾,来来往往的人潮,冷着一张张没表情的脸,继续在这个城市生活着,没有人知道曾经发生过这样的一件事,甚至当初亲眼见过此事的人也许早已当作一个谈资将其遗落在脑后。

  世界忘记了,可是我记得,那天记得,岁月记得。

  (十四)

  自此以后,那夫妻总是显得有点卑微,总是在感激了我之后,有点抬不起头来的难过.。似乎全都是他们的错,似乎他给我们,给所有的人添了很大的 麻烦一样。也许,真正善良的人都是这种心态,总是不停的从自身找原因,总是觉得如果我够好,又怎么会这样,却从来不去怪罪别人,不去把责任推卸到别人身 上。

  我试图给男人再找份好点的工作,无奈,夫妻两人总是笑眯眯的说:不麻烦了,他们找到工作,已经在上班了。其实我心里明白,他们知道上次给我添了乱,是无论如何弥补不了的,尽管我不在乎,可是他们在乎,他们不想再来让我为难,所以便拼命拒绝我的好意。

  男人早出晚归,我想或许是真的找到工作了。看着他们每天筋疲力尽的样子,我心里酸酸的,却又不知道该如何帮他们。我第一次感觉到:那种无可奈何的难过,竟然是能折

  磨人的。

  元旦的时候,我在楼道遇到他们,夫妻二人高兴的跟我打招呼,说要出去吃大餐。看着他们有说有笑的出门,我心里不禁艳羡起来,也许在我们为他们难过的时候,他们却能

  找到属于他们自己的生活的点滴快乐和幸福。

  第二天,我一看到他们,就开始调侃:昨天去哪里吃的大餐?他们并没有不好意思,而是神秘的笑了,那笑有点天真,又有点温暖。女的趴早我耳朵边悄悄的说:大姐,你知

  道么?有种店,是一块钱吃到饱的!我惊诧了,睁大眼睛看着他们。

  在广州呆过的人都知道,有很多快餐店,为了吸引顾客,总喜欢在门口张贴着一块钱吃到饱的大条幅,可是我们每个去过的人都知道,那只是一种标 语,真的进去消费了,是永远不可能会让你花一块钱吃顿饭的。说句实话,进去吃饭就算你一个人,吃下来,再怎么节省也要20块钱。何况是夫妻俩人一块去吃 呢?

  我很怀疑的看着他们,他们似乎有点不好意思了,男人终于忍不住了说:真的,大姐;我们没骗你,我们昨天去吃过了,我们两口子一共就花了五块钱!我失笑出声:怎么可

  能,米饭一个人都要算两块钱呢,五块钱,你们吃的啥?

  女人嘿嘿的笑了:我们进去,看菜单,发现只有一种小菜是一块钱,就是花生米,这么小一碟。一边说着,她便用手比划着,其实她不比划我也知道那 碟花生,估计一共不会超过10粒花生米。因为在餐馆里,这种一块钱一碟的花生米,只是为了响应他们的一块钱吃到饱的口号的。现实中真正去点这个菜的人屈指 可数。

  女人还在眉飞色舞的说着:他们的例汤是免费的,一大盆呢!反正米饭按人头算钱,一个收两块,我们俩就着花生米一人吃了四碗米饭,喝光了所有的汤,吃的饱饱的,只花了五块钱呢。

  说完,他们俩相视一笑,反而让我觉得不好意思起来。我不知道,他们是怀着多大的勇气,走进一个还不错的餐馆,坐下来,只点一碟花生米,却能吃完四碗饭的?我也不知道,他们在喝光免费的汤时,一粒花生米就着一碗饭怎么就吃的那么满足,那么开心。

  我想,当时,肯定有很多人用异样的阳光看着他们,甚至还会有人窃窃私语的笑话他们老土;也许他们甚至能够听到别人侮辱的话语,也能看到别人鄙视的眼光,但是他们却还能继续坐在那里,吃完那顿饭,并且是高高兴兴的吃完,然后拿五块钱去买单。

  我并不觉得这样做有多么可耻,也并不觉得这样做会有什么不妥,拿五块钱来消费也是顾客,消费五块钱并不就比消费了50块的客人低一等。但是,无论什么时候,我们却往往看到在某些消费场合,似乎高消费更能得到好的周到的服务,又似乎有钱的更能得到尊重。

  我承认,如果是我,怀里揣着五块钱,是绝对不敢去这样的餐厅消费的,我没有勇气去只叫一碟一块钱的花生米,也许尽管我的食量只是一碗米饭加一 碟花生米,但是我还是会要几个也许我根本不会动一筷子的奢侈的菜。其实内心也知道那是浪费,但是又有哪个人不喜欢用钱的浪费来购买自己面子的实惠呢?

  在这个社会,有钱的比没钱的说话更有底气,富有的比贫穷的更能得到别人的尊重,高高在上大都是有钱人,社会底层的都是贫困潦倒的。毕竟现在是 商品市场的社会,经济类型决定了钱是多么重要,钱变成了自尊,面子的代名词。我们每天都活在赚钱买面子的日子里。在我们奢侈的去花大笔钱买所谓的面子的时 候,我们是否会想起有那么一群人还挣扎在温饱线上呢?

  月薪不如别人高感觉没面子,到现在还没有百来平方的房子感觉没面子,工作了几年还是普通职员也觉得没面子,看到别人的老婆比自己的漂亮也会觉 得颜面尽失,甚至会因为别人的衣服比自己的名牌也会汗颜。我们活在一个面子至上的世界,那点卑微的自尊心总是遮掩着自己脆弱的颜面。回首已逝去的岁月,才 发现其实活的并不快乐,是因为赚的钱太少了,买不起足够的面子?还是赚的钱买来的面子,遮住了自己的人性尊严?

  金钱,生存,面子,自尊;在人生的天平上,到底孰重孰轻?!

  十五)

  年前,我懒洋洋的等待着春节的到来,想着是否该回家陪父母过年。在我犹豫了又犹豫的时候,我发现离过年还不到10天了,我想公司是非要靠到年 前才肯放假的,想着又要买全价的飞机票,便在心里开始狠狠的想:明年一定不再磨蹭,提前俩月买票,估计就能买4折的飞机票回去了。

  就在我敷衍着年前最后几天的班,想着如何找个借口提前请假回家的那几天,我一直没看到隔壁的小夫妻。我以为他们早就回家过年去了。

  可是就在一天半夜,女的敲开了我的门。我睁开惺忪的眼睛,含糊的问着:有事么?

  女的显得很不好意思,说:对不起,打扰你了,我想让您帮个忙,听说民工能网上订票,你能不能帮忙看看?我答应着,让她进了门,我打开电脑,开 始帮忙给她订火车票。可惜的是,网上订票是要民工单位团体订票,她和她老公的单位都没有人给他们订票,他们个人又没资格网上订。她看了看规定,很郁闷的走 了。我迷迷糊糊的竟然忘记说句安慰她的话。

  第二天,我心里一直记得这件事,总觉得该做点什么。我从新闻上看到可电话订票,便匆匆记下了号码,准备给他们个惊喜。

  下班时间还没到,我就急忙赶回去了,我回去的时候,女人在家,我好奇她为何没去上班,但是我只顾着说电话订票的事,就没来得及问。男人不在家,我絮絮叨叨的跟女人说着电话号码,我还掏出自己的手机让她赶紧打电话订票。

  女人苦笑了一下,没接我的手机。眼里含着泪,哽咽着对我说:我就是因为打电话订票,被老板看到开除了。说着便苦起来:我这个月半个月的工资也没给,说我是违反规定了,不罚钱就算是宽大处理了。

  原来,女人也听人说,可以电话订票,从一大早起来就去IC电话亭打电话,可是总打不进去,就在中午吃饭时间,偷偷溜出去打电话订票,可是打通了就说票已售完。一连一

  个星期都是如此,女人实在没办法,只好在早上店里没客人的时候,用店门口那个公用电话继续打电话,8点半就打通了,女人高兴的不得了,以为这次终于可以订到票了,结果却

  说票已售完。票没订到不说,打电话却被老板正巧看到了,说她上班时间做私事,就把她炒了。无论女人怎么苦苦哀求,还是惨遭开除。

  我一边安慰女人:反正要过年了,也要赶着回家过年呢,不干了也好,明年回来找个更好的工作。一边说:要不再用我手机打打试试,说不定能订到票呢。

  女人摇着头:不可能的,我老乡电话打了十几天了,也没订到,就算早上八点一开通服务,你第一个打进去,也订不到票,因为这个列次的火车过年很紧张,不可能正当途径买到。

  我以前只知道过年买火车票难,可是没想到这么难。我就问:去火车站排队买不行么?不是听说那里很多票贩子么?实在买不到就买黄牛票吧。

  女人沉思半响,说:我老公已经在火车站排队排了半个月了,还没买到票呢。他白天请假去排队买不到,晚上就通宵不睡觉在那里排队买,还是买不到。票贩子天天看到我老公,主动找我老公说了好几次,说他们有票,保证真的,可是手续费太贵了,我们不舍得阿!

  我说:多少手续费?总不能比火车票价还贵吧!女人咧嘴笑了,那笑有点勉强:我们回去,坐硬座,票价才200多,可是手续费却要300,你说两张票连票钱加手续费就要1000

  多,我们一个月的钱啊。这不是喝我们血么?1000块钱,在我们老家,是一年的收入啊我们怎么能舍得呢!

  听着她的话,我无语了。我突然感到很自卑,感觉自己竟然是那么浅薄,那么无知。

  为了两张回家的火车票,工作丢了,俩人日日夜夜去排队买票,拿着生活费去打那个比长途还贵的电话,半个月下来,得到的结果竟然是:票已售完。

  那么多火车票去哪里了?为什么天天排队买票都说没票了,票贩子却又喊着:去任何地方都有票,手续费300元呢?

  到底,票都到了何人的手中?又是怎样到了这些人的手中的呢?而那天价手续费的暴利到底在养活着谁?

  我气冲冲的拨通了火车站的服务电话,我刚说完车次,就被告知:春节前本次车票已全部售完,请转乘其他车次。

  我有些失望,试图劝说他们能不能转车回去?或者坐长途汽车?女人惨淡的笑了笑:

  大姐你别操心了,没法转车,能经过我们那个小地方的,就这一个车次,到别的地方倒车,也不好买票,还是回不去,汽车太贵了,都快赶上飞机票价了,不如走回去呢。说着还半安慰我似的开着这个黑色的玩笑。

  看着她紧锁的眉头,想着也许这会她老公还在火车站满怀着那么点希望排着队,等着老天爷大发慈悲,给他们两张回家的票,而我却还在犹豫着过年回不回去陪父母,想着回趟家真累,来回路上够折腾人的。

  我开始觉得自己的卑鄙,甚至渺小。他们也许可以不回去,但是却非要坚持回去,是为了双方年迈苍老的父母?还是为了回去分担家里的忧愁?无论怎样,为了回去,却要付出这般代价,值得么?也许很多人不以为然,可是在亲情的天平上,这个砝码却很重。

  一张过年回家的火车票,就那么一张薄薄的纸片,不知道要费多少心,伤多少神,排多少个夜晚的队,付出多大的代价才能得到!那里面到底藏着多少回家人血汗,又写着多少回家人无奈的眼泪?!

  (十六)

  我的飞机票已经订好了,全价!

  每到过年,航空公司都开始腰杆子硬起来,打死不打折,可是飞机票却依然紧俏,中国人都太恋家,过年花在回家路上的路费,也算是对拉动经济增长做点贡献了。

  铁老大,仍然牛气烘烘的一边说着加开临时列车,又一边抱歉的告诉你:票已售完。

  隔壁夫妻在轮班排队买票的情况下,还是没得到回家的那一张通行证。他们天天在火车站广场等着,盼着哪天能有个好心人来退票,可是这种奢望很渺茫,他们似乎也感觉到无力

  回天,除了等待奇迹,只能盘算着是不是真的要走回家。

  在此期间,我一直不停的在网络上搜索着关于这辆车次的消息。每次看到有人转让,

  我都急不可待的去联系,可是都是票贩子在打广告,手续费比票价都高,而且行情看涨,越来越高。

  我想帮他们出手续费,只要他们出票价,可是他们死活不答应,说是原则问题,就是走回去也不买高价票。他们很正式的跟我说:我们是中国公民,为 什么坐车要买高价票呢?我们又不比别人低一等!难道我们没权利去享受一张正当价钱的票么?都去买高价票,以后就真的只有高价票,没有正当的火车票了,那些 暴利养活的都不是好人,我们越这样养他们,他们越贪婪。

  听了他们的话,我沉默了。

  我突然害怕起这个有点病态的社会来,我怕那致命的细菌会感染我!

  我感到那么无能为力的难过,我很想为他们做点什么,可是我却到头来什么都没能为他们做,甚至只是两张火车票,我都不能帮他们。

  我最终没逃脱,找关系,走后门的那些俗套。我托了朋友,朋友又托了朋友的一个在火车站工作的朋友,费了九牛二虎之力才弄到两张硬座票。吃饭,应酬,说着冠冕堂皇的感谢的话,最后,终于在每张票多付了100元的情况下我才有机会把票握在手里。

  酒足饭饱后,那人打着酒嗝还在继续不停的说着:票是多么难买,别人多出300块手续费他都没给,因为看在老朋友面子上他就当免费帮朋友的忙。

  我只好用感激的眼神望着他,说着千恩万谢的话,用一种谢谢你的大恩大德的态度来应承他的恩惠。他满足的笑着,我也在心里满意的想着:有了票,他们终于可以回家过年了。

  当我把两者车票放在他们的手里的时候,他们呆住了,用一种难以置信的崇敬的眼神望着我,良久都不说话。我笑着,什么话也没说。

  女人突然问道:你是不是买来的高价票?我摇摇头?那票是哪里来的?我笑了。我没说实话,我不知道为什么,在他们面前有些虚伪的实话是不需要说出来的。我告诉他们。

  票是我的一个同事的朋友买的,原本要回家过年,可是公司突然说有事,回不去了,只好转让票。结果正巧让我知道了,我就赶紧买过来给你们送过来 了。我怕他们说钱的事,赶紧补充:票人家没多要一分钱,要不去火车站退票还要扣手续费呢,你们要了,正好解决了人家后顾之忧,人家还省钱了呢。

  他们高兴的说不出话来,一边把票接过去,反复的看着,抚摸着,一边掏钱给我。我说什么也不要。他们便怔住了脸,说我不要钱,他们就不要票。我没办法只好收下了钱。

  他们走的日子比我早,我去车站送了他们。我偷偷买了些广州特产和水果,在他们检票进去的时候,把东西塞到了他们其中的一个大编织袋里。

  看着他们拎着大包小包,里面装满的或许不是值钱的东西,但是脸上洋溢着的幸福的欢笑里,让人感觉那一切都很珍贵。

  他们不时的回头看看我,用拎着包的手用力的跟我挥手,咧嘴笑着,眼神里的光彩很温暖,我内心涌起一种莫名的感动。竟然有想哭的冲动,我忍住了,也笑着朝他们挥手。

  他们的身影渐渐消失在人群中,我没走,站在那里,我似乎听到了火车的鸣笛声,那一定是他们要回家的那列火车,那火车里一定有他们要回家的两个座位。

  归途很累,很遥远,可是回家的路却很温暖。

  (十七)

  我第一次觉得过春节不那么无聊,我第一次觉得来回的路上不那么劳累。整个年,我过的很快乐,当我再次回到广州的时候,他们夫妻还没回来。

  我想,他们一定是买不到火车票,要等过了高峰期才能返回。我安静的等在那里,看着那扇我隔壁的门,希望,在偶尔一天,能再看到那熟悉的身影。

  他们来的真的很迟,元宵节过后一个星期才姗姗来迟。我微笑着迎接他们,端去我买的汤圆,跟他们分享我所有的快乐。

  女人跟男人商量着:想推个小木车卖点水果或者小吃。问我的意见,我说好。与其给别人打工那么累,还不自由,倒真不如自己买点小吃赚钱好些。

  于是夫妻俩,便买了个二手的小木车,批发了点菠萝,西瓜,在家练熟了削菠萝和西瓜的技术,便开始上街卖起了西瓜菠萝,一块钱一块。白天女人一个人去,晚上,夫妻俩一起出门,广州这么乱,丈夫不放心,再晚都陪着老婆卖完了,再回来。第二天一早,又去上班。

  看着他们恩爱的每天出出进进,我由衷的羡慕却又高兴着,我想,就算苦,两个人分担开来,也是甜的!如果将来能有这样一个人对我说;无论痛苦灾难,我都会在你身边。

  我听了一定会哭着嫁给他,虽然我不知道要等这样的一个人等多久,但是起码有了憧憬,人便分外的有了希望起来。

  有时,很晚了,还没把削好的卖完,他们就拿回来,分给我吃。我每吃一块就会笑着对他们说:我又吃掉你们一块钱。

  其实我在心里明白,他们完全可以不用送给我吃,他们生活拮据,完全可以自己吃掉,剩下的又不多,水果吃了又对身体好,以前平时都不舍得买。可是他们仍然愿意分给我,因为,在他们的内心里,他们认为是好的东西,都愿意跟别人分享。

  记得以前,在学习和生活中,我们经常能接触到:无私,奉献,善良这些美好的字眼,可是不知道什么时候我们的周围发生了变化,在我们的字典里再也看不到那些美丽的东

  西,自私自利,冷漠,代替了那些小小的感动,成了我们的主流。

  当我,又一次体会到这种久违了的感觉的时候,我欣喜若狂,像个孩子捡拾到了珍贵的宝贝,我想我一定好好珍藏起来,在哪天忘记的时候拿出来看看,提醒自己。

  那天,我下午回来,看到女人在家,很奇怪她没出去卖东西。就半开玩笑的说:老板,该开工了?怎么还没走?女人看到我,先是灿然的笑了笑,说:今天一天都没出去,做买卖的家什没了!

  没了?卖了?丢了?我连炮竹的问道。她说:昨晚,被城市管理者抓到了,都给砸烂了!

  砸烂了?凭啥?我气汹汹的问。她无奈的摇头,说:说是影响市容市貌,还影响环境卫生!他们没别的事,就是专门抓小商贩的!

  我惊呆了,抓小商贩的?我突然一阵悲哀,就算有一百个理由抓你们,也用不着砸打抢吧?!跟别人说明白不就行了么?用的着这么土匪行为么?

  女人听了我的话,竟然笑了,说:我就心疼那菠萝西瓜,好好的,削好的被扔了,没削好的也被砸烂了扔的满地是,我倒糊涂了,是我们推小车卖西瓜脏呢?还是把西瓜砸烂在地上,弄的一地西瓜渣滓脏呢?!

  听着女人的疑问,我竟然不知道怎么回答!

  是啊,到底是谁更肮脏?是那卖西瓜的小贩?还是那砸西瓜摊的城市管理者?

  原本干干净净的一切,究竟谁是罪魁祸首,究竟是谁弄脏了我们的世界?!

  (十八)

  一辆花了一个月生活费买来的破旧的小木车,一堆花了半个月生活费买来的西瓜菠萝,竟然在光天化日之下,被一群同样跟你都叫做人的家伙砸了个稀巴烂,任由你苦苦哀求,任由你好话说尽,也任由你眼泪滂沱!

  无情的打砸把你要生存的一点点希望给砸碎,冷漠的言语将你最后的自尊践踏的体无完肤,吼来喝去的态度对你的乞求熟视无睹,就这样,在一个人人平等的社会里,你被人踩在了脚底下!

  我能想象的出,女人当时的那种心碎,那种绝望,那种甚至是可怜的尊严被践踏的伤悲。可是,就算我再怎么去理解,我却永远不能替代那种伤心欲绝的体会。也许,这就是

  人类的悲哀,一种你无论如何不能逾越,不能跨过的鸿沟,你只能去了解,却不能去感受。

  我无力的想着所发生的一切,却又无能为力的苦笑。我竟然想为她讨个说话的能力都没有,我感到了自己的有限,感到了自己总在接受了别人的恩赐后却不能报答的那种难受,那种矛盾的苦楚。

  我很想,再出钱帮他们买辆小车,可是女人说无论如何不敢去卖西瓜菠萝了,不是怕城市管理者,是受不了那种活生生的好东西被糟蹋的场面,是见不得那种一片狼藉的情景。

  我尽量出些能赚钱的主意,女人说老乡帮她找了个发传单的兼职,不累,她想先做着。我看着她有些消瘦的脸庞,心很疼!

  想着这些天发生的事,我越想越上火,恨不得把这个世界洗刷一遍,可是只我一个人的眼泪不够,甚至全世界的人的眼泪也不够!

  我竟然气的牙疼起来,半边脸都肿了,疼的我食不下咽,鼻子也因为牙疼上火,流鼻血。我干脆请了假,去医院看牙。

  几天折腾下来,吃药,打针不管用,后来重新检查,又说牙疼发炎引起了这里毛病,那里毛病,然后又开始治疗,又一通打针,吃药,检查,再检查,结果还是没好,牙还继续疼着,我继续郁闷着。

  最后,医生觉得给我拔牙补牙!会更有效,又折腾了几天,总算开始转好。这一个牙疼,花了6000多块。我才知道,原来嘴巴里长的是28颗金豆子,贵着呢!

  可是看到新闻上那些天价医疗费,我又欣慰了,别人看个病都几百万呢,我才6000够便宜的了!

  我突然感慨起来,也许有的人能付得起天价医疗费,可是我付不起!也许我能付得起6000块钱的治疗牙疼的钱,可是有的人就付不起!和还有更多的人比我贫穷,还有更多的

  人看不起病!

  看病贵,看病难,这已不是什么新鲜话题,可是这个根深蒂固的问题却始终没得到解决!我想到我们不远的邻国印度,它虽然还不太富有,虽然也人口众多,但是医疗制度却还完善,全民医疗免费。我不由的羡慕起来,不由的想着哪天我们也能享受到此等待遇!

  如果能有那么一天,我想,报道上就再也不会有某某小女孩得白血病家人倾家荡产筹钱治病,也不会有,某人得病无钱医治自杀身亡,更不会有为救治得病家人全家集体上街乞讨!

  生病是谁的错?身体的错么?!没钱治病是谁的错?家人的错么?!医疗费用居高不下谁的错?医生的错么?!

  也许谁都错了,也许谁都没错!

  (十九)

  那天,我捂着半边脸,忍着隐隐作痛的牙,心里恨恨的想:这6000块钱算是白花了。

  女人自从摊子被砸了后,便兼职发传单,可是活儿并不是天天都有,所以也是有一天没一天的在家歇着。这天她看到我蹲在门口,抱着头不说话,吓坏了。

  她拍了拍我的肩膀,我抬起头,她才看到我的脸肿了。她心疼的问:怎么了?这是?

  我嘴里含糊不清的嘟囔着:倒霉啊,牙疼,快要老命了。

  她急忙问:看医生没?要不要紧?我从疼痛的牙缝里挤出简单的话:看了,没用,白花6000块,现在是牙也疼,心也疼!

  女人让我张开嘴看了看,自语道:肿的很厉害,要从根里治,你等着。说完就一溜烟跑回家。

  不大会,女人端来一碗黑乎乎的汤水要我喝,我看着脏兮兮的,就皱起了眉头。女人硬逼着我喝下去。就这样,连续好几天,女人都让我喝那种苦苦的黑汤水。

  结果竟然消肿了,慢慢的牙也不怎么疼了。我想一定是那黑汤水起了作用。

  原来,女人怕在异地他乡生水土不服或者有个头疼脑热的,就从老家带了些中药过来,正好她老公有牙疼的毛病,就带了些这方面的中药。看到我疼的厉害,她就把那些药都熬了汤给我喝,没想到吃了几付,就好转了。

  我想着,她把药都熬给我喝了,万一哪天她老公牙疼,可怎么办?女人竟然笑笑:没事,他咬咬牙就挺过去了。我知道牙疼的滋味,所以心里还是后悔吃了人家的药。

  我问这药很贵吧?女人笑了:不值钱的,都是些花啊草啊的,家乡的山上多的是,又不是什么高科技生产出来的化学药品,只几块钱一副!

  我开玩笑的说:几块钱?那我那6000块钱不是喂狗了?女人笑了:我们那里穷,人病去不起医院,只能找个老中医开点中药熬熬喝!6000块看个牙疼,就是村长一辈子也没这个福气!那要多少人家一年的收入呢。

  我听着女人的话,开始心凉凉的。6000块,这数字在我心里边的格外沉重。

  女人突然问了一句:在这里的医院生孩子要多少钱?我沉吟了一下说:估计要个几万块吧!女人吓了一跳:几万块?那要是生完了就走,不住院呢?我 想了想:也要一万以上吧!女人愣了:马上要生了进医院,让医生帮忙接生出来,我立马走人,也要上万么?我不用他们啥东西,就借他们点时间,搭把手就行了。

  我没明白女人话的意思,也没往深处想,只是担心着那些月收入不足千元的民工的老婆,如果来到这大都市,不小心怀孕了;来不及回乡下老家生产,,他们要拿什么去进这大城市医院的大门,平安的把孩子生下来呢?!

  生存是人共同的权利,如果连生存都被剥夺,或者说为生存要付出惨痛的血的代价,这样的生存还能配的上人类赋予它的最初的意义么?

  一个生命,一颗牙齿,一句问话,告诉我:生存=艰深!

  (二十)

  看着自己滚圆的大腿,一天肥一圈的腰肢,近似蠕动的庞大躯体,我再也不能忍受我

  日渐臃肿的躯体。我决定要减肥!

  减肥,对于一个有些懒惰的人来说,是很困难的事。克服这个问题,需要一个支撑点,我想到找一个人监督,或者找一个人陪我减肥来调动我的积极性。

  我脑海里蹦出的第一个人,就是隔壁现在不用忙着上班的女人。我毫不犹豫的告诉了她我的想法,她没迟疑就答应了。

  从此,她每天早晚都陪我跑步,陪我做运动。每次我都自嘲的跟她开玩笑:我真残忍,找你这么一个皮包骨头的瘦子跟我一起减肥!她总是安慰我:锻炼身体有益健康是好事,不管胖瘦运动都有好处。

  我心安理得的每天让她陪着我,看着她越来越瘦,我又不免内疚,可是每次她的笑脸却又把我的那点愧疚吹的荡然无存。我只好总是借口减肥,把好吃的,好喝的都给她,她

  不要,我就生气,她没办法只好收下,眼里却总是满是不好意思的感激和受之有愧。于是她用更拼命的陪我运动来偿还我对她的那点小小的好。

  我做梦也没想到,愚人节后的第二天,她来告诉我:她要回老家了!我以为她在补上愚人节没给我开过火玩笑的机会,可是我错了,她是真的要回家!因为她怀孕五六个月了!

  她本来是打算在这边生的,后来听我说到生孩子估计都要上万的,就下决心提前回老家,在老家待产。怕再晚,挺着临盆的大肚子坐火车不方便,所以才决定现在就走。

  我惊呆了,不知道该说什么;我满脑子浮现的都是,她怀孕了,我还让她陪我做剧烈运动的镜头!我感到自己的可恨,一个怀孕五六个月的女人,挺着隆起的肚子天天陪在我

  身边,我竟然视而不见,是我自私到只考虑自己?还是我冷漠到忘记了他人死活?

  想着她每天笑靥如花,从来没表现出半点怨言和不高兴,我第一次感到自己的可恶。

  我开始鄙视自己,憎恨自己那种习惯于接受别人付出的不良嗜好。

  看上去,她更瘦了,于是我更痛恨起自己来。也许她每天没命的跟我锻炼,回家却吃不饱,第二天却要半饿着肚子继续陪我运动,肚子里还有一个消耗着营养的胎儿,这是怎样的一份艰辛的心情?这是怎样的一种残忍的场面?

  当我大吃大喝,山珍海味的把自己喂养成一个十足的胖子,却要求一个每天吃不饱,饿着肚皮的孕妇跟我一起运动减肥?!这就是人性的自私,这就是我的自私到极点的本质的最有力说明。

  我不得不承认,自始至终,我并没高尚到哪里去,我还是那个第一次见他们的时候的那个龌龊的人,尽管极力想用帮助别人来掩盖自己的哪些自私的本性,可是还是失败了,

  本质像个烙印,已经刻进了我的灵魂深处!

  面对这这样一个残酷的事实,我开始无地自容,我突然感觉我根本配不上做他们的朋友,尽管我曾那么的想,但是我不够格,也没资格去填下那份上帝面前的契约,我只是个

  自私的懦夫,我没权利要求灵魂对我有任何丝毫的原谅!

  我被自己重重的摔倒在地上,被人性的刀子割的体无完肤。那感觉很痛;很麻木!

  我的所有的思想,他们并没有任何的觉察,只是用一种悲伤的情绪跟我道别。

  女人是一个人走的,为了省钱,女人死活没让男人送。

  我不知道一个挺着肚子的女人,拎着大包小包好几个,在熙熙攘攘的人群中是怎样挤上了火车,又是怎样的一个人孤孤单单的回到了家。但是,我知道,如果是我,我做不到,不是没勇气,是没那个能力!

  没几天,男人就搬走了,因为他觉得一个人住个几百块的房子不划算,赚的钱都搭在住上了,为了省钱,他选择了免费的,和一群民工一起住在一个桥 下搭的窝棚里。男人临走的时候,我给了他一个信封,信封里有一封我写给他老婆的信和一张银行卡。我叮嘱他,无论如何,回家的时候记得把信带给他老婆。他点 都答应着,很坚定的说:保证完成任务。

  从此我隔壁的储藏室空出来了,房东说我可以放我那张旧沙发了,可是我没放,只是在每次经过的时候,都会停下来,默默的盯着房门看很久,很久。

  从那以后,我再也没见过他们夫妻二人。我不知道男人还在不在他说的桥下的窝棚里住着,也不知道他有没有时间回老家一趟顺便把我的那封信交给他老婆,更不知道在那个我连名字都叫不出来的他们的老家,他的老婆是否安好。

  只是,从他们离开后,我开始喜欢穿平跟鞋,因为那感觉很踏实。

  踏实到,我想着明天开始一个人学会为自己的心灵搬家。

今天发现Blogcn里面的一段代码的用处很大,就是在提交Blog的时候,先复制一份到剪贴板里面,然后再提交。这个时候,如果提交失败的话。所写的 Blog内容也不会丢失。虽然这个方法很容易实现,但是却是个非常有效的防止所写的Blog内容丢失的方法。我把Blogcn里面的代码复制了一部分出 来,等哪天有时间,我把这份Code加到我的Blog里面,让它也具有这个功能。

Code:

therange=document.PostTopic.Message.createTextRange();
therange.execCommand("Copy");
tijiao.innerHTML = aSubmit();

function pasteC(){
alert("本还原操作将还原最近一次日志发表失败内容!");
document.PostTopic.Message.focus();
document.PostTopic.Message.createTextRange().execCommand("Paste");
}
</script>

另外,经过对比了N个Blog程序,发现。没有十全十美的符合自己要求的Blog程序,100%符合自己要求的程序只有通过自己来写,才能真真正正符合自己的需要。所以,我决定暂时还是不换目前所用的这个C-blog程序了。等有时间的时候来完善一下吧。

今天C-Blog的作者网站不能访问了,一开始是出错,不能访问。后来连服务器都找不到了……
  而且今天6:40pm,Sablog的网站又被黑了…不是因为Sablog的程序问题吧?
  感觉有点想把Blog的系统换成Sablog-x的,Sablog写得还是不错的。感觉功能比目前这个C-Blog强多了,但是它没有留言本和相册,所以有点犹豫……而且我的Blog里面已经有那么多文章了,挪过去的话,启不是要重新弄?!等再想想……

图片附件:
20060511_untitled.jpg

1.avi格式

代码片断如下:

2.mpg格式

代码片断如下:

3.smi格式

代码片断如下:

4.rm格式

代码片断如下:

5.wmv格式

代码片断如下:

6.wma格式

放在 <body> 里面。下面是部分解释:

7.Windows Media Player 系列(不同面板样式)

综合型:

简易型:

标签型:

引用内容

媒体播放器的外观界面

在网页中,你可以通过相关属性来控制媒体播放器的哪些部分出现,哪些部分不出现。
媒体播放器包括如下元素:
Video Display Panel:视频显示面板;
Video Border:视频边框;
Closed Captioning Display Panel;字幕显示面板;
Track Bar;搜索栏;
Control Bar with Audio and Position Controls:带有声音和位置控制的控制栏;
Go To Bar:转到栏;
Display Panel:显示面板;
Status Bar:状态栏;
下面的属性用来决定显示哪一个元素:
ShowControls 属性:是否显示控制栏(包括播放控件及可选的声音和位置控件);
ShowAudioControls 属性:是否在控制栏显示声音控件(静音按钮和音量滑块);
ShowPositionControls 属性:是否在控制栏显示位置控件(包括向后跳进、快退、快进、向前跳进、预览播放列表中的每个剪辑);
ShowTracker 属性:是否显示搜索栏;
ShowDisplay 属性:是否显示显示面板(用来提供节目与剪辑的信息);
ShowCaptioning 属性:是否显示字幕显示面板;
ShowGotoBar 属性:是否显示转到栏;
ShowStatusBar 属性:是否显示状态栏;

□播放列表

媒体播放器提供下面的方法来访问播放列表中的剪辑:
Next 方法,跳到节目(播放列表)中的下一个剪辑;
Previous 方法,跳回到节目中的上一个剪辑;
媒体播放器的一个特性是能够预览节目中的每一个剪辑,使用如下属性:
PreviewMode 属性,决定媒体播放器当前是否处于预览模式;
CanPreview 属性,决定媒体播放器能否处于预览模式;
在windows 媒体元文件中,可以为每一个剪辑指定预览时间——PREVIEWDURATION,如果没有指定,那么默认的预览时间是10秒钟。
你也可以用Windows 媒体元文件来添加 watermarks 与 banners,元文件也支持插入广告时的无间隙流切换。

□节目信息

使用 GetMediaInfoString 方法可以返回相关剪辑或节目的如下信息:
文件名:File name
标题:Title
描述:Description
作者:Author
版权:Copyright
级别:Rating
URLs:logo icon、watermark、banner的地址
剪辑信息可以放在媒体文件中,也可以放在Windows 媒体元文件中,或者两者都放。如果在元文件中指定了剪辑信息,那么用 GetMediaInfoString 方法返回的就是元文件中的信息,而不会返回剪辑中包含的信息。
在元文件中,附加信息可以放置在每一个剪辑或节目的 PARAM标签中。你可以为每个剪辑添加任意多个 PARAM 标签,用来存储自定义的信息或链接到相关站点。在 PARAM 标签中的信息可以通过 GetMediaParameter 方法来访问。
下面的属性返回有关大小和时间的信息:
ImageSourceHeight、ImageSourceWidth:返回图像窗口的显示尺寸;
Duration 属性,返回剪辑的长度(秒), 要检测这个属性是否包含有效的数值,请检查IsDurationValid 属性。(对于广播的视频,其长度是不可预知的)。

□字幕

你可以用 .smi 文件来为你的节目添加字幕。媒体播放器支持下面的属性来处理字幕:
SAMIFileName 属性,指定 .smi 文件的名字;
SAMILang 属性,指定字幕的语言(如果没有指定则使用第一种语言);
SAMIStyle 属性,指定字幕的文字大小和样式;
ShowCaptioning 属性,决定是否显示字幕显示面板;

□脚本命令

伴随音频、视频流,你可以在流媒体文件中加入脚本命令。脚本命令是多媒体流中与特定时间同步的多对Unicode串。第一个串标识待发命令的类型,第二个串指定要执行的命令。
当流播放到与脚本相关的时间时,控件会向网页发送一个 ScriptCommand事件,然后由事件处理进程来响应这个事件。脚本命令字符串会作为脚本命令事件的参数传递给事件处理器。
媒体播放器会自动处理下面类型的内嵌脚本命令:
1)URL型命令:当媒体播放器控件收到一个URL型的命令时,指定的URL会被装载到用户的默认浏览器。如果媒体播放器嵌在一个分帧的HTML文件中,URL页可以装载到由脚本命令指定的帧内。如果脚本命令没有指定一个帧,将由 DefaultFrame 属性决定将 URL 页装入哪一帧。
你可以通过设置 InvokeURLs 属性来决定是否自动处理 URL 型的脚本命令。如果这个属性的值为 false ,媒体播放器控件将忽视 URL型命令。但是脚本命令事件仍会触发,这就允许你有选择地处理 URL 型命令。
URL 型命令指定的是 URL 的相对地址。基地址是由 BaseURL属性指定的。媒体播放器控件传送的脚本命令事件的命令参数是链接好的地址。
2)FILENAME型命令:当媒体播放器控件收到一个FILENAME型的命令时,它将 FileName属性设置为脚本命令提供的文件,之后媒体播放器会打开这个文件开始播放。 媒体播放器控件总是自动处理 FILENAME 型命令,不象 URL 型命令,它们不能被禁止。
3)TEXT型命令:当媒体播放器控件收到一个 TEXT型的命令时,它会将命令的内容显示在控件的字幕窗口。内容可以是纯文本的,也可以是 HTML。
4)EVENT型命令:当媒体播放器控件收到一个 EVENT型的命令时,它会在媒体元文件中搜索 EVENT 元素的 NAME 属性。如果 NAME 属性与脚本命令中的第二个字符串匹配,媒体播放器控件就执行包含在 EVENT 元素中的条目。
5)OPENEVENT型命令:当媒体播放器控件收到一个 OPENEVENT型的命令时,它会在媒体元文件中检查 EVENT 元素,并打开匹配的标题,但不播放,直到收到来自 EVENT型命令的同名真实事件。

□捕捉键盘和鼠标事件

EnableContextMenu 与 ClickToPlay 属性为用户提供了在图像窗口进行操作的方法。
如果 EnableContextMenu 属性为 true ,在图像窗口右击鼠标可以打开关联菜单,如果将ClickToPlay 属性设为 true ,用户可以单击图像窗口进行播放与暂停的切换。
要接收鼠标移动和单击事件,请将 SendMouseMoveEvents 和 SendMouseClickEvents 属性设为 true 。鼠标事件有:
MouseDown,当用户按下鼠标时产生;
MouseUp,当用户释放鼠标时产生;
MouseMove,当用户移动鼠标时产生;
Click,当用户在媒体播放器上单击鼠标按钮时产生;
DbClick,当用户在媒体播放器上双击鼠标按钮时产生;
要接收键盘事件,请将 SendKeyboardEvents 属性设为 true 。键盘事件有:
KeyDown,当用户按下一个键时产生;
KeyUp,当用户释放一个键时产生;
KeyPress,当用户按下并释放一个键时产生;

□监测流状态与网络链接

流状态属性包括:
PlayState:播放状态;
OpenState:打开状态;
Bandwidth:带宽;
支持的事件有:
OpenStateChange:打开状态改变(仅当SendOpenStateChangeEvents属性为true时触发)
PlayStateChange:播放状态改变(仅当SendPlayStateChangeEvents属性为true时触发)
EndOfStream:流结束时触发;
NewStream:打开新流时触发;
网络接收属性包括:
ReceptionQuality:接收质量;
ReceivedPackets:已经收到的包;
LostPackets:丢失的包;
监测缓冲的属性有:
BufferingTime:缓冲时间;
BufferingCount:缓冲次数;
BufferingProgress:缓冲进程;
Buffering:缓冲事件;

□错误处理

媒体播放器提供了内建的错误处理功能——在对话框或状态栏显示错误信息。 另外,你可以自己添加错误处理程序。如果 SendErrorEvents 属性设置为 true,将不会显示错误框,而是发送错误事件;如果 SendErrorEvents 属性设置为 false,将显示错误框,而是发送错误事件。
媒体播放器支持下面的错误处理事件:
Error 事件,指有危险性错误发生;
Warning 事件,指发生了非危险性的错误;
当你的应用程序接收到一个错误事件,你可以检测下面的属性来确定具体的错误信息:
HasError:检测目前的媒体播放器是否有错误;
ErrorCode:提供与该类型错误相关的代码值;
ErrorDescription:提供错误的描述信息;
ErrorCorrection:指定媒体播放器对该类型的错误进行校正;

□播放CD

媒体播放器将 CD 看作(在每个音轨的开头具有标记的)单一音频流。 要在网页中使用CD,你需要将 FileName 属性设为 CDAUDI,必须带有冒号,如下所示:

之后你可以用 Play 方法播放 CD 了。
你可以在 windows 媒体元文件中指定播放顺序以及每个音轨的信息。示例如下:

作者Blog:http://blog.csdn.net/hnwanghb/

Canada的生活环境真是好啊,人又少,呵呵。是不是有点崇洋媚外~
  但是由照片看来的确要比国内要好得多。

 

图片附件:
20060511_vancouver 027.jpg
图片附件:
20060511_vancouver 030.jpg
图片附件:
20060511_vancouver 031.jpg
图片附件:
20060511_vancouver 040.jpg
图片附件:
20060511_vancouver 043.jpg

1.匿名隐私

Permeo Security Driver v4.22 2468K 网络隐身代理极佳软件
将本地应用程序的网络连接请求直接转化为socks5,可以调度使用Socks 5和跳板服务器等功能。
网上有几种版,但4.2.6版本太大。参考下载(http://www.top183.cn/soft/3535.htm)

GhostSurf 2.1 3074 KB 通过因特网的匿名的"hub"发送数据,使追踪你成为不可能。
主页:http://www.tenebril.com/products/ghostsurf

Stealth Anonymizer v2.7 允许你掩饰身份访问、拦阻cookies、修改任何有关你的网络浏览器发出的计算机的信息。浏览访问时为每个页自动改变代理使之保证最大的安全。批量检查每个代理服务器其响应时间、验证其匿名性等。
下载页面(http://www.ttdown.com/SoftView/SoftView_15911.html)

JavaAnonProxy v00.02.004 1.1MB JAP用于保护互联网访问隐私的工具,比一般的代理服务器具有更高的安全性。下载版本java有关。
主页:http://anon.inf.tu-dresden.de/index_en.html
主页下载(windows)(http://anon.inf.tu-dresden.de/win/jap_all/japsetup.exe)

Anonymity 4 Proxy V2.80 1080 KB 网上隐形人
收集、测试及登陆公众匿名代理服务器,隐藏真实IP软件。
主页:http://www.inetprivacy.com/

Winnow Anonymous Proxy 4.0 1MB 收集匿名代理服务器,测试挑选速度较快的服务器IP,隐藏真实IP。
主页:http://www.winnowsoft.com/

SurfSecret V5.12 948KB 用来保护我们网络隐私的工具。
主页:http://www.surfsecret.com/index.html
下载页面(http://soft.winzheng.com/SoftView/SoftView_3262.htm)

Get Anonymous Professional Edition 2.0 6.86MB 主要功能包括:隐私功能;保护功能(分析引擎、增加IP地址、隐藏IP地址、防御操作系统、目录控制、JavaScript过滤和在线隐私控制);过滤功能。
主页:http://www.privatenavigator.com/getanonymous/professional.asp

Steganos Internet Anonym Pro 6.0.8 10MB 网络隐藏专家
主页下载 (http://steganos.com/software/sia6int.exe)
中文版下载(http://www.ttdown.com/SoftView/SoftView_19257.html)

2.安全加密

Anonymizer Private Surfing 2.1 通过Anonymizer的专用服务器对通信进行SSL加密。
主页:http://www.anonymizer.com

Freedom WebSecure 也是通过海外服务器对通信内容加密。
主页:[urlhttp://www.freedom.net/products/websecure/roaming/index.html[/url]
http://websecure.freedom.net/download.php

Primedius WebTunnel v4.02.946.00 906 KB
可以让你隐密又安全地在网际网络上畅游,就连你的ISP或网络管理员也无法知道你逛了哪些网站。而SOCKS兼容模块更能让你使用像Yahoo、MSN等的实时讯息软件。他能够连cookie都透过加密信道传输。
主页:http://www.primedius.com/PrimediusUpdates.htm
下载页面(http://www.ttdown.com/SoftView/SoftView_9821.html)

Garden 3.1 269KB 代理模式版本,特殊加密。
主页:http://gardennetworks.com
主页下载(http://24.87.31.223/download/Garden31.zip)

SoftEther v1.0 1.97MB 虚拟网软件,原理上类似VPN 软件,分服务器和客户端,多种加密方式选择。
主页:http://www.softether.com/jp

3.搜寻验证

Proxy Checker v7.0 344KB
校验出的etitle代理(全匿名代理),支持ssl网页,并且用TUNNEL FINDER校验,支持connect命令,匿名性较高。
主页下载(http://www.proxychecker.org/proxychecker.zip)
Name: www.ttdown.com s/n: HLPC6-9180B6B8A88EAA

代理之王 1.2.0 300KB 搜索验证http、socks代理。
主页下载:http://www.proxyking.com/zhCN/downloads.html
http://www.proxyking.com/download/proxyking_zh_CN.zip

Tunnel finder 430KB 是一款特殊的代理服务器搜索软件,可以从代理服务器列表中找出支持CONNECT命令的代理。
参考下载(http://wvw.ttian.net/download/show.php?id=496)

Remote Proxy Checker 可校验http和socks代理。
主页下载(http://www.freeproxy.ru/download/remote_checker.exe)

SOCKS Proxy Checker 校验socks代理。
主页:http://www.freeproxy.ru/download

SocksCat 179KB 素食猫,专门搜寻socks代理。
下载原在http://leonyxl.yeah.net;http://www.starkun.com

Anonymous Proxy Verifier v2.05 207 KB 匿名代理检测
检测某个代理服务器是真正的匿名服务器,还是普通的对公众开放的服务器!
下载页面(http://www.ttdown.com/SoftView/SoftView_8323.html)

AiS AliveProxy v4.5.4.439 2.5MB 一个代理服务器检测软件,它能够从指定的网站或文件(TXT、HTML)中提取代理服务器,然后对其类型(透明或匿名)、连接速度和超时进行检测。
下载页面 (http://www.ttdown.com/SoftView/SoftView_15030.html)

Proxy Grabber v1.1 359.7KB 非常快速的Socks代理扫描器,可以同时检查无限量的地址。
主页:http://zlg.netfirms.com

Proxy Grabber v1.0 英文注册版228K
参考下载(http://www.crsky.net/soft/2467.htm)

proxyjudge 代理分析工具
主页:http://proxyjudge.org/prxjdg.cgi

Proxyrama version 1.6 167 kb 小巧、易用。
is a tool for finding and testing proxy servers. it will test them for anonymity, speed, if it‘s a gateway proxy, ‘connect‘ support (=chainability), socks 4/5 support and geographical location. furthermore, it can be used as a local proxy server that redirects your traffic through a arbitrarily long chain of anonymous proxies and let‘s you skip images, multimedia crap, ads, popups etc.
主页:http://gaamoa.deny.de

Socks tester v1.1 240 kb
Program tests public socks server on access time and bandwidth
主页:http://www.astra-soft.com

Socks scanner v1.2 220 kb
Program searches public socks server
主页:http://www.astra-soft.com/socksscanner

AATOOLS v5.56 build 1070 (trial version) AATools v.5.56 is released
下载页面:http://www.glocksoft.com/download.htm

APL v1.3 (Automated Proxy Leecher):
http://sentinel.deny.de/apl.htm

Proxynator v2.0 从google上吸附代理的工具
下载(http://www.freewebs.com/yahoohell/Proxynator.zip)

SurfAnonymous v1.0.1.0 705 kb 可以搜索、分析、捕捉、管理代理服务器地址的软件。
主页:http://www.sa6ry.com/surfanonymous
下载页面(http://www.ttdown.com/SoftView/SoftView_18723.html)

Proxy Analyzer 代理服务器分析
主页:http://www.glocksoft.com/proxy_analyzer.htm

AccessDiver V4.120 1946 KB 检测网站安全漏洞的工具,网络安全测试软件,能通过不同代理服务器多线程检测登录帐号、密码,用来收集代理也是不错的。
主页:http://www.accessdiver.com
汉化版下载(http://soft.winzheng.com/SoftView/SoftView_10141.htm)

代理服务器查看程序 v1.0 简体中文20 KB 一个可以让你查看网络上哪些计算机打开了你需要检查的端口,以及一台计算机上有多少个已经打开的端口!

4.链接转换

TCP2HTTP 1.0 290K 具有sock2http, httpport,scokcap32的所有功能,并且还具有它们没有的功能,如让用户通过TCPMAP,可以使用FTP,pop3,sock5, telnet等的程序通过firewall;http proxy的权限检查;代理链;http no cache等。所用代理服务器应有穿越功能。
参考下载(http://www.chinesehack.org/down/show.asp?id=1122)

Proxy Tunnel 1.1 1.37MB 让你绕过SOCKS、代理服务器和防火墙,可以使用FTP服务器和文件下载管理器的工具。完全支持SMTP/ IMAP/ POP协议。
主页:http://www.vellumsoft.com/
参考下载(http://newhua.ruyi.com/soft/23389.htm)

SocksChain V3.9.143 可以通过多个SOCKS和HTTP代理组成代理链,从而实现隐藏IP的目的。
主页http://www.ufasoft.com http://www.sockschain.com/socks/

Proxy Chain v1.0 990 KB 一个可以完全定制的代理服务上网的工具,可以帮助你将几个HTTP和Socks4代理串起来使用。
参考下载(http://www.kingti.com/soft/6890.htm)

AvalancheCap v1.1 1014KB 透过socks 代理服务器连接网络,让不支持socks代理服务器的程序也可以通过socks 代理服务器上网。
http://avalanche-software.com/

multiproxy 1.2 155KB 自动测试和自动调度多代理(http)。
主页:http://www.multiproxy.org

代理之狐2.0 232 K 快速验证和调度http代理。
下载页面(http://www.jszzb.com/Soft_Show.asp?SoftID=4)

ProxyCap v2.0 316 KB 能让你所有或指定的应用程序通过HTTP、SOCKS4、SOCKS5代理服务器。 汉化版本已****
主页:http://proxylabs.netwu.com/#

AllegroSurf Network v6.0.0.1 2.83 MB 一个HTTP、DNS、FTP、NNTP、POP3、SMTP、SOCKS4、SOCKS4a、SOCKS5 代理服务器软件,支持过滤、预先抓取功能。
http://www.allegrosurf.com/
下载页面 (http://www.ttdown.com/SoftView/SoftView_8059.html)

5.网页过滤

Proxymitron v4.5 1.3MB 具有调度使用http代理型的过滤器,过滤的效果取决于你的filter是否写得周全完善。
主页下载:http://www.proxomitron.info/files/index.shtml

Ad Muncher 157kb 小巧精致,内置1570个过滤器项目,也内置了一个proxy检验程序,可以把它当作一个代理调度程序来用。
主页:http://www.admuncher.com/download.shtml
主页下载(http://www.admuncher.com/AM-Install.exe)

Naviscope V8.70 613 KB 它通过软件自身来起到一个代理的作用,滤掉广告图,阻绝Cookies、Javascript等。
汉化补丁(http://www.sky66.com/soft/3459.htm)
下载 (http://www.naviscope.com/nscope.exe)