Skip to content

白皮书 · 逆向工程 · 硬件、软件与神经网络

每一条结论都在硬件上验证。这就是全部方法。

当文档缺失、厂商消失、或者二进制块本身就是产品时,我们从反汇编、从跟踪、从空中信号恢复芯片真正在做的事,并用一个只回答是或否的测试台加以证明。IDA 我们从 1990 年代用到今天;自动化是新的,纪律不是。

把二进制和问题发给我们 合作是怎样进行的

427 之 427 编码器内核函数被可读的 C 代码替换,并通过与原版的跟踪比对验证
18 种 Wi-Fi 网卡在用户态被驱动起来,因为一个芯片组的固件协议从源码与空中信号被完整写成规范
30,000 行反编译代码被通读,以恢复一家厂商的升级协议——以及藏在其中的未公开账户

每个结果都在目标硬件或其逐比特精确的模型上验证;测试台在电话会议上展示。

你依赖着你读不了的东西

一个把你锁在旧内核上的内核二进制块。一个无人记录接口的无线固件。一个厂商不肯解释的模型文件。一台升级路径只能靠信任的设备。厂商的回答是一个更新的二进制块,或者根本没有回答。

用会猜的工具做逆向,比不做更糟。我们见过语言模型为一个二进制写出流畅而错误的故事。因此每一条恢复出的事实都要对照运行中的硬件核对——寄存器比对、数据包在空中被见证、输出逐字节匹配——然后才进入报告。

反编译器告诉你代码可能做什么。测试台告诉你它做了什么。

我们带来什么

四件事,每一件都在硬件上实测。

二进制块变成源码

可以构建、打补丁并带到下一个内核的内核驱动与固件。我们逐个函数替换二进制,并用跟踪比对证明等价。

证明,而非叙述

每项交付都带着自己的判据:寄存器一致性检查、带阳性对照的空中见证、逐字节相同的输出。如果一条结论无法测试,我们会直说。

神经网络也在内

二进制模型格式、加密的 SDK、被修改的权重。我们把布局恢复到寄存器映射,把修改恢复到确切被改动的层——再交给我们的边缘 AI 团队去运行。

比过去更快

AI 辅助反编译和一个自研的、带类型恢复的反编译器,让一名工程师覆盖过去需要一个团队的工作。最终发言权仍在硬件。

我们恢复过的东西

芯片

两个视频编码器内核二进制块变成了 C 代码——全部 427 个函数——在芯片的桌面模型上通过跟踪比对验证。同一厂商视觉引擎与神经引擎的洁净室驱动与原版逐字节一致,固件在当前内核上构建它们。

无线与协议

一个主流 Wi-Fi 芯片组的固件协议从厂商源码写成规范、在空中验证,如今在用户态驱动着 18 种网卡。一家摄像头厂商未公开的升级协议——以及藏在其中的账户——成了书面规范。一个电动镜头协议也以同样方式被逆向,用于自动对焦。

模型

一颗摄像头 NPU 的二进制模型格式被剖析到寄存器映射。一个加密的商用车牌识别 SDK 在运行中的容器里交出了模型布局。一个被修改的语言模型被逐权重比对,修改被精确恢复到具体的层。

目标与测试台

ARM 与 MIPS 固件内核二进制块Wi-Fi 与 USB 设备摄像头 NPU神经网络模型

我们为证明工作而搭建的测试台:在桌面上运行厂商代码的芯片模型、内核探针、USB 监视器、寄存器一致性判据、带阳性对照的空中见证,以及针对你的产品所用协议的一致性测试套件。

合作是怎样进行的

01

目标评估

固定价格,五个工作日。你提供二进制、固件镜像或设备,以及你需要回答的问题。你得到哪些可以恢复、我们将搭建什么测试台来证明、风险,以及恢复工作的固定报价。

02

项目

先搭测试台,再对照它做恢复——驱动、协议、格式或模型——每一条结论都可追溯到一个你的团队能重跑的测试。

03

维护

源码、规范、测试台与判据归你所有。每次改动之后,证明再跑一遍。

发来二进制和问题。五天后你就知道答案能否被证明。

一封四行的邮件:目标是什么、你需要从中得到什么、你能分享什么、期限。从第一封回复起就在 NDA 之下。回复你的是工程师,不是销售话术。

写信至 business@openipc.org 在群里提问

商业支持、OEM 授权与其他服务见商务页面