`// TODO: Remove this test flag before deployment: FLAG{Welcome_Noob_ZeXuan}`
廖泽轩:“……”
他怀着复杂的心情,输入了这串充满“善意”的Flag。
`Challenge 1 solved! Congratulations!`
看着屏幕上跳出的绿色提示,廖泽轩哭笑不得,感觉自己受到了前所未有的智商侮辱,但……好歹是过了第一关。
他立刻满血复活,斗志昂扬地扑向第二题,嘴里还念念有词:“不就是解题嘛,我演戏能演好,解题也一定行,Flag,Flag我来了。”
“零度”看着他这打不死的小强精神,无奈地摇摇头,嘴角却忍不住上扬。
“暗流”虽然依旧面无表情,但敲击键盘的节奏,似乎有那么一瞬间,微不可察地轻快了一点点。
“砰!”
一声闷响伴随着廖泽轩的哀嚎在实验室响起。
他整个人以一种极其扭曲的姿势从椅子上滑了下来,屁股结结实实地摔在了冰冷的防静电地板上,怀里还紧紧抱着他那台“新手村”电脑,屏幕上是密密麻麻的、他看了三小时依旧如同天书的Python脚本。
“哎哟喂,我的腰。”廖泽轩龇牙咧嘴,感觉尾椎骨都快裂开了。
他刚才试图理解一个关于“堆溢出”漏洞利用的概念,越想越迷糊,身体不自觉地往后仰,结果椅子腿一滑……
“零度”赶紧跑过来扶他:“廖哥,没事吧?早说了那椅子轮子有点滑,让你换把稳当的你不听。”语气里是无奈又好笑。
角落里,“暗流”连眼皮都没抬一下,只有敲击键盘的声音极其短暂地停顿了半秒,仿佛在无声地表达“这届徒弟带不动”的绝望。
廖泽轩被扶起来,揉着摔疼的地方,一脸悲愤:“这能怪我吗?是椅子先动的手,还有这代码。”他指着屏幕上那些魔鬼般的符号,“它们认识我,我不认识它们啊。什么堆啊栈啊指针啊,我感觉我的脑子才是被‘溢出’的那个。这是数学题吧,不会就是不会。”
“零度”忍着笑:“廖哥,理解底层原理确实需要时间。要不……先休息会儿?喝口水?”
“不。”廖泽轩倔劲儿上来了,把电脑往桌上一放,眼神坚定得像要入党,“我就不信了。我廖泽轩演戏能拿奖,背台词过目不忘,还能被几行代码难倒。师父。”
他转头看向“暗流”,眼神充满视死如归的悲壮,“您再给我讲一遍,用最通俗的,比如……比如用我们剧组打比方。”
“暗流”终于停下了敲键盘的手,缓缓转过头。那眼神,像是在看一块不可雕琢的朽木。
他沉默了几秒,似乎在组织语言,最终用一种毫无起伏的语调开口:“想象你剧组放盒饭的桌子(栈),地方固定,饭盒(数据)一个个往上摞(压栈)。有人(恶意程序)故意塞超大的饭盒(超长输入),把桌子撑爆了(栈溢出),多出来的饭(恶意代码)就流到了旁边放道具的桌子(堆)上,把道具(关键数据)弄脏了(覆盖),甚至可能把道具桌也弄垮(控制程序流)。”
廖泽轩:“!!!”
他眼睛瞪得像铜铃,嘴巴微张,仿佛被一道闪电劈中了天灵盖。
这个比喻……虽然充满了盒饭和道具的烟火气,但奇异地、醍醐灌顶般地让他抓住了那个抽象概念的核心。
“我……我好像懂了。”
廖泽轩激动地一拍大腿,结果又扯到了刚才摔疼的地方,疼得他倒抽一口冷气,脸上表情扭曲又兴奋,“就是坏人故意用超大份的‘恶意盒饭’撑爆了‘安全饭桌’,让脏东西流到‘道具桌’上搞破坏。对不对师父。”
“暗流”面无表情地点了下头,算是认可了他这充满生活气息但内核正确的理解。
“零度”在一旁看得目瞪口呆,对“暗流”的“教学”能力佩服得五体投地。
廖泽轩瞬间像打了鸡血,也顾不上疼了,重新扑到电脑前,眼神亮得惊人:“原来如此,我懂了,盒饭是突破,哦不,输入是突破口,师父您简直是天才,用盒饭都能讲透黑客技术。”
他一边念念有词,一边笨拙但无比认真地开始尝试修改那个让他摔跤的脚本,仿佛真的看到了“恶意盒饭”在冲击他的“安全饭桌”。
“暗流”默默地转回头,重新看向自己的屏幕。
没人看到,他那张万年冰山脸的下颌线,似乎极其轻微地松动了一下,仿佛被某个“盒饭天才”逗得想笑,又强行忍住了。
实验室里,只剩下廖泽轩时而恍然大悟的惊呼、时而抓耳挠腮的嘟囔,以及键盘敲击声中偶尔夹杂的、对“盒饭理论”的深情赞美。