2020年5月,Windows NT 3.5 build 782源代码被泄露。然而,它缺少很多文件,包括编译器、链接器、头文件等。大多数这些工具都可以从 Windows NT 3.5 的 SDK 和 DDK 中应用(您也可以临时处理 NT 3.51 的 DDK 文件,但之后根据需要替换它们)。在大多数情况下,NT 3.5 的源代码是相当可编译的!特别是NTOS文件夹,它保留了系统的内核和基础。
作为其可编译性的一个例子,有一个例子:
首先
,确保您满足以下要求
- 具有 Windows 2000 或更早版本操作系统(最高 NT 3.1)的虚拟机
- 至少 15 GB 可用空间
- 有点耐心。
然后执行以下步骤:
- 下载 NT 3.5 的源代码并将其解压到C:\NT中。否则它不会将物品装箱并导致一些错误。
- 通过此链接下载补丁:
- CSDN https://download.csdn.net/download/MYMOTOE6/88755179
- https://drive.google.com/file/d/19FJj26Scdz3I3hx6mms7rBYNROX9UvKs/view?usp=drive_link
- 并将NT文件夹解压到源代码文件夹中。单击“是”并替换所有文件。
- 打开命令提示符,切换到C:\NT并写入attrib -r -h * /s /d以删除属性。如果您使用的是 Windows XP及更高版本,只需取消选中文件夹的“只读”即可。
- 然后写入public\tools\razzle
- 如果它要求放置文件,请选择“F”。它从ntx86bld文件夹复制文件。
- 你完成了!
请注意,不建议 安装 Visual Studio ,因为它们会导致构建问题。
更改日志
更改了什么?
- Razzle 经过编辑以支持任何用户。在此之前,Razzle 仅支持 DEVELOPR 文件夹中的预定义用户(ntx86bld、alphachk 等)。还将 OAK\I386 添加到路径中。
- 编译所需的大部分工具都是借助NT 3.5 612 build 的SDK 工具和NT 3.51 的DDK 工具编译的。编译的文件被替换为临时文件。
- 一些标头已部分修复,需要编译。结果,大多数组件开始编译。
- 通过从 OpenNT 源代码移植加密文件问题,修复了加密文件问题。唯一缺少的加密是 CBC,但它可以在没有加密的情况下进行编译。
当前的问题
- 此时,并非WINDOWS文件夹中的所有组件都可以编译。wingdip.h文件应该被替换和/或修复为可用的文件。
- 编译WINDBG文件夹时,弹出未定义函数导出的错误。
- 某些包含自定义编译器(例如用于 DOS 的 CL.exe)的文件夹无法使用主编译器进行编译。
- 新补丁版本v2已上传!下载它:https://drive.google.com/file/d/1GQugCC ... sp=sharing
变化 - 修复了RC和RCPP文件的问题,这些文件因错误而关闭,导致大多数文件损坏
- 修复了WINDOWS标头问题
- 更改了DIRS文件以包含OPTIONAL_DIRS参数中的所有目录
- Razzle 已改进,无需确认即可复制环境文件
- NET文件夹可以无任何错误地构建
- 您是否意识到您只需在每个包含它的目录中运行 nmake /f makefil0 ,它就会生成头文件?
并且您不必修改目录文件,只需
设置 BUILD_OPTIONS=[optional_dirs_here_separated_by_space_without_brackets]
当您遵循这些操作时,您不必做几乎同样多的修改或调整,您将获得更大的成功,包括工作的 Windbg 。
这是直接的、几乎未触及的来源。我只真正使用了我的构建工具和稍微修改过的 razzle,将用户设置为 NTRETAIL。