会议结束,她回到工位。九点半,电脑上弹出一个新邮件提示:您已被授予“核心项目-协作权限”,可访问文档列表详见附件。
她点开附件,三十七个文件。虽然不是最终算法本身,但足够拼凑出整个项目的技术框架和进度节点。
李叔给的时间是三个月。现在这些资料在手,她可能只需要一个月。
十点十二分,那个灰色头像又出现了。
恭喜。但别高兴太早,他在钓鱼。
姜榆的手指几乎没有停顿,直接打字回复:你是谁?
发送失败。系统提示:该用户不存在。
对话框消失,就像什么都没发生过。但这次姜榆看清了——在对话框消失前的零点几秒,那个灰色头像闪了一下,像是有人在另一端看着她的回复,然后主动关闭了对话。
他在钓鱼。
这句话是什么意思?谁在钓鱼?傅深衍在钓鱼,还是这个神秘人在钓鱼?
姜榆盯着屏幕,一动不动。
下午四点五十分,她拿着一份项目沟通的邮件打印稿,敲响傅深衍办公室的门。
“请进。”
她推门进去。傅深衍正在看什么文件,看到她笑了笑:“正好,我也有事找你。”
姜榆走过去,把打印稿放在他桌上:“这份需求需要你确认一下,技术部那边催着要。”
傅深衍接过来,低头翻看。姜榆站在他面前,视线自然地扫过他桌面。电脑屏幕亮着,显示着一份财务报表。左手边放着一摞文件,最上面那份的封面写着几个字——
内部数据泄露风险评估报告。
日期是上周三。
她的名字在第二页,第一行。
姜榆的心跳漏了一拍。
傅深衍忽然抬起头,目光和她对上。他的眼睛里有光,温和的,像是根本没注意到她在看什么。
“姜榆,”他把打印稿放到一边,拿起那份报告,翻开到第二页,语气平常得像在说今天天气不错,“这份报告是上周做的,苏蔓怀疑新员工里有人别有用心。”
他把报告转过来,让姜榆看到那一整页的内容。她的名字旁边,用红色记号笔画了一个问号,还有几行密密麻麻的批注。
“我帮你挡回去了。”
傅深衍看着她,眼神真诚而温暖,像深潭里的光。
“因为我相信你。”
傅深衍的眼神太真诚了。
真诚到姜榆有一瞬间忘了自己是谁,忘了那枚掰成两半冲进马桶的芯片,忘了李叔发来的结构图上那些密密麻麻的标注。
她只说了一句谢谢。
走出办公室的时候,她能感觉到他的视线落在自己背上,像一片羽毛,很轻,但一直都在。
那天晚上她没睡着。
凌晨三点,她躺在床上盯着天花板,脑子里反复回放那句话:因为我相信你。
她告诉自己这是任务的一部分。获取信任是第一步,现在她做到了,应该高兴。可她闭上眼睛,看到的全是他抬起头那一刻的眼神。
周六下午五点四十分,姜榆第二次站在傅深衍家门口。
这次她带了笔记本电脑,还有一份准备了一整周的技术分享资料。公司内部的小型分享会,周凯牵头组织的,说让她讲讲项目管理的经验,顺便让大家更熟一点。
傅深衍开门的时候穿着和上次一样的灰色卫衣,看到她手里的电脑包,笑了笑:“不用这么正式,随便聊聊就行。”
姜榆走进去,客厅里已经坐了五六个人。周凯在沙发上翻手机,看到她立刻招手。市场部的小王也在,还有两个技术部的年轻人。苏蔓不在。
她松了口气。
分享会六点开始,姜榆讲了二十分钟,又回答了十几分钟的问题。气氛很轻松,周凯时不时插科打诨,连那两个技术部的年轻人都渐渐放开,开始问一些实际问题。
傅雨从楼上跑下来,端着一盘切好的水果放到茶几上,然后挨着姜榆坐下,小声说:“姜榆姐,你讲得真好。”
姜榆笑了笑。
七点半左右,傅雨忽然捂住肚子,脸色发白。
傅深衍立刻站起来:“怎么了?”
“肚子疼......”傅雨的声音发抖,“好疼......”
傅深衍扶住她,转头对周凯说:“帮我照顾一下大家。”然后扶着傅雨往外走,走到门口又回头看向姜榆,“姜榆,麻烦你帮我照看一下家里,周凯他们走的时候帮我锁个门。”
姜榆站起来:“要不要我帮忙?”
“不用,你留下。”他推开门,扶着傅雨快步走出去。
门关上,客厅里安静了几秒。
周凯摆摆手:“没事没事,小雨肠胃不太好,老毛病了。咱们继续。”
但气氛已经散了。又聊了十几分钟,八点不到,大家陆续起身告辞。周凯走的时候拍了拍姜榆的肩:“你也早点回,今天辛苦。”
最后一个人走后,客厅彻底安静下来。
姜榆站在玄关处,看着空荡荡的屋子。暖气开着,灯都亮着,茶几上还放着没喝完的饮料和半盘水果。
楼上,书房的门虚掩着。
她看了一眼时间。八点零五分。傅深衍去医院,至少需要一两个小时。周凯他们刚走,不会有人回来。
她告诉自己,只是上去看一眼。
姜榆上楼,脚步很轻,踩在地毯上几乎没有声音。走廊尽头,书房的门留着一道缝隙,里面透出微弱的光——傅深衍走的时候可能没关电脑。
她停在门口,没有推门,只是透过那道缝隙往里看。
电子锁是银色的,和她记忆中一样。型号是YX-S730,和李叔给的信息一致。锁的状态灯是绿色的,意味着门没锁——傅深衍走得急,可能根本没顾上按锁。
三十秒。她只看了一眼,确认了型号和环境,没有碰任何东西。
正准备转身下楼,楼下忽然传来周凯的声音。
“姜榆?你在上面干嘛?”
姜榆的心脏重重跳了一下。她转过身,脸上已经摆好了恰到好处的茫然表情,往楼梯口走了两步,看到周凯站在一楼楼梯拐角,正仰头看着她。
他身后还站着一个人。
苏蔓。
她穿着一件黑色风衣,头发被风吹得有点乱,明显是刚赶过来的。她的眼睛直直盯着姜榆,眼神锐利得像手术刀,要把她一层层剖开。
姜榆往下走了两步,语气平常:“找洗手间。上次来的时候记得在二楼,刚才忘了具体位置。”
周凯愣了一下,挠挠头:“洗手间?楼下不就有吗,厨房旁边那个。”
姜榆露出恍然的表情:“是吗?我不知道,刚才找了一圈没找到。”
她走下楼,路过周凯身边,和苏蔓擦肩而过。苏蔓始终没有移开视线,一直盯着她,直到她走进客厅。
“苏秘书怎么来了?”姜榆回头看她。
苏蔓没回答,只是说:“傅总让我过来看看小雨有没有落下的东西。”
周凯在旁边打圆场:“哎呀都别站着了,既然来了就坐会儿,我给傅总打个电话问问情况。”
晚上十一点四十分,姜榆洗漱完准备睡觉,手机响了。
傅深衍发来的消息。先是解释了傅雨的情况——急性肠胃炎,已经打了针,没什么大事,谢谢她今天的帮忙。然后是长长一段,说今天太匆忙,改天请她吃饭赔罪。
最后一句是:
对了,苏蔓说你在楼上待了三分钟。书房门口有什么好看的吗?
姜榆盯着那行字。
消息框上方显示“对方正在输入”,那个提示闪了几下,又消失了。傅深衍在等她的回复。
她打了几个字,删掉,又打,又删。
最后只发出去一条:
我找洗手间,迷路了。
发送成功。
她握着手机,等他的回复。
屏幕暗下去,又亮起来,是他发来的一个表情——那个捂脸笑的表情,后面跟着一句话:
下次直接问我,我告诉你在哪儿。
姜榆盯着那个表情看了很久。
然后她放下手机,关灯,把自己埋进黑暗里。心脏跳得很快,不是因为被发现的风险,而是因为别的什么。她不敢去想那是什么。
姜榆盯着那条消息看了很久。
下次直接问我,我告诉你在哪儿。
她打了几个字,删掉,又打,又删。最后发出去的只有一句:嗯,晚安。
发送成功。对方正在输入的提示闪了几下,最终消失了。
姜榆放下手机,闭上眼睛。但脑子里反复回放的是自己刚才那个回复——你家的洗手间太隐蔽了,迷路了。苏秘书可能太关心我了。
太关心我了。
这句话里带着一丝她自己都没察觉的委屈。像是在解释,又像是在抱怨。这不是一个商业间谍该有的情绪。她不该在意苏蔓怎么看她,更不该在意傅深衍怎么想她。
她翻了个身,把脸埋进枕头。
周一上午十点,部门周会。
姜榆做入职介绍的时候,苏蔓坐在会议桌对面,全程没有看她。傅深衍坐在主位,低着头看文件,偶尔抬头扫一眼会议室,目光从她脸上掠过,没有任何多余的停留。
介绍结束,没人提问。苏蔓开始讲本周的工作安排,条理清晰,语速平稳,仿佛周六晚上那个在楼梯口盯着姜榆的人不是她。
会议结束,众人起身往外走。
“姜榆留一下。”
傅深衍的声音从身后传来。姜榆顿住脚步,回头看到他还在座位上,手里翻着一份文件。
会议室的门关上,只剩下他们两个人。
他站起来,走到她面前,把手里的文件递过来:“这是下周跟合作方对接的核心资料,你帮我看看逻辑上有没有问题。”
姜榆接过来,翻开第一页。
是核心项目的技术框架说明书,虽然不是最终算法本身,但包含了所有模块的设计思路和数据流向。这种级别的资料,整个公司能接触到的人不超过十个。
她抬头看他。
傅深衍的表情很平静,眼神也是,没有任何试探的痕迹,像是在交代一件再普通不过的工作。
“周凯说你技术底子好,”他说,“正好帮他把把关,他有时候太钻牛角尖,容易把简单问题复杂化。”
姜榆低头继续翻文件,手指一页一页掠过那些密密麻麻的公式和流程图。
“这个给我看合适吗?”她问。
“有什么不合适的?”他的语气很轻,“你负责这个项目的沟通,不了解技术细节怎么沟通。”
姜榆没再说话。
他把文件递过来的时候,两人的手指短暂地碰了一下。他的指尖有点凉,触感只是一瞬间,但姜榆抬起头,正好对上他的目光。
他看着她。
不是上司看下属的那种眼神,也不是猎人看猎物那种。是另一种,很深的,带着温度的,她不敢命名的东西。
她先移开了视线。
“那我先看了,”她说,“有问题找你。”
傅深衍笑了笑:“好。”
下午三点,姜榆在自己工位上把那份文件从头到尾看了一遍。越看越心惊。这个项目的进展比她预计的快得多,核心算法已经进入测试阶段,最多两个月就能申请专利。
李叔给的时间是三个月。现在看来,可能只需要一半。
她把文件合上,靠在椅背上,闭上眼睛。
脑子里有两个声音在吵架。一个说,这是任务,尽快把情报传出去。另一个说,再等等,还没到最后时机。
她不知道哪个才是自己真正的想法。
晚上十一点,姜榆洗完澡躺在床上,手机忽然震动。
她拿起来,心跳漏了一拍。
又是那个匿名号码。
这次只有一句话:
你动心了。
你动心了。
姜榆盯着那四个字,手指悬在屏幕上方。她打了几个字,删掉。又打,又删。最后什么都没回,直接关机。
她躺在床上,睁着眼睛看天花板。
动心。什么叫动心。她只是完成了任务的第一步,获得了目标的信任。她只是在他的眼神里多停留了一秒,在那次指尖相触时心跳快了一拍。这只是任何一个间谍在执行任务时都会有的正常生理反应。
她翻了个身,把脸埋进枕头。
凌晨三点十七分,手机在床头柜上疯狂震动。
姜榆几乎是瞬间清醒,抓过手机,屏幕上跳动着周凯的名字。
“出事了!”周凯的声音劈头盖脸砸过来,“服务器被攻击,你马上来公司!”
电话挂断。
姜榆愣了一秒,然后翻身下床,抓起衣服往身上套。凌晨的街道空无一人,出租车一路绿灯,十五分钟后她冲进华远科技大厦。
二十八楼灯火通明。
技术部所有人都在,每个人脸上都带着熬夜后的苍白和紧张。周凯站在主控台前,头发乱得像鸡窝,看到她立刻招手:“这边!”
姜榆走过去,看到主屏幕上跳动的数据流,瞳孔微微收缩。
攻击很专业。不是普通的黑客,是有组织的行为。对方在用分布式拒绝服务做掩护,真正的目标是核心算法服务器。防火墙的日志显示,已经有三个节点被突破,最核心的那个数据包正在被尝试打包传输。
“多久了?”她问。
“四十分钟。”周凯的声音发紧,“我们试了所有办法,挡不住。”
姜榆环顾四周。技术部的几个人都在各自的位置上疯狂敲击键盘,但那些操作在真正的专业人士眼里,只是徒劳的挣扎。
傅深衍站在大屏幕前,背对着所有人。
他穿着昨晚那件深蓝色衬衫,袖子卷到手肘,脊背挺得很直。屏幕上跳动的红色警报映在他身上,把他的侧脸勾勒出一道锋利的轮廓。
他没有回头,但声音很稳:“别慌,分两组。周凯带人守住防火墙,小王带人追查攻击源。姜榆——”
他转过身,目光落在她身上。
“你跟我来。”
姜榆跟着他走进旁边的小会议室。门关上,外面的嘈杂被隔绝。他站在白板前,拿起笔,快速画了一个网络拓扑图。
“对方的目标是这个。”他在核心服务器的位置画了一个圈,“防火墙最多再撑二十分钟。如果数据被拿走,华远两年的研发就白费了。”
姜榆看着他画图的手。那双手很稳,线条一笔呵成,没有任何颤抖。
“你有办法吗?”他忽然抬头,看着她。
姜榆的心跳漏了一拍。
他的眼神很直接,不是命令,不是请求,只是直接。像是一个人在绝境中看着另一个人,问:你能帮我吗?
她应该摇头。应该说自己只是一个项目经理,不懂这些。应该退后一步,让技术部的人去处理。
但她听到自己说:“我试试。”
外面的大屏幕上,那个核心数据包的传输进度已经走到百分之三十七。
姜榆走到一台空着的电脑前,坐下。手指搭上键盘的那一刻,她忽然想起李叔第一次教她黑客技术时说的话:这一行最重要的不是技术,是本能。危机来临时,你的本能会替你做选择。
她的本能选择了冲上去。
屏幕上的数据流在她眼里变成有颜色的线条。对方的手法很老练,用的是多层跳板,每一层都加密。普通追查手段根本找不到源头。
但姜榆知道一个办法。
那是她刚入行那年,从一个老黑客那里学来的。叫镜像追踪——在对方撤退的路径上反向植入一个追踪木马,需要预判对方的撤退路线,需要在她切断连接的同时完成植入。成功率不到百分之三十。一旦失败,反而会被对方锁定位置。
传输进度百分之五十一。
姜榆深吸一口气,手指开始敲击键盘。她的动作很快,快到旁边的人根本看不清她在敲什么。那些指令像流水一样从她指尖倾泻而出,一行一行,编织成一张看不见的网。
百分之六十八。
对方的撤退路径在她脑子里逐渐清晰。她会选择最快的那个节点,那里有最弱的防火墙,最容易被突破——
百分之八十三。
姜榆按下回车键。
屏幕上的数据流忽然静止了一秒。然后,那个正在传输的数据包被硬生生切断。连接中断。对方撤退。与此同时,一个只有几KB的木马顺着对方撤退的路径反向潜入,像一滴水融进大海。
传输进度停在百分之九十一。
会议室里安静了三秒。
然后周凯第一个反应过来,一拳砸在桌上:“成了!”
技术部爆发出欢呼声。有人瘫在椅子上,有人互相击掌,有人趴在桌上不动了。姜榆靠进椅背,这才发现自己手心全是汗。
她转头,看到傅深衍站在两米外。
他没有像其他人一样欢呼,只是静静地看着她。眼神里有惊喜,有欣赏,还有一丝她看不懂的东西。很深,很沉,像潭水下的暗流。
人群渐渐散开,周凯开始安排善后工作。姜榆站起来,准备去找杯水喝。
傅深衍走过来,在她面前停住。
两人之间的距离不到半米。周围是嘈杂的人声和键盘敲击声,但他的声音只有她能听见。
“你刚才用的那个追踪手法,”他说,声音很轻,“是三年前一个代号叫啄木鸟的顶尖商业间谍的标志性手法。”
姜榆的血液在那一瞬间凝固。
他看着她的眼睛,一字一句说下去。
“那个人,后来消失了。”
那个人后来消失了。
姜榆站在原地,听到自己的心跳声像鼓点一样砸在耳膜上。她看着傅深衍的眼睛,想从里面找到答案——他是真的知道,还是在试探?
但他的眼睛什么也没说。他只是在陈述一个事实,然后转身走开,去和周凯讨论善后工作。
姜榆站在原地,手指慢慢攥紧。
凌晨四点,技术部的人陆续散去。有人趴在桌上补觉,有人去楼下便利店买咖啡。姜榆坐在自己工位上,盯着电脑屏幕发呆。
他知道了。
就算不确定,也至少有了怀疑。一个普通的项目经理,不该会那种手法。那种只有顶尖商业间谍才会用的手法。
她应该走。趁着天还没亮,趁着所有人都在混乱中,离开这里,消失。李叔会给新的身份,新的任务,她会继续做她的啄木鸟。
但她没有动。
凌晨五点,天色开始泛白。周凯打着哈欠走过来,拍拍她的肩:“辛苦了,回去睡吧。今天放你一天假。”
姜榆点点头,站起来收拾东西。
“姜榆。”
傅深衍的声音从身后传来。她转头,看到他站在走廊尽头,手里拿着车钥匙。
“饿不?”他的语气平常得像什么都没发生过,“附近有家二十四小时的豆浆店。”
姜榆看着他。
他站在那里,衬衫袖子还是卷着的,脸上有熬夜后的疲惫,但眼神很平静。就像她只是一个普通的同事,他们只是普通的加班后的普通早餐。
她说:“好。”
豆浆店在一条小巷子里,门脸很小,但里面收拾得很干净。老板显然认识傅深衍,看到他进来就笑:“老样子?”
傅深衍点头,又看向姜榆:“你吃什么?”
姜榆随便点了一份。热豆浆端上来的时候,他用勺子把表面那层豆皮拨到自己碗里,然后把碗推到她面前。
“趁热喝,”他说,“熬夜伤胃。”
姜榆低头喝豆浆,没有说话。
他也不说话,只是安静地吃自己的油条。店里没有其他客人,只有墙上的电视在放早间新闻,声音调得很低。
姜榆放下碗,终于忍不住开口。
“你不想知道我是谁吗?”
傅深衍抬起头,看着她。
他看了很久,久到她以为自己脸上有什么东西。然后他说:“我想等你自己告诉我。”
姜榆的眼眶忽然有点发酸。
她低下头,假装喝豆浆,掩饰那一瞬间失控的情绪。这么多年,从来没有人对她说过这种话。李叔只会在她完成任务后说“做得不错”,然后布置下一个任务。那些短暂出现在她生命里的人,看到的是她的技能,她的利用价值,她能做到什么。
从来没有人说,我想等你自己告诉我。
“但不管你是谁,”他的声音从对面传来,很轻,像豆浆的热气,“今天谢谢你。你救了公司。”
姜榆没有抬头。
她怕一抬头,就会被他看到眼睛里的东西。
吃完早饭,两人走出豆浆店。天边已经泛起鱼肚白,街道上开始有早起的行人和车辆。晨风吹过来,带着初秋的凉意。
姜榆正要说话,他忽然伸手。
他的手指轻轻拂过她的头发,动作很轻,像对待什么易碎的东西。姜榆愣住,看到他从她发丝上捏下一小片东西——是刚才喝豆浆时沾到的豆皮沫。
她下意识摸了摸自己的头发。
他笑了,把指尖那点东西弹掉,说:“回去好好睡一觉。”
姜榆看着他。
晨光从他身后照过来,给他的轮廓镀上一层淡淡的金色。他的眼睛里有血丝,有疲惫,但笑容很真。
“明天见。”他说。
姜榆回到家的时候,天已经亮了。
她倒在床上,脑子里反复回放那个画面——晨光里傅深衍的笑容,他手指拂过她头发时的触感,还有那句明天见。
她告诉自己这只是任务的一部分。获取信任,接近目标,这些都是计划内的。但闭上眼睛的那一刻,她发现自己嘴角是弯着的。
然后她睡着了。
再醒来的时候,是下午两点。阳光透过窗帘的缝隙照进来,刺得眼睛发酸。姜榆摸过手机,屏幕上有一条加密信息。
李叔。
她点开,看完,整个人像被浇了一盆冷水。
干得不错。借着黑客攻击的机会表现自己,获得信任。一周内,我要看到核心算法。
姜榆盯着那行字,手指慢慢收紧。
一周。她原本以为至少还有两个月。
她打字回复:华远的安保比想象中严密,核心算法只有傅深衍个人电脑里有备份,需要时间。
发送后,她等着李叔的回复。
五分钟。十分钟。二十分钟。
手机震动。只有一句话:
你忘了是谁把你养大的吗?一周,没有商量。
姜榆放下手机,靠进床头。
是谁把你养大的。这句话像一根刺,扎在她心里最软的那个地方。她想起十三岁那年,李叔第一次出现在孤儿院,说可以资助她上学,说她有天赋,不该埋没在那里。她想起他给她请的老师,教她编程,教她英语,教她怎么在这个世界上活下去。
她一直以为自己欠他的。
但现在她开始想,那些真的是恩情吗?还是一个交易,从一开始就是。
接下来三天,姜榆把自己埋进工作里。
白天她正常开会、沟通、处理邮件,像一个普通的项目经理。晚上七点后,整层楼空下来,她会打开那些权限内的核心文档,一页一页看过去。
但她不是为了偷。
她在研究。研究这个算法的结构,研究它的逻辑,研究它有没有可能被伪造。如果她能做出一份看起来一模一样但其实是空壳的版本,交给李叔,那两边都可以应付过去。
这个想法很危险。一旦被识破,李叔不会放过她。但姜榆想不出更好的办法。
第三天深夜,她坐在工位前,屏幕上开着三个窗口。左边是核心算法的框架文档,中间是她自己搭建的模拟环境,右边是一段正在调试的代码。
凌晨一点十分。整层楼只有她一个人,空调的嗡鸣声显得格外清晰。
姜榆盯着屏幕,手指在键盘上敲敲停停。假数据的难点在于“真”和“假”的比例。太真了,等于把真东西交出去。太假了,一眼就会被识破。她需要找到一个平衡点,让那些代码看起来能用,但核心逻辑其实是死循环。
门忽然被推开。
姜榆的手指几乎是在同一时间按下快捷键,屏幕上的三个窗口瞬间切换成一份普通的项目进度报告。
她抬头。