2008年 1月的广州,冷空气来得猝不及防。
我刚在机房改完“开心农场”的离线收益优化代码,手里还攥着没捂热的保温杯,市场部的小林就顶着风冲了进来。
手里捏着一张打印纸,脸色比外面的天气还白。
“刘总,出事了!”
他把纸往我桌上一放,声音发抖。
“我们监测到欧朋浏览器的测试版,里面有段渲染代码,跟咱们 UE的内核长得太像了——你看,这是他们的反编译片段,跟咱们去年内核重构时加的‘动态渲染优化模块’,连变量名的命名习惯都一样。”
我心里“咯噔”一下,接过纸凑到屏幕前。
欧朋是当时国外的浏览器巨头,之前一直没深耕国内功能机市场。
现在突然冒出的测试版,居然带着 UE的核心代码痕迹?
我立刻打开电脑,让小林把欧朋的测试安装包传过来。
又喊老张过来:“张哥,帮我一起拆这段代码,重点看渲染模块。”
老张放下手里的服务器维护手册,搬着椅子坐过来。
我们用反编译工具一点点拆解欧朋的安装包。
当那段渲染代码完整呈现在屏幕上时,两个人都沉默了。
function optimizeRender(node, flag),函数名和咱们 UE内核里的一模一样,甚至连处理异常节点的判断逻辑,都带着我当时为了兼容老机型加的“if (node.type === 3 && flag === false)”这段特殊判断。
“这不是巧合。”
老张手指点着屏幕,语气肯定。
“这段代码是咱们内核重构时的核心优化点,当时为了避开专利,特意改了三次逻辑,欧朋不可能‘碰巧’写出一样的。”
我没说话,脑子里飞快过着可能的漏洞。
代码库的访问权限、核心成员的操作日志、外部合作时的保密协议……
突然想起上个月曾庆国找过我,说“想看看内核的渲染模块,帮新入职的工程师做培训”,当时我没多想,让运维给他开了一周的只读权限。
“立刻锁死代码库!”
我抓起手机拨给运维组。
“关闭所有非核心成员的访问权限,包括只读权限,核心模块的修改必须双人审核,每一步操作都要留痕。另外,导出最近三个月所有访问过内核代码的日志,特别是渲染模块的访问记录。”
挂了电话,我对着屏幕上的代码片段,心里又沉又堵。
内核重构花了我们八个月,团队熬了无数个通宵。
从最初的架构设计到最后的兼容性测试,每一行代码都浸着大家的心血。
现在居然出现泄密的苗头!
要是真被欧朋拿去用,不仅 UE的技术优势没了,之前的市场积累也会被冲击。
“得成立专项调查小组。”
老张看着我。
“不能声张,先内部排查,免得打草惊蛇。我负责追溯代码的传播路径,小李对日志敏感,让他查访问记录,再找法务部的同事一起,万一涉及外部泄密,也好留好证据。”
我点点头,立刻让人通知小李和法务部的王律师过来。
半小时后,四个人围在会议室里,桌上摊着代码对比图和权限访问清单。
小李盯着日志屏幕,手指飞快滑动。
“刘哥,最近三个月访问过渲染模块的有 12个人,除了咱们核心团队,就只有曾总在上个月申请过只读权限,他的账号在 1月 5号晚上 11点,下载过渲染模块的完整代码包。”
“下载?”
我皱起眉。
“他当时说只是看,怎么会下载?”
“日志显示是‘打包下载’,格式是 ZIP,”
小李把日志截图放大。
“而且下载 IP是他家里的宽带 IP,不是公司内网。”
法务部的王律师推了推眼镜:“如果能证明他下载的代码跟欧朋测试版里的一致,就可以认定他违反了保密协议。但现在还不能确定,欧朋的代码是不是从他这里来的,得再查他的外部传输记录。”
我让小李继续查曾庆国的邮件和即时通讯记录,自己则翻出之前的保密协议。
所有接触核心代码的成员,都签过“不得向外部传输、复制核心代码”的条款。
一旦违反,不仅要赔偿,还要承担法律责任。
下午的时候,钟佳琪给我发了条消息,问我“晚上要不要一起吃饭,安安说想你了”。
我看着消息,心里一阵恍惚。
想起跨年夜安安拉着我和菲菲的手说“希望你们都能陪爸爸”,再看看眼前的泄密危机,突然觉得肩上的担子更重了。
不仅要守住团队的心血,还要守住对安安的承诺,守住对曼丽的约定。
我给钟佳琪回了句“今晚要加班,等忙完这阵再陪安安”,就把手机调成了静音。
小李那边有了新发现。
“刘哥,曾总在 1月 6号早上,用私人邮箱给一个国外的邮箱地址发过附件,附件大小刚好跟渲染模块的 ZIP包差不多,但邮箱地址是匿名的,查不到归属。”
本小章还未完,请点击下一页继续阅读后面精彩内容!