Windows 共享源文件是否编译为与零售版本相同的二进制文件?

信息安全 视窗 源代码 代码审查
2021-09-04 13:13:12

Microsoft 将 Windows 源代码提供给某些第三方组织,例如美国和外国政府、大学等。这是他们的共享源计划

这是一套完整的 Windows 源文件,是否可以用它构建整个操作系统?如果是这样,生成的二进制文件是否与当时的官方 Microsoft 二进制文件完全相同?

当然,这个问题的原因是要知道是否有一些“独立”组织可以在 Windows 安全组件中找到后门。

假设作为共享源计划一部分的俄罗斯FSB刚刚收到一堆声称是“真实的东西”的源文件。他们不是只有在能够构建操作系统并将它们与零售二进制文件进行比较后才会感到满意吗?

他们将如何对他们的任何发现做出反应是另一个问题。

如果他们需要 Microsoft C++ 编译器来构建操作系统,他们是否也能获得相应的资源?

1个回答

有不同级别的访问权限,这取决于特定的 NDA 和签署的协议。这些是我从公开讨论中得出的观察结果。

据我所知,没有任何级别允许直接检出代码以进行编译。这一切都采用美化的格式,类似于 Github 等人展示代码的方式。有权访问的人可以复制文件没有问题,但他们不能进行批量导出或结帐。

大多数 Windows 是用 C 编写的,而一些较新的东西是用 C++ 编写的,很少用汇编编写。有人可以使用标准的 MS 编译器编译代码(假设他们得到了正确的版本),但是为了制作必要的 DLL 和 EXE,他们需要知道它是如何构建的,他们需要各种 MAKE 和相关文件,而这些文件可能不是t 出现在任何协议中。至少它们不存在于特权较低的协议中(呃。据说。保密协议使得无法详细解释实际存在的内容,因为那些知道无法分享或承认他们有权访问的人。;))。如果有人可以构建,结果可能会有所不同,因为在发货时可能会有一些编译后/预打包过程。

有趣的是,可以访问某些 Windows 组件的编译器符号。这允许开发人员在调试时更轻松地遵循代码路径。在符号和浏览器访问源之间,有人可能会寻找错误/后门/任何东西。

然而,在这样的代码中寻找问题比某些人想象的要复杂。Windows 中有数以百万计的代码行,如果您不熟悉这些文件的结构,它可能看起来很不稳定。

编辑:理论上代码是相同的,否则它有点违背共享代码的目的。不过,对于补丁等内容的代码更新频率尚不清楚。是否真的是相同的代码,嗯......谁知道。