晓's profile飞溅的泉水,多彩的人生PhotosBlogListsMore Tools Help

飞溅的泉水,多彩的人生

Lists
感谢访问!
Please wait...
Sorry, the comment you entered is too long. Please shorten it.
You didn't enter anything. Please try again.
Sorry, we can't add your comment right now. Please try again later.
To add a comment, you need permission from your parent. Ask for permission
Your parent has turned off comments.
Sorry, we can't delete your comment right now. Please try again later.
You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
Complete the security check below to finish leaving your comment.
The characters you type in the security check must match the characters in the picture or audio.
December 25

在xp和2003下察看端口对应的进程 (zhuan)

Email:dreamshadow@mail.sdu.edu.cn
来源:http://www.codehome.6600.org
==========================================*/
我们都知道fport.exe只能在2000下运行,那么有没有办法在xp和2003下察看端口对应的信息呢?答案是肯定的:)
首先让我们来熟悉几条命令和程序的用法吧:
netstat -ano    //这个命令是列出当前网络连接状况,并且列出端口对应程序的pid
tlist.exe       //在2000和xp安装盘的Support\Tools目录下,support.cab 压缩包自带的一个工具,可以查看指定pid对应的进程信息
让我们来看看运行效果吧
以下是netstat-ano在cmd中的运行结果:

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:42             0.0.0.0:0              LISTENING       1524
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       1616
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       660
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       496
  TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING       984
  TCP    0.0.0.0:1031           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:1033           0.0.0.0:0              LISTENING       1524
  TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING       1316
  TCP    0.0.0.0:1801           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:2103           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:2105           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:2107           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       724
  TCP    0.0.0.0:4899           0.0.0.0:0              LISTENING       2860
  TCP    127.0.0.1:43958        0.0.0.0:0              LISTENING       1476
  TCP    202.194.4.218:21       0.0.0.0:0              LISTENING       1476
  TCP    202.194.4.218:80       202.194.4.218:3768     ESTABLISHED     4
  TCP    202.194.4.218:1433     211.233.12.64:8374     TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:8716     TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:9075     TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:9430     TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:9785     TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:10750    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:11091    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:11418    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:11739    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:12093    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:12452    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:15486    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:15851    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:16223    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:16580    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:16928    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:17283    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:17635    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:18005    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:18372    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:18746    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:19077    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:19453    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:19827    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:20199    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:20601    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:20951    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:21295    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:22194    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:22505    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:23517    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:23883    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:24245    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:24584    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:24920    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:25257    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:25676    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:26009    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:26345    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:26719    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:27724    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:28607    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:28950    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:29280    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:29582    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:29931    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:30299    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:30635    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:31003    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:31965    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:32317    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:33716    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:34076    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:34447    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:34735    FIN_WAIT_1      1316
  TCP    202.194.4.218:3389     219.218.104.91:1065    ESTABLISHED     724
  TCP    202.194.4.218:3768     202.194.4.218:80       ESTABLISHED     3172
  TCP    202.194.4.218:3771     66.94.230.51:80        TIME_WAIT       0
  TCP    202.194.4.218:3772     66.94.230.37:80        TIME_WAIT       0
  UDP    0.0.0.0:42             *:*                                    1524
  UDP    0.0.0.0:445            *:*                                    4
  UDP    0.0.0.0:500            *:*                                    496
  UDP    0.0.0.0:1029           *:*                                    860
  UDP    0.0.0.0:1030           *:*                                    1576
  UDP    0.0.0.0:1032           *:*                                    1524
  UDP    0.0.0.0:1434           *:*                                    1316
  UDP    0.0.0.0:1645           *:*                                    876
  UDP    0.0.0.0:1646           *:*                                    876
  UDP    0.0.0.0:1812           *:*                                    876
  UDP    0.0.0.0:1813           *:*                                    876
  UDP    0.0.0.0:1837           *:*                                    860
  UDP    0.0.0.0:1886           *:*                                    860
  UDP    0.0.0.0:1887           *:*                                    860
  UDP    0.0.0.0:1888           *:*                                    860
  UDP    0.0.0.0:1889           *:*                                    860
  UDP    0.0.0.0:1890           *:*                                    860
  UDP    0.0.0.0:1891           *:*                                    860
  UDP    0.0.0.0:1892           *:*                                    860
  UDP    0.0.0.0:3527           *:*                                    1576
  UDP    0.0.0.0:4000           *:*                                    2840
  UDP    0.0.0.0:4500           *:*                                    496
  UDP    0.0.0.0:6000           *:*                                    2840
  UDP    0.0.0.0:6001           *:*                                    2840
  UDP    127.0.0.1:123          *:*                                    876
  UDP    127.0.0.1:1027         *:*                                    876
  UDP    127.0.0.1:1028         *:*                                    876
  UDP    127.0.0.1:1180         *:*                                    2496
  UDP    127.0.0.1:2920         *:*                                    2476
  UDP    127.0.0.1:3546         *:*                                    1904
  UDP    127.0.0.1:3798         *:*                                    3400
  UDP    127.0.0.1:3877         *:*                                    2312
  UDP    202.194.4.218:123      *:*                                    876

最后一列就是PID了
//---------------------------------------------------------------------------
以下是tlist.exe的运行结果:tlist.exe的用法是:tlist.exe pid
譬如:tlist.exe 1524 其结果如下:
1524 wins.exe        
   CWD:     C:\WINDOWS\system32\
   CmdLine: C:\WINDOWS\System32\wins.exe
   VirtualSize:    77372 KB   PeakVirtualSize:    78212 KB
   WorkingSetSize:  2604 KB   PeakWorkingSetSize:  6768 KB
   NumberOfThreads: 18
   1528 Win32StartAddr:0x0101249a LastErr:0x000003e5 State:Waiting   
   1544 Win32StartAddr:0x77d7570d LastErr:0x000003e5 State:Waiting   
   1828 Win32StartAddr:0x69a6ef20 LastErr:0x00000000 State:Waiting   
   1832 Win32StartAddr:0x69a6ef20 LastErr:0x00000000 State:Waiting   
   1836 Win32StartAddr:0x69a6ef20 LastErr:0x00000000 State:Waiting   
   1840 Win32StartAddr:0x69a6ef20 LastErr:0x00000000 State:Waiting   
   1972 Win32StartAddr:0x01003e1a LastErr:0x00000000 State:Waiting   
   1976 Win32StartAddr:0x01003fc7 LastErr:0x00000000 State:Waiting   
   1980 Win32StartAddr:0x01007b95 LastErr:0x00000000 State:Waiting   
   1984 Win32StartAddr:0x0101d872 LastErr:0x00000000 State:Waiting   
   1988 Win32StartAddr:0x01020137 LastErr:0x00000000 State:Waiting   
   1996 Win32StartAddr:0x01014d48 LastErr:0x00000000 State:Waiting   
   2000 Win32StartAddr:0x01013a15 LastErr:0x00000000 State:Waiting   
   2004 Win32StartAddr:0x01006a10 LastErr:0x00000000 State:Waiting   
   2008 Win32StartAddr:0x77c30840 LastErr:0x00000102 State:Waiting   
   2012 Win32StartAddr:0x77c30840 LastErr:0x00000000 State:Waiting   
   2508 Win32StartAddr:0x06001cb7 LastErr:0x00000000 State:Waiting   
   2272 Win32StartAddr:0x00000000 LastErr:0x000003f0 State:Waiting   
    5.2.3790.99 shp  0x01000000  wins.exe
     5.2.3790.0 shp  0x77f30000  ntdll.dll
     5.2.3790.0 shp  0x77e10000  kernel32.dll
     7.0.3790.0 shp  0x77b70000  msvcrt.dll
     5.2.3790.0 shp  0x77d60000  ADVAPI32.dll
   5.2.3790.137 shp  0x77c20000  RPCRT4.dll
     5.2.3790.0 shp  0x71ba0000  NETAPI32.dll
    5.2.3790.73 shp  0x77cd0000  USER32.dll
     5.2.3790.0 shp  0x77bd0000  GDI32.dll
     5.2.3790.0 shp  0x71b60000  WS2_32.dll
     5.2.3790.0 shp  0x71b50000  WS2HELP.dll
   5.2.3790.138 shp  0x77150000  ole32.dll
     5.2.3790.0 shp  0x5bb80000  VSSAPI.DLL
     3.5.2283.0 shp  0x769c0000  ATL.DLL
     5.2.3790.0 shp  0x770d0000  OLEAUT32.dll
     5.2.3790.0 shp  0x76180000  IMM32.DLL
     5.2.3790.0 shp  0x63090000  LPK.DLL
   1.421.3790.0 shp  0x72ee0000  USP10.dll
     5.2.3790.0 shp  0x71a80000  mswsock.dll
     5.2.3790.0 shp  0x71a40000  wshtcpip.dll
     5.2.3790.0 shp  0x76e30000  DNSAPI.dll
     5.2.3790.0 shp  0x76ed0000  winrnr.dll
     5.2.3790.0 shp  0x76e70000  WLDAP32.dll
     5.2.3790.0 shp  0x76ee0000  rasadhlp.dll
     5.2.3790.0 shp  0x699b0000  esent.dll
     5.2.3790.0 shp  0x5d000000  SAMLIB.dll
2001.12.4720.130 s  0x76ef0000  CLBCatQ.DLL
2001.12.4720.0 shp  0x76f70000  COMRes.dll
     5.2.3790.0 shp  0x77b60000  VERSION.dll
2001.12.4720.130 s  0x76a10000  es.dll
     5.2.3790.0 shp  0x76eb0000  secur32.dll
      16.0.0.19 shp  0x06000000  ApiHook.dll
       16.2.0.6 shp  0x05000000  MemMon.dll
很显然CmdLine:后面的就是程序的路径


到这里,聪明的你一定想到方法了,其实只要找到端口对应的进程的PID,再根据PID找到程序具体的路径就行了
我们所要实现的工作就是自动化而已
下面讲下大体思路:
首先我们执行以下两条命令:
netstat -ano|find "LISTENING">tcplisten.txt //获得TCP监听端口列表
netstat -ano|find "UDP">udplisten.txt       //获得UDP监听端口列表
//---------------------------------------------------------
以下是netstat -ano|find "LISTENING">tcplisten.txt执行结果,打开tcplisten.txt 可以看到:
  TCP    0.0.0.0:42             0.0.0.0:0              LISTENING       1524
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       1616
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       660
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       496
  TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING       984
  TCP    0.0.0.0:1031           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:1033           0.0.0.0:0              LISTENING       1524
  TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING       1316
  TCP    0.0.0.0:1801           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:2103           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:2105           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:2107           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       724
  TCP    0.0.0.0:4899           0.0.0.0:0              LISTENING       2860
  TCP    127.0.0.1:43958        0.0.0.0:0              LISTENING       1476
  TCP    202.194.4.218:21       0.0.0.0:0              LISTENING       1476
//--------------------------------------------------------
以下是netstat -ano|find "UDP">udplisten.txt 执行结果,打开udplisten.txt 可以看到:
  UDP    0.0.0.0:42             *:*                                    1524
  UDP    0.0.0.0:445            *:*                                    4
  UDP    0.0.0.0:500            *:*                                    496
  UDP    0.0.0.0:1029           *:*                                    860
  UDP    0.0.0.0:1030           *:*                                    1576
  UDP    0.0.0.0:1032           *:*                                    1524
  UDP    0.0.0.0:1434           *:*                                    1316
  UDP    0.0.0.0:1645           *:*                                    876
  UDP    0.0.0.0:1646           *:*                                    876
  UDP    0.0.0.0:1812           *:*                                    876
  UDP    0.0.0.0:1813           *:*                                    876
  UDP    0.0.0.0:1837           *:*                                    860
  UDP    0.0.0.0:1886           *:*                                    860
  UDP    0.0.0.0:1887           *:*                                    860
  UDP    0.0.0.0:1888           *:*                                    860
  UDP    0.0.0.0:1889           *:*                                    860
  UDP    0.0.0.0:1890           *:*                                    860
  UDP    0.0.0.0:1891           *:*                                    860
  UDP    0.0.0.0:1892           *:*                                    860
  UDP    0.0.0.0:3527           *:*                                    1576
  UDP    0.0.0.0:4000           *:*                                    2840
  UDP    0.0.0.0:4500           *:*                                    496
  UDP    0.0.0.0:6000           *:*                                    2840
  UDP    0.0.0.0:6001           *:*                                    2840
  UDP    127.0.0.1:123          *:*                                    876
  UDP    127.0.0.1:1027         *:*                                    876
  UDP    127.0.0.1:1028         *:*                                    876
  UDP    127.0.0.1:1180         *:*                                    2496
  UDP    127.0.0.1:2920         *:*                                    2476
  UDP    127.0.0.1:3546         *:*                                    1904
  UDP    127.0.0.1:3798         *:*                                    3400
  UDP    127.0.0.1:3877         *:*                                    2312
  UDP    202.194.4.218:123      *:*                                    876
//---------------------------------------------------------
我们只要对这两个文件中的信息处理下就能提取到端口和PID的对应表了
定义如下结构体吧:
//-------------------------------
typedef struct _PORTTOPROCESS{
        CString Port;
CString Protocol;
CString Pid;
CString ProcName;
CString ProcPath;
}PORTTOPROCESS;
//-------------------------------
PORTTOPROCESS PortToProcess[100] //声明一百个结构体应该够用了
第一步通过处理上述两个文件来实例化PortToProcess数组中的Port,Protocol,Pid项,并返回总的PortNum;
第二步通过进程快照获得pid对应的程序名实例化结构体中的ProcName项;
第三步先按
tlist.exe pid1|find "CmdLine:">>procinfo.txt
tlist.exe pid2|find "CmdLine:">>procinfo.txt
tlist.exe pid3|find "CmdLine:">>procinfo.txt
             .
             .
             .
             .
的格式写成一个bat文件,通过system()函数运行它,得到每个端口对应PID对应的进程信息
接着写个函数从procinfo.txt文件里把信息读出来实例化结构体中的ProcPath项;最后根据PortNum输出结果

原理就这么简单了,具体的看代码吧,附查看程序!在2003和xp下测试成功,vc6.0+2003的编译环境,代码中PcInfor类是个比较
全的类,可以获得系统的详细信息,只要把PcInfor.h和PcInfor.cpp拷贝到你的工程项目中就能用了

程序运行的时候会有CMD窗口弹出,这是因为调用了system()函数所致,在CMD窗口运行完之后程序会等待一段时间(大概20秒),是为了等待bat文件执行完,如果你的机子运行比较慢,可以把原代码的此处修改一下:
void PcInfor::GetPortToProcessInfo()
{
int i;
BornTcpListen();
BornUdpListen();
GetListenPort();
FindProcName();
FindProcPath();
for(i=0;i<20;i++) Sleep(1000);
GetProcPath();
DeleteTempFile();
WriteProcinfo();
}
循环次数加多点,在重新编译以下就行了!

如果发现bug或者你修改了更好的请给我一份,本人不胜感激:)

//shadow 2004/10/26
//email:dreamshadow@mail.sdu.edu.cn
//http:www.codehome.6600.org
December 21

十月围城 历史 背景


  其实我们总是需要神话的,只不过我们常常忽略这个事实,特别是在我们自以为推倒一个旧神话的时候,其实无形中就已经塑造了新神话。所以,在我看来,《十月围城》也是一部神话片——当国家消亡的神话被民族国家的神话所取代时,《十月围城》的骨子里无非是又一部《建国大业》,只不过后者囿于具体指向而主要局限在海峡一隅传播,《十月围城》则把落脚点放在了两岸都能接受的“中华民族最大公约数”那里,明后年就是民国建国百周年纪念,想必《十月围城》剑指金马奖,已是司马昭之心。   救亡压倒启蒙,饱受蹂躏的中国人总免不了有救世主情结——普罗大众渴望有救星带领他们,精英们便时不时的以救世主自居(按照雷蒙?阿隆的说法,这种心理不过是“知识分子的鸦片”罢了)。于是乎,《十月围城》在一个波诡云谲的时代背景里,打造了一出关于救世主的神话。不过陈德森很聪明,他并没有简单的树立一个高、大、全的神主牌位,而是着力打造了从财主到乞丐,从大亨到流氓的牺牲群像,用断片切面的手法较为全面的展现了那个时代的香港风貌。所以,整部《十月围城》看下来,便是一出仁人志士舍生取义“让领导先走”的神话催泪弹。
  
  数千年未有之大变局,覆巢之下,谁能独善其身?正如李重光与陈少白争论时所说:“整个中国都卷进来了,我能不被卷进来么?”有时候,牺牲是迫不得已的,烈士们也没有教科书上面说得那么光鲜。赌徒舍身护中山,只是因为突然有了作父亲的责任;马戏演员舍身护中山,那是杀父之仇不共戴天;乞丐公子舍身护中山,不过是将早已苟延多时的生命来个灿烂的了断;人力车夫舍身护中山——这可能是最令人唏嘘的一段——他只是觉得老板是个好人,而且给他说了媳妇,不能让心肠好的老板遭难——可怜到最后一刻,车夫根本不知道他保护的人是谁。中国人本性善良,甚至有点懦弱,但到了生死存亡的关头,不是不想偷生,而是想偷生亦不可能的问题了。莱克星顿的纪念碑上写着:“在敌人没有开枪射击以前,不要先开枪;但是,如果敌人硬要把战争强加在我们头上,那么,就让战争从这儿开始吧!”这句话放在《十月围城》里,倒是对一干保镖们颇为准确的心态描摹。
     
  《十月围城》里人物虽多,但互有勾连,彰显出华语电影中难得的编剧功力。而且人物设置也很对版,春哥(不含贬义)和巴特尔明显演技欠缺,所以给他们安排了度身定制的角色,所以扎在一干大明星里,倒也不丢份。而且片中武戏虽多,但陈德森还是清醒的将串联全片的重任压在了王学圻和梁家辉两个老戏骨身上,所以剧情走向、节奏俱佳,该煽情的煽情,该插科打诨的插科打诨,绝无突兀之感。而且,在善恶分明的叙事模式下,《十月围城》还是尽可能的将人物立体化了——英雄的卑微出身早已是欲扬先抑的坊间惯用手法,片中对反派人物的心路交待,才更加耐人寻味:胡军扮演的清廷刺客阎孝国,曾在陈少白处受教西学,虽做了朝廷鹰犬,但绝不是外界想象那样食古不化的封建冥顽。阎孝国在与陈少白对峙时直斥对方是书生意气,一心想依靠洋人帮助来振兴中华,实在是书生误国;而且,阎孝国在临死前还不忘对老师说一句“学生已报国恩”,委实令人扼腕——护中山者是为了民族国家,刺中山者居然也是为了民族国家——当然,是他们各自心目中的民族国家。   

  影片的细节设置也蕴涵匠心,巴特尔扮演的少林和尚叫“王复明”,这“反清”之义看过《鹿鼎记》的地球人都知道;同理,大反派名为“阎孝国”,个中深意,正如前文所述。此外,早前就听闻《十月围城》里打满五十分钟,两个多小时的影片看完,始觉不虚。而且陈德森难得的把文戏、武戏紧密结合在了一起,最后场面火爆,情感郁积也充沛,看下来一气呵成,绝不拖沓。
  中国人不信神,但中国人对政治、历史又有着天生的浪漫主义情结。所以,把政治历史(以及其中的暴力)浪漫化的《十月围城》颇对中国观众的胃口。不过有时候狗血也过了量,譬如乞丐公子刘,一出镜就笑了场——胡军的秃眉毛和谢霆锋的吊眼角加起来还没有黎叔的一头离子烫扎眼,最后黎叔洗了三温暖、拉了直发,陈德森又弄了个电风扇使劲吹,再加上随风而来随风而去的嘉欣姐——看到这里,笔者已经无话可说。   

  当然,总的来讲,人物前史的设计,《十月围城》堪称教科书。如此千头万绪,最终汇于一脉,乱中取栗,这才有技术含量。跟嘉欣姐一样,周韵和范冰冰都是花瓶,但难得的有戏——周韵腿有残疾,且刚与谢霆锋扮演的车夫定亲;范冰冰身为王学圻扮演的李玉堂侍妾,却与甄子丹扮演的赌徒英雄有一段孽缘。可见《十月围城》的编剧,在每一根线索上都是下足了功夫的。即使是几分钟戏份的吕中,一句“我代表我儿谢谢你”也让孙中山母亲的悲怆尽显大银幕。而剧组给张涵宇的化妆功夫也了得,猛一看还真像马少骅,而最后那双中山泪眼,则给这场内牛满面的大戏划上了一个圆满的句点。   

  不过我个人印象最深的,还是片中山先生的那句台词:“革命就是为了四万万革命同胞人人有恒业”。什么是“恒业”?拿今天的标准衡量,主要就是指房地产。
  此外,印象真切的还有客串的张学友,歌神一出场就被人爆了头,当时,他正在给人讲解什么是“民主”。
  我已经看见,一出杯具正上演。
  剧终了吗?      (南方网专稿,转载请注明)

December 07

纪念唐福珍 -时寒冰

我们看见(诗歌)
          ——纪念唐福珍
          时寒冰
          
          我们看见
          你
          站在高处
          点燃火焰
          点燃愤怒和呐喊
          而后
          在痛苦的痉挛中
          挣扎着倒地
          
          
          
          我们看见
          你
          站在高处
          点燃一个民族
          仅存的血性和骨气
          而后
          把自己交给
          洁净的天空
          
          
          
          我们看见
          你
          被以暴力抗法的名义
          审判
          而你
          仅仅是为了
          一片生存的空间
          一座原本属于自己的房子
          
          我们看见
          你的亲人
          在巨大的悲痛中昏厥
          我们看见
          一群又一群熟悉或陌生的人
          以你的名字
          祭奠
          
          
          
          当年老的和年幼的
          一起
          被驱逐出熟悉的家园
          当一群又一群人
          在寒风中
          无助地牵着手哭泣
          
          
          
          当沾满鲜血者坐在法官席上
          敲响法锤
          当被残害者戴着沉重的脚镣
          听候宣判
          
          
          
          我们听见
          一种声音
          由远而近 响彻云霄
          宛如
          基督开启末日审判的
          时刻
          
          
          
          正义不死
          苍天当哭

孤独是一座花园,但其中只有一棵树


孤独是一座花园,但其中只有一棵树。
绝望长着手指,但它只能抓住死去的蝴蝶。
太阳即使在忧愁的时候,也要披上光明的衣裳。
死亡来自背后,即使它看上去来自前方:
前方只属于生命。
疯狂是个儿童,在理智的花园里,做着最美好的游戏。
时光:
在欢乐中浮游,在忧愁中沉积。
遗忘有一把竖琴,记忆用它弹奏无声的忧伤。
世界让我遍体鳞伤,但伤口长出的却是翅膀。
向我袭来的黑暗,让我更加灿亮。
孤独,也是我向光明攀登的一道阶梯。
诗歌,这座浮桥架设于你不解的自我和你不懂的世界之间。
不要只害怕魔鬼,还有天使呢。
“天使”,在万物中最有可能突然变身为魔鬼。
两手空空,然而,手中还是不断地掉落你的一部分:时间。
童年是让你能够忍受暮年的那股力量。
夜晚在我的枕头上沉睡,我却独自无眠。
只有通过一种方式才能征服死亡:
抢在死亡之前改变世界。
罪过:对自由的另一种赞美。
因循有着另外一个名字:牢笼。
诗歌不会行走,除非是在深渊的边缘。
无论我们身在何处,都有泥土伴随,那是永恒的相会;无论我们身在何处,都有时光伴随,那是永恒的离别。
最遥远的光亮,比离我们最近的黑暗还要靠近我们:
距离,通常只是神话。
不,是生命在发号施令,死神只是忠实的记录员。
快乐长着翅膀,但它没有躯体;忧愁有着躯体,但它没有翅膀。
跪曲着,黑暗降生了;挺立着,光明降生了。
花儿是眼里的一个季节,芬芳是心中的一个季节。
是的,光明也会下跪,那是对着另一片光明。
太阳即使在忧愁的时候,也要披上光明的衣裳。
黑暗是包围四周的暴君,光明是前来解救的骑士。
死亡来自背后,即使它看上去来自前方:
前方只属于生命。
遗忘有一把竖琴,记忆用它弹奏无声的忧伤。
你的童年是小村庄,可是,你走不出它的边际,无论你远行到何方。
你不会成为油灯,除非你把夜晚扛在肩上。
或许光会把你误导;不过,假如这真的发生了,莫以为这是太阳的过错。
风有着尘土的谦卑,却也有天空的荣耀。
女人--她的芳香令空气的身材变得颀长。
即便是太阳自己,也只能照亮接受光明的事物。
女人向我走来--以深渊的形式,她成就了我的一个巅峰。
玫瑰的沉默是呼唤,听见它的不是耳朵,是眼睛。
你是对的,蝙蝠啊!
--黑暗是一种安逸,光明是一种折磨。
最残酷最痛苦的监狱,是没有四壁的。
风,没有衣裳;时间,没有居所;它们是拥有全世界的两个穷人。
或许,语言的汪洋,隐身于静默的浪花里。
石头与翅膀,在诗歌的子宫里是孪生兄弟。
芳香,是一首没有歌词的歌曲。
你的意义,在于你成为形式。
如果一定要有忧伤,那就告诉你的忧伤:
让它永远捧着一束玫瑰。
玫瑰旅行,去往的最美所在,是眼睛的疆域。
梦想也会长大,不过是朝着童年的方向。
玫瑰,在忧伤时是一个角落,在欢乐时是一盏青灯。
每一部伟大的作品,总能同时催生秩序与混乱。
快乐降临于我成群结队;不过,只在我的幻想中行进。
你真正的凯旋,在于你不断地毁坏你的凯旋门。
阿多尼斯,原名阿里·艾哈迈德·赛义德·阿斯巴叙,利亚著名诗人。

November 26

《问佛》


    
    我问佛:为何不给所有女子羞花闭月的容颜?
    
    佛曰:那只是昙花的一现,用来蒙蔽世俗的眼
    
    没有什么美可以抵过一颗纯净仁爱的心
    
    我把它赐给每一个女子,
    
    可有人让它蒙上了灰
    
    
    
    我问佛:世间为何有那么多遗憾?
    
    佛曰:这是一个婆娑世界,婆娑既遗憾,
    
    没有遗憾,给你再多幸福也不会体会快乐
    
    我问佛:如何让人们的心不再感到孤单?
    
    佛曰:每一颗心生来就是孤单而残缺的,
    
    多数带着这种残缺度过一生
    
    只因与能使它圆满的另一半相遇时
    
    不是疏忽错过,就是已失去了拥有它的资格
    
    
    
    我问佛:如果遇到了可以爱的人,却又怕不能把握该怎么办?
    
    佛曰:留人间多少爱,迎浮世千重变
    
    和有情人,做快乐事
    
    别问是劫是缘

仓央嘉措最后的结局

     那一天,我转动所有的经筒,
     不为超度不为来生,只为你的温暖。
     那一世,我转山转水,只为途中与你相见。
     转山转水转佛塔呀,只为途中与你相见。
     天上的仙鹤借我一双洁白的翅膀,
     我不会远走高飞,飞到理塘就转回。
     山顶升起皎洁的月亮,你的脸庞浮在我心上。
     你那美丽的脸庞,悄悄浮在我的心上。

六世达赖

    你见,或者不见我
    我就在那里
    不悲不喜
    你念,或者不念我
    情就在那里
    不来不去
    你爱,或者不爱我
    爱就在那里
    不增不减
    你跟,或者不跟我
    我的手就在你手里
    不舍不弃
    来我的怀里
    或者
    让我住进你的心里
    默然 相爱
    寂静 欢喜
 
Photo 1 of 5
No list items have been added yet.