上海往事:第九章 《我和Alan》

上海往事:第九章 我和Alan的邂逅

那年春天,人民广场的鸽子比往年多。

我站在喷水池旁边,等一个人。不是等人,是等光。那天的云走得很快,阳光一阵一阵的,落下来,又收回去。我举着那台佳能,等着下一束光落在那群鸽子身上。

快门按下去的时候,有人拍了一下我的肩膀。

我回头,一个老外站在我身后,背着双肩包,手里也拿着一台相机。金发,蓝眼睛,笑起来露出一口白牙,像牙膏广告里那种。他指了指我镜头对着的方向,又指了指自己的相机,然后竖起大拇指。

我用英文说,谢谢。

他愣了一下,用中文说,你会说中文?

我说,我是中国人。

他笑了,有点不好意思,说,对不起,我以为你也是游客。你拍照的样子,很认真。

就这样认识了Alan。


后来我们坐在广场的长椅上聊天。他说他叫Alan,新西兰人,来上海半年,在一家软件公司做程序员。他中文说得不错,虽然带着奇怪的口音,但能表达清楚。他说他大学学过两年中文,来上海是为了练习。

我说我也是程序员,在外企。

他眼睛亮了一下,问,你喜欢什么语言?

我说,C,刚学没多久。

他说,C好,C是根本。但Windows上用C++多。

我说,我在学Windows编程,看那本厚厚的大部头。

他做了个痛苦的表情,说,那本书我也看过。用来垫枕头,睡了一个月。

那天下午我们聊了很久。聊编程,聊操作系统,聊Windows的漏洞和补丁。他说他感兴趣的是底层,是那些别人看不见的东西。我说部队出来的人,对看不见的东西比较敏感。

他问,部队?

我说,野战部队,很多年前了。

他点点头,没再问。然后忽然说,我看得出来。你站的样子,你看东西的样子,不像程序员,像军人。

我说,也许都是。

他笑了,说,军人好。军人不会因为代码编译不过就放弃。

临走的时候,他问我,你有没有兴趣一起研究点东西?

我问,什么?

他说,Windows的RPC。135端口。听说有个漏洞,可以研究研究。

我说,研究?

他说,对,研究。不是破坏,是知道它怎么工作。

那时候我对这些还不太懂。但他说话时的表情,让我想起部队里的侦察兵——那种对未知领域的好奇,那种想钻进去看看的冲动。

我说,好啊。但如果被抓了,我不认识你。

他说,成交。

就这样认识了Alan。


后来我们每周都见面。

有时候在咖啡馆,有时候在他住的地方,有时候在我钦州南路那间朝南的房间。他住在静安寺附近,一间老公房,比我大一点,桌上永远堆着电脑零件和中文技术书——他看中文的技术书,虽然慢,但能看懂。他说这样能学到专业术语的中文说法。

他教我很多。RPC是什么,DCOM是什么,135端口和1433端口有什么不同。他说Windows NT 4.0的架构有问题,微软自己都补不了。他说2000年之后,微软的漏洞一个接一个,像筛子一样。

有一次,他拿出一台旧笔记本电脑,装的是Windows 2000 Server。他说,你看好。然后在命令行里敲了一串代码,回车。屏幕上开始滚动一些我看不懂的信息,最后停在一个提示符前。

他说,进去了。

我问,进哪了?

他说,进这台机器自己。这叫后门。

我说,那我们成黑客了?

他严肃地摇头,说,不是黑客,是研究者。黑客搞破坏,我们只是看看,然后说,有意思。

我说,黑客搞破坏之前也说有意思。

他想了想,说,有道理。

那天晚上他给我讲了一个概念:wnmax。他说不是官方的名字,是他们自己起的。W-N-Max,Windows Network Maximum,意思是在Windows网络上,做到极致。

我说,听起来像黑客组织。

他笑了,说,就是。一个很小的组织。

我说,两个人能叫组织?

他说,在新西兰,两个人就算聚会了。

后来我们真的组了一个小团体,就我们两个人。他起名叫wnmax联盟。我说联盟就两个人?他说,两个人知道的秘密,叫阴谋。比组织还厉害。

我们开始系统性地研究Windows的漏洞。他负责逆向工程,我负责写测试代码。135端口的RPC服务,1433端口的SQL Server,那些别人懒得看的底层协议,我们一行一行地啃。

那时候Windows XP刚出来不久,漂亮是漂亮,但漏洞一点没少。Alan说,微软做软件,像宜家家具。看着好看,但一碰就散。

我说,那碰不得的是什么?

他说,开机。


那年夏天,我们去了一个音乐节。

百威办的,在虹口足球场外面搭了台。阿杜、动力火车、迪克牛仔,还有几个叫不出名字的乐队。Alan说,来上海一年了,还没去过音乐节,太丢人了。

我说,我也没去过。

他说,好,那我们一起丢人。

那天傍晚,天还没黑,人已经很多了。我们站在人群后面,听得见声音,看不太清楚舞台。Alan买了一打啤酒,我们坐在草坪上,一边喝一边听。

阿杜唱《他一定很爱你》的时候,旁边有个女孩哭了。她男朋友搂着她,拍她的背。Alan看着他们,没说话,把啤酒举起来,喝了一口。

我说,你知道他唱什么吗?

他说,不懂。但听得出难过。那种被甩了然后写歌的感觉。

我说,你还真说对了。

他想了想,说,新西兰男人不写这种歌。我们去酒吧,假装没事。

我说,装得像吗?

他说,我们是装没事的世界冠军。

音乐节结束的时候,已经快十点。人群散开,往地铁站走。我们走在人群里,脚步不快,谁也不说话。路灯亮着,把影子拉得很长。

Alan忽然说,你知道我喜欢上海什么吗?晚上十点,这个城市还活着。在新西兰,十点街上就没人了,只能听见自己的脚步声。

我说,听着有点惨。

他说,是,所以我来这儿了。

走到地铁站,他往静安寺方向,我往上海南站。进站前他回头说,下周老时间?我在1433端口发现了点有意思的东西。

我说,我带啤酒。


那年七月,微软出了一个严重的漏洞公告。

MS03-026,RPC接口的缓冲区溢出,可以远程执行代码。Alan看到新闻的那天晚上就打电话给我,说,你看到了吗?

我说,看到了。

他说,就是这个。我们看的那个。我们是对的。

电话里他的声音很兴奋。我也兴奋。但那种兴奋,不是发现了什么了不起的东西,而是——我们走的路,是对的。

后来那个漏洞被大规模利用。冲击波病毒,震荡波病毒,一个接一个。新闻里说,这个漏洞比Code Red和Slammer还严重。

Alan打电话给我,说,别人先用了。

我说,我们本来也不用。

他说,我知道。但还是觉得,像发现了一片漂亮的海滩,拿着毛巾回去的时候,已经全是游客了。

我说,至少我们知道那片海滩漂亮。

他沉默了一会儿,说,对,对,是这样。

那年八月,上海的景观灯因为高温暂停了。晚上走在街上,到处都暗暗的。有次我们从人民广场经过,喷水池没开灯,鸽子都睡了。广场上只有几盏路灯,照着空荡荡的石板路。

Alan说,这样挺好。

我说,什么挺好?

他说,暗一点,能看到星星。

我抬头看了看,上海的天空,哪有什么星星。

但他说有,我就假装有。


那年秋天,我们开始去酒吧。

不是那种热闹的酒吧,是衡山路上一家小小的爵士吧。门脸不起眼,里面暗暗的,台上有人弹钢琴,有人吹萨克斯。Alan喜欢爵士,说在新西兰的时候听过一场现场,后来就爱上了。

我比他更早爱上。那台自制的音箱,那些黑胶唱片,那些深夜一个人听的Bill Evans——都是爵士。

我们去的那家酒吧,老板是个老上海,头发花白,戴金丝眼镜。他认得Alan,每次去都点头,然后用英文说,欢迎回来,年轻人。Alan说,他叫我年轻人,我都三十二了。

我说,在中国,五十以下都叫年轻人。

他说,我喜欢这个国家。

有一次,台上换了一个女歌手,唱的是《Fly Me to the Moon》。她的声音有点沙,低低的,像在叹气。Alan听着,忽然说,我可能不会一直留在上海,你知道吗。

我说,我知道。

他说,但我会记得这些晚上。

我说,我也是。

那首歌结束的时候,他举起酒杯,对着我晃了晃。我也举起来,碰了一下。玻璃杯发出轻轻的声响,混在酒吧的嘈杂里,很快就没了。

他说,敬wnmax。

我说,敬两个整天盯着端口看的傻子。

他说,最好的那种傻子。


那年冬天,Alan的签证到期了。

他去续签,等了一个多月,最后批下来了。又一年。

那天他打电话给我,说,出来了。我说,出来吃饭?他说,出来喝酒。我说,好。

那天晚上我们去了那家爵士吧,还是老位子,还是威士忌和啤酒。他说,你知道我为什么想留下吗?

我说,因为上海晚上十点还有活人。

他笑了,说,那也是。但还有别的原因。

我说,什么?

他说,wnmax还没研究完。135端口搞明白了,1433也差不多了,但我听说还有个445端口,SMB服务,好像也有问题。

我说,那就继续。

他说,对,继续。

那天晚上,雪又下起来了。从酒吧出来,外面已经白了。我们站在门口,看着雪一片一片落下来。他说,在上海看雪,和在别的地方看雪,不一样。

我说,哪儿不一样?

他说,别的地方下雪,你觉得自己在一个下雪的地方。上海下雪,你觉得自己在上海,正好碰上下雪。

我想了想,说,你这话说了等于没说。

他笑了,说,对,说了等于没说。这就是我喜欢的状态。


那年之后,Alan还在上海。

我们继续每周见面,继续研究那些别人不关心的端口,继续去那家爵士吧,继续在人民广场拍照。他中文越来越好,有时候能听懂老板讲的笑话。老板说,这个老外,快成上海人了。Alan说,快了,快了。

有一次我们在他的住处调试代码,他忽然问我,你后悔过吗?

我说,后悔什么?

他说,来上海。

我想了想,说,没有。

他说,为什么?

我说,不来上海,就不会认识你。不研究这些端口,就不会知道这么多东西。不听这些爵士,就不会知道音乐可以这样。一个人如果不知道这些,活着和没活,有什么区别。

他看着我,没说话。

过了一会儿,他说,你的中文真好。

我说,我是中国人。

他说,对,但你说的那些话,不是每个中国人都会说。

我说,也许是因为在部队待过。

他说,也许。

那天晚上我们调试到很晚。代码终于跑通的时候,窗外天已经快亮了。他站起来,走到窗前,看着外面慢慢亮起来的天。说,新的一天。

我说,嗯,新的一天。

他说,还有很多端口要看。

我说,还有很多。

已有 49 条评论

    1. Ivy Ivy

      “我们是装没事的世界冠军。”——新西兰男人的这句自嘲,够我笑一天,也够我品一年。

    2. Harvey Harvey

      音乐节那段太有画面感了。阿杜在台上唱《他一定很爱你》,旁边有个女孩哭了,Alan看着,喝一口啤酒说“听得出难过”。他不懂中文,但他懂音乐。

    3. Grace Grace

      微软的漏洞像筛子一样,冲击波病毒,震荡波病毒,MS03-026。经历过那个时代的人,看到这些名字就会心跳加速。

    4. Frances Frances

      “如果被抓了,我不认识你。”“成交。”——这是男人之间的友情。不需要煽情,一句玩笑就够了。

    5. Ethan Ethan

      wnmax联盟,就两个人。“在新西兰,两个人就算聚会了。”这种冷幽默,太Alan了。