第14章 破土新芽(2/2)
“好。”
“还有件事。”沈清澜说。“算法脱敏的方案,晚上我们过一遍。九点,视频会议。”
“需要准备什么?”
“你的代码库访问权限。”沈清澜说。“我这边有个安全专家,会指导你做代码混淆和架构调整。目标是在不损失性能的前提下,让算法看起来和原版完全不同。”
陈默愣了愣。“这么复杂?”
“必须做。”沈清澜语气严肃。“赵志刚不是傻子。他如果怀疑你,第一件事就是找专家比对代码。我们要在法律和技术层面都切断关联。”
“明白了。”
“晚上见。”
陈默看了眼时间,下午四点半。离会议还有四个多小时。他决定先回之前的隔间收拾东西。
地铁上人不多。
他靠着车门,看窗外隧道墙壁飞速后退。灯带连成线,明灭交替。脑子里过着晚上要讨论的问题,代码混淆,架构调整,性能保持。
回到共享办公区,七号隔间还锁着。
他打开门,里面一切如旧。显示器待机灯亮着,键盘上落了一层薄灰。他拔掉线缆,收拾好所有私人物品。
电脑,充电器,水杯,那支签过意向书的笔。
全部装进背包。他最后看了一眼这个十平米的小空间,关灯,锁门。钥匙交还给前台,访客卡归还。
走出大楼时,天开始暗了。
云层压得很低,泛着橘红色的边。风大了些,吹得树叶哗哗响。他走到便利店,买了份便当,加热后站在门口吃完。
米饭硬,菜油腻。
他吃完把饭盒扔进垃圾桶,擦了擦嘴。然后慢慢走回新租的隔间,刷卡上楼。走廊里亮着灯,几家创业公司还在加班,隔着玻璃能看到晃动的人影。
七号隔间很安静。
他打开灯,拉上窗帘。然后打开电脑,连上网络。时间刚过七点,离会议还有两小时。他先整理代码库,把核心算法部分单独标记出来。
八点半,他泡了杯茶。
茶叶是之前剩下的,味道很淡。他小口喝着,眼睛盯着屏幕。系统界面忽然在眼前闪了一下,跳出一行提示:“代码混淆建议方案已生成。”
陈默怔了怔。
他以为系统只会推演未来,没想到还能处理这种具体的技术问题。界面展开,列出三种混淆方案,每种都有详细的步骤和预期效果。
头痛没有出现,只有轻微的眩晕。
他选了第一种方案,方案自动展开成具体操作步骤。重命名变量,插入无效代码段,调整函数调用顺序。每一步都标注了风险点和注意事项。
他记下关键点,系统界面淡去。
九点整,视频会议邀请弹出来。他点击接受,沈清澜的脸出现在屏幕里。她在家,穿着宽松的灰色卫衣,头发随意扎着。
背景是一面书墙,摆满了技术书籍。
她旁边还坐着一个人,中年男人,穿格子衬衫,戴黑框眼镜。沈清澜简单介绍:“这位是刘工,安全领域的专家。”
刘工点点头,没说话。
“开始吧。”沈清澜说。“陈默,你先介绍算法结构。”
陈默共享屏幕,打开架构图。他从数据输入层讲起,讲到特征提取,核心推理,结果输出。每层的作用,模块间的数据流。
刘工听得很认真,时不时打断提问。
“这个特征金字塔,为什么用三层?”
“为了兼顾不同尺度的目标。”陈默说。“小区场景里,人和车的尺寸差异大,需要多尺度特征。”
“能改成四层吗?”
“可以,但计算量会增加百分之十五。”陈默调出模拟数据。“这是对比结果,准确率提升不到百分之一,不划算。”
刘工点点头,在笔记本上记录。
沈清澜插话。“混淆的重点在核心推理模块。这个模块最独特,也最容易比对。我们要把它打散,重组。”
“怎么打散?”陈默问。
刘工接过话头。“我看了你的代码。推理模块有十二个主要函数。我们可以把这些函数拆成更小的子函数,然后重新排列调用顺序。”
“性能影响呢?”
“理论上没有。”刘工推了推眼镜。“只是增加了函数调用开销,但编译器优化后会抵消大部分。关键是要保持输入输出的一致性。”
陈默调出函数调用图。
十二个函数,互相调用关系复杂。他思考了几分钟,提出一个拆分方案。刘工看了,摇头。
“这样拆不够。”他说。“要把嵌套调用拉平,变成线性链。虽然逻辑上绕了弯,但结构完全不同。”
两人讨论起来。
沈清澜安静听着,偶尔插一句关键问题。屏幕上的架构图被反复修改,函数块移动,连线重画。陈默手边草稿纸上写满了笔记。
十点半,方案初步确定。
核心推理模块被拆成二十四个小函数,调用顺序完全重排。中间插入三个无效函数,用来干扰逆向分析。输入输出接口保持原样。
“测试一遍。”沈清澜说。
陈默跑测试脚本。新代码编译通过,测试数据灌进去。结果和原版完全一致,性能波动在百分之二以内。
“可以。”刘工说。“明天我帮你写自动化混淆脚本,以后每次迭代都能自动处理。”
“谢谢。”陈默说。
“不客气。”刘工笑了笑。“沈小姐付了钱的。”说完便退出了会议。
屏幕里只剩下沈清澜。她端起杯子喝了口水,看起来有些疲惫。卫衣领口歪了,露出一截锁骨。
“还有件事。”她说。“公司注册完成后,要开对公账户。我预约了下周三,你带上所有材料,我陪你去银行。”
“好。”陈默说。
“李建国的详细资料我发你了。”沈清澜揉了揉眉心。“他喜欢听具体的数字,讨厌空谈。你准备方案时,多算几笔账。成本,工期,预期效果。”
“明白。”
两人沉默了几秒。视频窗口里,沈清澜身后的书墙在暖黄灯光下显得厚重。陈默忽然想起她那本小众的外文书,关于认知科学和算法。
但他没问。
“今天先这样。”沈清澜说。“你早点休息。明天还要跑工商局,如果审核快的话。”
“嗯。”
“对了。”沈清澜正要关视频,又停住。“新办公室,感觉怎么样?”
陈默环视四周。空荡的房间,崭新的家具,窗外漆黑的夜色。他点点头。
“挺好。”他说。“有地方落脚了。”
沈清澜看着他,嘴角微扬。“那就好。”然后关了视频。
屏幕暗下去,映出陈默自己的脸。他靠在椅背上,长长吐了口气。一天下来,肩膀酸,眼睛干,但心里很踏实。
他打开邮箱,下载沈清澜发来的资料。
李建国的履历很长,从技术员做到项目总监,主导过十几个智慧城市项目。附件里还有他发表的几篇文章,文风务实,不喜虚词。
陈默快速浏览,记下关键点。
喜欢用数据说话,重视投资回报率,讨厌技术名词堆砌。他打开自己的方案,开始对照修改。把“先进的算法”改成“识别准确率提升百分之十二”,把“优化体验”改成“平均响应时间缩短零点四秒”。
改到深夜十一点。
窗外彻底安静了,园区里只剩几盏路灯亮着。他保存文件,关掉电脑。背包里拿出牙刷毛巾,去公共卫生间洗漱。
镜子里的自己眼圈发青,但眼睛很亮。
他刷了牙,用冷水扑脸。然后回到隔间,从文件柜里翻出一条薄毯子。这是白天从出租屋带过来的,洗得发白。
他把两张椅子拼在一起,躺上去。
毯子盖到胸口,不够长,脚露在外面。天花板上的消防喷头是个红点,在黑暗里微微发亮。他盯着那个红点,听着自己的呼吸声。
很累,但睡不着。
脑子里还在过今天的事。审计通过,公司注册提交,办公场地租下,算法脱敏方案确定。一环扣一环,像精密的齿轮开始转动。
他翻了个身,椅子吱呀响。
窗外忽然传来细微的声响,像是猫跳过围墙。他侧耳听了一会儿,声音消失了。远处有夜班公交驶过,引擎声低沉。
他闭上眼睛,强迫自己休息。
明天还有更多事要做。工商局,银行,供应商联系,方案细化。每一件都不能出错。他在心里默数,一件,两件,三件。
数到第七件时,睡意终于涌上来。
意识模糊前,他想起沈清澜那句话。“有地方落脚了。”是的,有地方了。虽然只是十平米的玻璃隔间,虽然是共享办公,虽然是拼起来的椅子当床。
但这是起点。
真实的,可以触摸的起点。他蜷了蜷身体,毯子裹紧了些。窗外的风声渐渐远去,沉入黑暗的深处。
半夜醒来一次。
喉咙发干,他摸到水瓶喝了一口。水凉透了,顺着食道滑下去,激得他清醒了几秒。他看了眼手机,凌晨三点二十。
园区里一片漆黑,只有安全出口的绿光幽幽亮着。
他躺回去,这次很快睡着了。梦里没有代码,没有合同,只有一片刚翻过的土地,湿润,黝黑,等着种子落下。