ohook
一个通用的 Office“激活”钩子,主要专注于启用订阅版的全部功能。
本项目主要面向我们的合作伙伴发布。我们不会直接向用户提供任何形式的支持。
安装
在 64 位 Windows 版本上运行 64 位 C2R Office 的示例步骤:
- 在 Office C2R
System目录中创建系统sppc.dll的符号链接,命名为sppcs.dll:
mklink "%programfiles%\Microsoft Office\root\vfs\System\sppcs.dll" "%windir%\System32\sppc.dll"
- 将 hook 库复制为
sppc.dll到 Office C2RSystem目录
copy /y sppc64.dll "%programfiles%\Microsoft Office\root\vfs\System\sppc.dll"
3.(可选)对于某些显示“检查此设备的许可证状态时出现问题”横幅的 Office 版本,您可能需要在 hosts 文件中添加以下内容:
0.0.0.0 ols.officeapps.live.com
- 安装您想要使用的版本的空白密钥。
请注意,这些步骤仅为示例,且基于我们的内部测试。如前所述,不会为使用此方法提供直接支持。您应使用由我们的授权合作伙伴提供的解决方案,并将支持查询直接提交给他们。
空白键
该表格包含可能最常用版本的按键。
| Edition | Marketing Name | Key |
|---|---|---|
| O365HomePrem | Microsoft 365 | NBBBB-BBBBB-BBBBB-BBBBG-234RY |
| O365ProPlus | Microsoft 365 Apps for enterprise | NBBBB-BBBBB-BBBBB-BBBCF-PPK9C |
这到底是怎么运作的?
正如有些人所说,“这很简单。”
-
使用复制到 Office 中
System目录的sppc.dll,而不是系统库。 -
唯一的真实许可证检查是在 Office 应用程序启动期间使用
SLGetLicensingStatusInformation函数执行的。 -
SLGetLicensingStatusInformation函数可以轻松被挂钩以谎报激活状态。
FAQ
为什么不直接使用带有 Mondo 许可证的订阅版本?
这很可能是被问得最多的问题。
虽然 Mondo 2016 许可证允许所有 Office 应用程序运行并支持 KMS 激活,但这些许可证仅针对较新版本的 Office 进行了部分更新。因此,这些许可证提供的产品策略缺少较新版本许可证中的一些策略。由于 Office 产品策略主要由诸如 office-UUID 之类的条目组成,因此无法验证哪些功能可能无法正常工作。
使用此方法,使用的是已安装版本的正确许可证,这意味着所有功能都应按预期工作。
从其他版本安装许可证文件时还存在其他问题,但我们不会在此赘述。
为什么在某些情况下需要修改 TimeOfLastHeartbeatFailure 或 hosts 文件?
在许可证检查之后,某些 Office 版本会向 ols.officeapps.live.com 服务发起请求,以获取用户订阅的到期日期。这是为了评估本地许可证是否应续期。由于该服务回复称设备没有关联的订阅,因此会显示通知。将 TimeOfLastHeartbeatFailure 设置为未来的某个日期或修改 hosts 文件,可以阻止 Office 执行此检查。
这能否启用 OneDrive 的 1TB 存储空间、Excel 中的 Python 或其他在线功能?
不能。
ohook 与 ohook+
常规 ohook 构建仅提供从系统挂钩许可证状态响应的基本功能。
ohook 的“plus”构建除了常规 ohook 的功能外,还会修改注册表中的 TimeOfLastHeartbeatFailure 值,以防止在线订阅检查。
通常建议使用常规 ohook 构建,因为它对系统的侵入性更小,且更不容易被防病毒软件误报。
License
该项目根据 MIT 许可证的条款授权。