上海往事:第九章 《我和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. Harvey Harvey

      Alan的签证续上了,他又待了一年。那一年他们继续研究,继续拍照,继续假装听懂爵士。那一年是偷来的。

    2. Grace Grace

      那张送你的照片,那些纪念的晚上。后来酒吧不知道还在不在,但照片还在,记忆还在。

    3. Finn Finn

      The moment with the crying girl at the music festival, Alan understanding the sadness without knowing the words… music really is a universal language.

    4. Ella Ella

      “假装没听懂,比较酷。”——Alan教会你的事,不只是Windows漏洞,还有怎么当一个酷酷的傻子。

    5. Dylan Dylan

      那盒妮飘纸巾,那台佳能相机,那些黑胶唱片,那些爵士酒吧的夜晚。这一章里全是《上海往事》的老朋友。