第263章 尼玛!这不是王辰白板上的方案吗?!
沈初微挡在服务器前面,双手展开像护犊子。
“你已经搞砸了,别再碰了!”
阿哲站起来,走到服务器旁边,弯腰看了一眼机箱背面的状态指示灯。
全灭。他伸手摸了一下机箱侧面的金属外壳。
微热,但不烫。
如果主板真的被烧了,温度不会只是微热。
“应该没烧。”
“电源保护跳闸了,不是硬件烧毁。”
“'应该'?”
沈初微的声音拔高了。
“你跟我说'应该'?你不看看你那行代码写的什么东西——内核级数据注入,不做沙盒隔离,不做边界检查?”
阿哲的脸色很难看。
不是因为沈初微的质问,是因为他知道她说的每一个字都是对的。
“我重启试试。”
他弯下腰,伸手去按服务器的电源键。
“等等——”
沈初微想拦。
就在这时候,办公室的门被推开了。
王辰端着一杯枸杞茶走进来。
他的步伐很慢,慢到让沈初微产生了一种错觉——这人是散步路过的,不是来处理事故的。
王辰走到服务器旁边,站定。
他先看了一眼阿哲伸出去没收回来的手,又看了一眼黑掉的屏幕,最后目光落在阿哲工位的显示器上——那上面虽然也黑了,但ssh终端的最后一行残影还没完全消退。
王辰看到了那行代码的末尾。
然后他端着茶杯,喝了一口。
枸杞在水面上浮浮沉沉的。
“缓冲区地址写错了。”
阿哲转过头看他。
“你的数据流注入点选在了直接内存访问控制器的映射区域,偏移量算错了两位。数据流没走缓冲区,直接冲进了内存管理单元的保护页,内存管理单元检测到非法访问,触发了硬件级的不可屏蔽中断,系统做了紧急断电保护。”
他又喝了一口茶。
“主板没烧。电源保护跳了而已。”
沈初微和阿哲同时看着他。
沈初微的表情是:
“你怎么看一眼就知道了?”
阿哲的表情更复杂一些。
王辰指了指服务器。
“先按住电源键五秒做硬重启,进去之后我给你一个内存偏移量,你改了就能正常启动。”
阿哲按住服务器电源键五秒钟,指示灯重新亮起。机箱里的风扇开始转动,发出低沉的嗡鸣。
屏幕亮了。
“偏移量改成多少?”
“0xffff880000000000起步,加上你需要的dma通道号乘以页面大小。”
王辰站在旁边,一手端茶,一手插兜。
“你自己算。”
阿哲闭了一下眼。
他用了不到十秒算出了正确的偏移量,敲进去,回车。
系统启动了。
正常启动。
所有服务恢复运行。
硬盘数据完好无损。进程列表里,之前部署的所有模块都在正常跑着。
沈初微“啪”地一下拍在桌上:
“活了?!”
她冲到服务器前面,看着屏幕上滚动的系统日志,每一行输出都是绿色的正常。
“活了。”
她转过身,看着王辰,眼睛里满是劫后余生。
“老板,你救了这台服务器。”
“我救了六万八。”
王辰纠正她。
“这台机子如果真烧了,从你们俩的工资里扣。”
沈初微嘴角一抖:
“我还没开始领工资呢。”
“那就欠着,连本带利。”
沈初微决定闭嘴。
王辰转身要走,走了两步,又停下来。
“阿哲。”
阿哲坐在工位上,背对着他,没有转身。
“嗯。”
“你写底层很快,但你的手还是攻击的手。”
王辰的语气没有任何批判的意思,只是在说一个事实。
“攻击的时候,系统不是你的,烧了是别人的损失。但现在你在建设,系统是你的——每一行代码都是你给自己的承诺。建设者不能用进攻者的习惯写代码,因为你炸掉的每一个缓冲区,都是你自己的家。”