晚上九点,燕京前往首都机场的机场高速上。
一辆黑色红旗轿车平稳行驶,韩栋坐在后排,视线看着车窗外的路灯光影。
袁珊坐在副驾驶位置,转头递交一份简报。
“五封匿名加密邮件已经确认被目标邮箱读取。”袁珊汇报进度。
“开曼群岛的物理服务器已经执行了底层低级格式化,中间跳转的四个代理节点全部清空了日志记录。
西门子或者任何第三方机构,都无法顺藤摸瓜追踪到启航集团的网络地址。”
韩栋接过简报,扫了一眼上面列出的五个名字。
科软信息李辉、远洋软件王志强、川控科技赵立国、北斗数采孙延明、华南智造周建平。
“各大官方行业媒体这几天的发稿情况有变化吗?”韩栋将简报放在一旁。
“没有任何改变。”袁珊调出几份主要报纸的版面目录。
“《华夏机床通讯》和《工业电气世界》还在连篇累牍地刊登专家评论,将设备瘫痪的原因归咎于国产数据采集软件的代码缺陷。
西门子华夏大区公关部,正在密集走访各大制造企业,发放所谓的标准认证规范手册。
他们在进一步压缩国产软件的生存空间。”
“这种由资本运作的单向舆论倾销,持续不了太久。”韩栋声音平静。
“证据的引信已经点燃,基层技术人员对物理事实的认知,会直接粉碎这些纸面文章。
明天天亮后,立刻启动应对方案。”
袁珊拿出随身笔记本记录。
“收集外媒过去三年内,关于西门子S系列控制器在海外发生的所有安全故障报道原件。
不需要任何中文翻译,保持全外文影印版的原始形态,直接通过我们在各大技术论坛注册的账号进行散发。
让国内的独立工程师和高校学者自己去查阅解读。
我们需要给那些即将爆发的国产软件商提供一个外部的侧面印证。”韩栋下达指令。
“明白韩总,资料库已经准备就绪。”袁珊合上笔记本。
轿车停在航站楼的出发大厅门外。
陆佳杰提着那个装有反汇编报告的黑色密码箱,走到车门边。
韩栋推开车门下车,冷风卷着北方的干燥气息迎面扑来。
他看向长沙的方向。
今晚之后,华夏工业软件生态的格局将发生根本性转折。
深市,南山区科技园。
晚上十点三十分。
科软信息技术有限公司的办公大厅已经空无一人,总经理周志刚带着大批员工提着便携式示波器赶赴各大客户现场。
测试室内灯光依然刺眼。
技术总监李辉站在实验台前,盯着面前那台被拆开外壳的西门子S-1500主控模块,两名初级硬件测试工程师站在他身后。
“老大,周总他们去现场拔网线测周期,已经能说明问题了,我们为什么还要留在实验室拆板子?”
测试工程师小王看着李辉手里的恒温热风枪。
“示波器测量到的周期变长,在物理层面上只能证明系统变慢了。”
李辉打开热风枪电源,设定温度为三百五十度。
“如果西门子不要脸,发个技术公告,声称是咱们的网关软件在以太网口发送了庞大的冗余握手包,直接塞满了总线带宽,从而导致PLC处理速度下降。
咱们拿什么反驳?没有权限进入他们的系统后台看进程。”
李辉拿起一把防静电镊子。
“咱们要给西门子定罪,只有现象不够。
要拿到能够提交给法庭和相关部门的底层代码实锤,那封匿名邮件给指了路,我现在就要去那条路上看看到底有什么。”
热风枪的风嘴对准了电路板左上角的那颗黑色ROM存储芯片。
高温气流持续吹扫引脚,十秒钟后,焊锡呈现液态的光泽。
李辉手中的镊子轻轻夹住芯片两侧边缘,向上微提,芯片顺利脱离焊盘。
旁边的工作台上,放着一台进口的高精度通用编程器。
李辉将那颗刚拆下来的ROM芯片放入编程器的烧录座内,压下侧面的金属锁紧拨杆。
他转身面对电脑屏幕,打开读取软件,选择对应的芯片封装和容量型号,点击读取按钮。
编程器上的数据指示灯开始快速闪烁。
十六兆字节的底层物理数据开始向电脑硬盘转移,李辉双眼紧盯屏幕上的进度条,五分钟后,系统提示镜像文件导出完成。
李辉直接启动十六进制编辑器,将生成的二进制镜像文件拖入操作窗口。
黑白相间的界面上布满了密密麻麻的数字和字母。
他呼出地址跳转对话框,在键盘上敲入那串匿名邮件中提供的内存地址:0x00F9A000。
回车键按下。
屏幕画面瞬间下切。
一整块结构严密的代码阵列出现在视线正中央。
李辉从工作台旁边,拿起那份打印出来的匿名反汇编报告。
他的视线在纸质报告和电脑屏幕之间快速切换。
第一行汇编指令机器码:55 8B EC……
完全一致。
第二行跳转指令机器码:E8 AC 10……
一字不差。
李辉咬紧牙关,咬肌在侧脸凸显。
他继续向下拉动软件滑块。
从0x00F9A000到0x00FA5CCB,整整四万八千三百三十二个字节。
这47.2KB的数据块,占据了原本应该是出厂保留区的空白扇区。
这证明匿名邮件,不是某个人恶意伪造的凭空猜测。
这台从未离开过科软测试室,仅仅连过公网进行系统升级的备用PLC,体内已经被真真实实地植入了这段锁死代码。
“把这段数据块选中,单独提取出来,计算它的哈希值。”李辉对身后的小王下达指令。
小王敲击键盘,提取数据生成文件,右键点击属性,计算工具运行完毕。
屏幕上生成了一串三十二位的字母与数字组合。
李辉看着这串代表着数据唯一身份的特征码。
他走向办公桌,拉开抽屉拿出一本通讯录,拿起桌上的座机听筒。
现在是凌晨一点。
杭城,远洋软件开发中心。
技术总监王志强正坐在测试台前抽烟。
他的面前同样摆放着一台被拆解的西门子PLC,旁边是刚刚完成读取的编程器。
他正在进行与李辉完全一样的逆向验证操作。
座机铃声在安静的实验室里显得极其刺耳,王志强接起电话。
“老王,我是科软老李。”电话那头直接报出身份。
“深市发出的那一封匿名邮件,你收到了吗?”
“正在验证。”王志强直接回答。
“代码挖出来了,地址分毫不差,我正在单独剥离这块补丁。”
“跑一下MD5。”李辉提出要求。
两分钟后,王志强对着电话报出一串字符。
李辉看着自己屏幕上的那串哈希值,每个字符都对上了。
“我这边的结果跟你完全相同。”李辉握紧电话听筒。
“这意味着,无论我们在深市还是杭城,无论这是你们的备件机还是我们的测试机,西门子推送的底层恶意代码是分发制式的全局同构版本。”
“老李,这说明不是我们在技术上输了。”王志强心中充满怒火。
“这说明我们五家,乃至全国三十二家做工业数采的同行,是被一双巨手直接按在了砧板上。”
“建立一个加密连接。”李辉说道。
“把川控的老赵、北斗的老孙和华南智造的老周全拉进来,咱们几家需要信息对齐。
不要用常规电话了,直接开个局域网聊天室。”
凌晨两点十五分。
五个位于华夏不同城市的IP地址,同时登录了一个架设在海外隐秘服务器上的纯文本终端聊天室。
黑色背景的屏幕上,跳动着白色的光标。
没有语音,只有单纯的字符交流,但这屏幕背后连接着五位华夏顶尖的工业底层架构师。
聊天室ID李辉(科软):
“我拆的是今年一月出厂的S-1500,硬件版本V2.1。”
聊天室ID王志强(远洋):
“去年十一月出厂,版本V2.0。”
聊天室ID赵立国(川控):
“我让现场工程师连夜从一家倒闭的食品包装厂扒下来的报废板子,前年出厂,版本V1.8。”
聊天室ID孙延明(北斗):
“全新备件,只插过一次网线进行初始化。”
聊天室ID周建平(华南智造):“我刚读完数据。”
李辉将那串MD5哈希值发送在公屏上。
随后屏幕上整齐地出现了另外四条相同的哈希值回复。
完全一致。
跨越三年出厂时间、五个不同硬件版本的设备,只要接触过西门子的远程维保网络,都在同样的内存地址被塞进了这一模一样的47.2KB数据。
屏幕上一时间陷入短暂的停顿,所有人都清楚这个结论的分量。
孙延明发送消息:
“我在仔细研究那段反汇编报告的逻辑触发条件,这是一个极其下作的三段式打击。”
“第一步,以太网物理层MAC芯片进行协议嗅探。
只要咱们发送的不是他们自家专属的PROFINET协议包,中断向量表就被强行改写。”
周建平跟进:
“第二步是最致命的,截获主频分频器。”
“这直接剥夺了微控制器的运算算力,从5毫秒拖延到50毫秒,刀具走位直接错过物理设定点。”
“这种拖延在操作日志里完全不留痕迹。”
赵立国发送消息:
“我看重的是第三步,面板欺骗模块。”
“西门子调用了系统最底层的安全特权指令,将人机交互界面的显存映射地址强行锁定。”
“扫描周期明明变成了50毫秒,屏幕却卡在5毫秒。”
“这就导致现场的设备操作工根本无法做出应对,如果这是重型冲压机床发生类似降级拖延,显示屏却报平安,重块压下来会出重大事故的!”
“这种代码,已经违背了工业控制保护生命安全的最根本底线!”
孙延明的字符快速出现:
“他们利用了咱们与客户之间的信息壁垒。
客户相信那块德国屏幕上的绿灯,客户不懂底层。”
“屏幕显示没问题,机器出了次品,那就是刚加装的国产软件的错。
西门子一滴血不沾,借客户的手把我们全部清场。”
愤怒的情绪通过黑白屏幕传递。
五家公司原本在市场份额上存在激烈竞争,经常因为抢夺一个重型机械厂的数据网关订单而大打价格战。
但这一刻,这种底层架构上的无差别清洗,让他们感受到了一致的屈辱。
李辉双手在键盘上快速敲击:
“我这边的总经理周志刚,已经带着人去客户现场拔网线展示现象了。”
“但那不够,客户看不懂反汇编代码,要把证据具象化。”
王志强提问:“老李,你有什么计划?”
李辉:“写一个可视化读取工具。”
“把今晚提取出来的数据特征码做成查杀逻辑,软件界面做成最简单的傻瓜式设计。”
“连上网线,点击扫描。
如果目标PLC里有这个47.2KB的补丁,屏幕直接变成红色警告界面。”
“把那个被欺骗的50毫秒真实周期值,用折线图显示在客户眼前。”