收到京华大学录取通知书那天,我才发现我的京华大学志愿被人篡改。
原来是青梅女友许蔓为了和富二代顾磊在同一所大学双宿双飞,
才改我志愿踹到滨海这个鸟不拉屎的地方。她当着我的面,挽着顾磊的手,
轻蔑地说:“江皓,我们不是一个世界的人了,你只会拖累我。”她不知道,
她亲手把我推进的这所“垃圾三本”,是国家网络安全人才的-秘-密-摇篮,而我,
将在这里加冕为王。正文一盛夏的风裹挟着滚烫的热气,吹得路边的香樟树叶哗哗作响。
我叫江皓,手里捏着一张刚刚从快递员手中接过的EMS信封,心脏在胸腔里擂鼓。
信封的一角印着两个烫金大字——京华。京华大学,国内最顶尖的两所学府之一,
我十二年寒窗苦读的终极目标。我深吸一口气,指尖微微颤抖,小心翼翼地撕开封条。
鲜红的内页映入眼帘,可上面的校名却像一根烧红的钢针,狠狠刺进我的瞳孔。
“滨海科技学院”。滨海?这是什么地方?我的大脑一片空白,血液仿佛在瞬间凝固。
不可能,绝对不可能。我的估分,我的模拟考成绩,
闭着眼睛填京华大学的计算机系都绰绰有余。一种巨大的荒谬感和不祥的预感攫住了我。
我疯了一样冲回房间,打开电脑,双手颤抖地登录高考志愿填报系统。
当页面加载出来的那一刻,我全身的力气都被抽干了。第一志愿,赫然写着:滨海科技学院。
最后的修改提交时间是志愿填报截止日当晚的十一点五十分,IP地址正是我家的。
那个时间点,我早就睡了。家里只有一个人还在客厅看电视——我的女朋友,许蔓。
一个可怕的念头在我脑中炸开,我不敢深想,却又控制不住。我颤抖着手,
打开了浏览器的历史记录。一条条往下翻,心脏一寸寸变冷。在志愿修改提交时间的前后,
有几条搜索记录,像罪证一样烙在那里。
华大学 金融系”“滨海科技学院怎么样”“修改高考志愿 密码”顾磊……那个开着跑车,
在我们学校门口等了许蔓一个学期的富二代。我抓起手机,拨通了许蔓的电话,
听筒里传来她一如既往甜美的声音:“阿皓,怎么啦?是不是收到京华的通知书了?
恭喜你呀!”她的声音那么轻快,那么无辜,却让我感到一阵彻骨的寒意。“你在哪?
”我的声音干涩沙哑。“我在‘云顶’餐厅呀,和朋友庆祝呢,你快来吧,我把位置发给你。
”我挂掉电话,抓起那份来自滨海的录取通知书,冲出了家门。
“云顶”是本市最贵的旋转餐厅,人均消费四位数。我和许蔓在一起三年,只在纪念日时,
我攒了几个月的零花钱带她去过一次。当我气喘吁吁地推开餐厅厚重的玻璃门,
一眼就看到了她。她穿着一条崭新的白色连衣裙,坐在窗边最好的位置,笑靥如花。
而她对面,坐着的正是顾磊。顾磊穿着一身潮牌,手腕上那块理查德米勒的表,
闪着刺眼的光。他正端着红酒杯,绅士地为许蔓切牛排。那画面和谐又刺眼,
我像一个闯入别人完美世界的丑角。许蔓看到了我,脸上的笑容僵了一下,
但很快恢复了镇定。她站起身,朝我走来,语气里带着一丝不耐烦:“江皓,你怎么来了?
还穿成这样,快坐下。”我没有动,只是死死盯着她,把手里的录取通知书展开,
摊在她面前。“这是怎么回事?你给我解释一下。
”许蔓的目光落在“滨海科技学院”几个字上,眼神闪躲了一瞬,随即变得冰冷而陌生。
“你看到了啊。”她淡淡地说,仿佛在说一件与自己无关的事。“是你做的,对不对?
”我一字一顿地问,每个字都耗尽了我全身的力气。她没有回答,而是转头看了一眼顾磊。
顾磊慢条斯理地擦了擦嘴,站起身,走到许蔓身边,一只手自然地揽住她的腰,
居高临下地看着我,嘴角挂着一丝讥讽的笑。“是我让她做的,有问题吗?”顾磊开口了,
语气轻飘飘的,却像重锤砸在我的心上,“江皓,你也不照照镜子看看自己。
小蔓要去京华读金融,以后是要进顶级投行的。你呢?一个穷学生,就算进了京华计算机系,
出来也就是个996的码农,你配得上她吗?”我没有理他,眼睛依然死死盯着许蔓,
期盼着她能给我一个否定的答案,哪怕是一个谎言。然而,许蔓却依偎进顾磊的怀里,
抬头看着我,那张我爱了三年的脸上,此刻写满了嫌恶与鄙夷。“江皓,
我们不是一个世界的人了。”她终于开口,声音冷得像冰,“顾磊能给我想要的未来,豪车,
名牌,上流社会的入场券。你呢?你除了会做几道题,还会什么?我不想我的未来,
被你这样一个包袱拖累。”包袱……我感觉自己的五脏六腑都像被一只无形的手狠狠攥住,
疼得快要窒息。血液冲上头顶,嗡嗡作响。我看着她那张曾经让我魂牵梦绕的脸,
此刻却觉得无比陌生和丑陋。呵,傻X,真以为我看不穿你的把戏?原来这三年,
我在你眼里,只是一个可以随时丢弃的包袱。我气到发笑,笑声嘶哑。
我没有再多说一句话,只是拿起桌上那杯冰水,一字一顿地,
全部泼在了顾磊那张装模作样的脸上。水珠顺着他错愕的脸颊滑落,名贵的衬衫湿了一大片,
狼狈不堪。“啊!”许蔓尖叫起来。顾磊抹了一把脸上的水,脸色瞬间铁青,扬手就要打我。
我冷冷地看着他,眼神里没有一丝温度。“你敢动我一下试试。”我的平静反而让他愣住了。
周围的目光都聚集过来,餐厅经理也闻声赶来。我没再看他们一眼,转身就走。
背后传来顾磊气急败坏的怒吼和许蔓的哭喊,都与我无关了。走出餐厅,
夏夜的凉风吹在脸上,我却感觉不到一丝凉意。心里那团火,烧得我五脏六腑都在疼。
我没有回家,一个人在江边坐了一整夜。天快亮的时候,我拿出手机,
删掉了关于许蔓的一切联系方式和照片。然后,我打开浏览器,
输入了那个我本以为一辈子都不会有交集的校名——滨海科技学院。京华的梦碎了,
但江皓的人生,不能就这么碎了。二我以为滨海科技学院会是一个破败不堪的乡镇大学,
但当我拖着行李箱站在校门口时,还是被眼前的景象镇住了。校门倒是气派,但往里看,
建筑陈旧,道路两旁的绿化也有些疏于打理。空气中弥漫着一股海边城市特有的咸湿味道,
夹杂着些许萧索。这里和我梦中的京华,一个天上,一个地下。巨大的失落感再次袭来。
我自嘲地笑了笑,这就是许蔓和顾磊为我选择的“归宿”。宿舍是六人间的,
另外五个室友都已经到了。一个是本地的胖子,叫赵达,人很热情,一来就帮我搬行李。
另外几个则各自玩着手机,对我这个新来的只是抬头瞥了一眼,算是打了招呼。
接下来的几天,军训,开学典礼,一切都按部就班。我像一个幽灵,麻木地做着该做的一切。
我不再主动和人说话,脸上也没有任何表情。只有在深夜,
那份被背叛的屈辱和不甘才会像毒蛇一样啃噬我的心脏。直到第一堂专业课,
《C语言程序设计基础》。老师是个地中海发型的中年男人,讲课照本宣宣,枯燥乏味。
他布置了一个课堂作业:用最基础的语法,写一个简单的排序算法。
周围的同学都在抓耳挠腮,或者低头百度。我看着屏幕上闪烁的光标,
过去那些在代码世界里驰骋的记忆,一点点复苏。我没有用老师教的冒泡排序。那太笨拙了。
我的手指在键盘上飞快地敲击起来,一行行代码如流水般倾泻而出。
我用了一种快速排序的优化写法,并且加入了一些指针操作,
让整个程序的效率和简洁度都达到了一个极致。不到十分钟,我写完了。我靠在椅子上,
看着屏幕上那段完美的代码,几个月来心中积压的郁气,仿佛找到了一个宣泄口。
“这位同学,你做完了?”讲台上的老师注意到了我,推了推眼镜,走了过来。
他俯身看着我的屏幕,起初只是随意一瞥,但随即,他的眼睛就瞪大了,嘴巴微微张开,
脸上的表情从疑惑变成了震惊。“这……这是你写的?”他不敢相信地问。我点了点头。
他死死盯着屏幕,
…这个指针用法……太精妙了……还有这个递归的边界处理……我的天……”他的声音不小,
整个教室的同学都朝我们这边看来。老师像是发现了新大陆,
激动地拍了拍我的肩膀:“同学,你叫什么名字?”“江皓。”“江皓……好,好名字!
”他扶了扶眼镜,压低声音对我说,“下课后,你来我办公室一趟。”下课铃一响,
我就被老师带到了他的办公室。他给我倒了杯水,态度热情得让我有些不适应。“江皓同学,
你以前系统学过编程?”“自学过一些。”我回答。高中的时候,我爸给我买过一台旧电脑,
那是我唯一的娱乐。我用它看完了麻省理工所有的公开课,
在GitHub上参与了好几个开源项目。我的ID“Ghost”,
在一些小众的极客圈子里,小有名气。“自学?”老师更惊讶了,“你这个水平,
可不是自学能达到的。你这个代码,写得比我带的研究生都漂亮!”他沉吟片刻,
像是下定了什么决心。“这样,我给你一个地址,你晚上过去看看。就说是我推荐的。
”他递给我一张纸条,上面写着:C栋实验楼,地下二层,B201。我有些疑惑,
但还是道了谢,收下了纸条。晚上,我按照地址找到了C栋实验楼。
这栋楼看起来比其他教学楼更旧,晚上更是没什么人,走廊的灯光忽明忽暗。
我顺着楼梯一直往下走,来到地下二层。一股阴冷潮湿的气息扑面而来。走廊尽头,
一扇厚重的金属门紧闭着,门牌上写着“B201”。我深吸一口气,敲了敲门。
门内没有任何声音。我犹豫了一下,又敲了敲。“口令。”一个清冷的女生声音从门内传来,
像是通过扩音器发出的。口令?我愣住了。什么口令?“王老师让我来的。”我只能这么说。
门内沉默了几秒,然后传来一阵机械转动的声音,金属门缓缓向一侧滑开。门后的景象,
让我瞬间呆立当场。这里根本不是什么实验室,而是一个巨大的地下空间。
无数服务器的指示灯在昏暗中闪烁,像一片深邃的星海。十几块巨大的屏幕悬挂在空中,
上面滚动着瀑布般的数据流。七八个年轻人坐在各自的电脑前,神情专注,
手指在键盘上翻飞,整个空间里只听得见清脆的键盘敲击声和服务器风扇的嗡鸣。
一个穿着黑色连帽卫衣的女生转过椅子,看向我。她就是刚刚说话的人。
她看起来比我大一两岁,长发扎成一个利落的马尾,五官清秀,但眼神却异常锐利,像鹰。
“王老师推荐来的?”她上下打量着我,目光带着审视,“叫什么?”“江皓。”“新来的?
呵,老王又捡了个菜鸟回来。”一个染着黄毛的男生头也不抬地吐槽道。女生没有理他,
指了指旁边一台空着的电脑。“坐那。证明你不是废物。”她的声音没有一丝温度。
我走到那台电脑前坐下,屏幕上是一个登录界面,只有一个输入框,
标题写着“The Gate”门。这是什么意思?“给你十分钟。”女生冷冷地说道,
“进不去,就滚。”我明白了,这是一道考验。我深吸一口-气,
开始观察这个简单的登录界面。没有用户名,只有一个密码框。我尝试了几个弱口令,
比如“123456”、“admin”,都提示错误。我按下F12,打开开发者工具,
查看网页的源代码。代码很简单,就是一个前端的表单,
将输入的内容提交到一个后台接口进行验证。我试图查看那个后台接口的JS文件,
却发现它被混淆加密了。有点意思。我没有再尝试破解前端,而是打开了命令行工具。
我用ping命令拿到了这个页面的服务器IP地址,然后用nmap对它进行端口扫描。
很快,扫描结果出来了。除了常规的80端口和443端口,
服务器还开放了一个不常见的端口:3306。MySQL数据库的默认端口。
我的嘴角微微上扬。这是一个致命的疏忽。我立刻尝试连接这个数据库。
对方显然做了一些防护,但对于我来说,这些防护形同虚设。我利用一个已知的协议漏洞,
绕过了验证,成功进入了数据库。在一个名为“users”的表里,我找到了一个字段,
叫“gate_password”。我将那串复杂的密码复制下来,粘贴到登录框里,
按下回车。页面跳转,
屏幕上出现了一行绿色的字:“Welcome, new blood.”欢迎,
新鲜血液。整个过程,用时不到五分钟。我抬起头,
发现整个房间的人都停下了手中的动作,齐刷刷地看着我,眼神里充满了震惊和不可思议。
那个黄毛男生嘴巴张得能塞下一个鸡蛋。那个穿黑色卫衣的女生,
锐利的眼神里也第一次出现了一丝波动。她缓缓站起身,走到我身后,看了一眼我的屏幕,
又看了一眼我刚刚敲下的一系列命令。“你……是怎么想到去扫端口的?”她问,
声音里带着一丝不易察觉的颤抖。“直觉。”我淡淡地回答。她沉默了。良久,
她才重新开口,声音不再那么冰冷,多了一丝郑重。“我叫尚语彤,这里的老大。欢迎你,
江皓。”她朝我伸出手,“欢迎加入‘幽灵’战队。”三“幽灵”战队。后来我才知道,
这个听起来中二的名字,在国内的顶级黑客圈子里,是一个如雷贯耳的存在。
滨海科技学院确实是一所普通的三本院校,但它的计算机系,却藏着一个怪物——陈教授。
陈教授是国内网络安全领域的泰山北斗,早年因为一些原因,从京华大学出走,
来到这个无人问津的滨海,组建了这个名为“幽灵”的战队。战队的成员,
都是他从历届学生中亲自挑选出来的、在编程方面有着极高天赋的怪才。他们不怎么上课,
大部分时间都泡在这个地下基地里,做的都是真刀真枪的网络攻防项目,
甚至会-秘-密-协助国家有关部门处理一些棘手的网络安全事件。
从这里走出去的每一个人,都成了各大互联网巨头和国家安全机构疯抢的对象。而我,
因为那堂课上无意间的“炫技”,被王老师发现,推荐给了陈教授。
尚语彤给我的那道“门”,就是陈教授设下的入门考验。我成了“幽灵”战队十几年来,
第一个以大一新生的身份,并且用时最短通过考验的人。我的大学生活,
从此被劈成了截然不同的两半。白天,我是那个沉默寡言,独来独往的普通学生江皓,
在教室里听着枯燥的课程打瞌睡。晚上,我化身“Ghost”,
在B201这个代码的王国里,和一群天才疯子一起,在二进制的海洋里冲浪。
尚语彤是我的领路人。她是陈教授最得意的弟子,大我两届,技术深不可测。
她对我要求极为严苛,每天都会给我布置大量的训练任务,从漏洞挖掘,到逆向工程,
再到密码学。我像一块干涸的海绵,疯狂地吸收着这些知识。我沉浸在代码的世界里,
那些被背叛的伤痛,似乎也渐渐被一行行精妙的逻辑和算法抚平。我和尚语彤的关系,
也从一开始的纯粹上下级,变得微妙起来。我们经常为了一个技术问题,
在白板前争论到深夜。她会因为我一个精妙的思路而眼前一亮,