1 个 DLL、2 条命令:ohook 如何让 Microsoft 365 订阅版激活长期有效

发布时间:2026/8/17 18:05:23
1 个 DLL、2 条命令:ohook 如何让 Microsoft 365 订阅版激活长期有效 1 个 DLL、2 条命令ohook 如何让 Microsoft 365 订阅版激活长期有效【免费下载链接】ohookAn universal Office activation hook with main focus of enabling full functionality of subscription editions项目地址: https://gitcode.com/gh_mirrors/oh/ohook黄灯亮起的那一周距离订阅到期还有 7 天你的 Office 顶部已经亮起了黄色警告条。隔壁工位的老王却从不为这事发愁——他电脑上的 Microsoft 365 用了快两年从未续费也从未见过任何许可证提示。他上周刚被安利了一个叫 ohook 的开源项目不修改任何 Office 程序文件、不依赖在线服务器、随时可以整体撤销核心动作只是往 Office 的加载目录里放一个 DLL。你不禁要问一个 DLL 凭什么做到这些先对号入座这是不是你的处境先别急着看原理看看下面的描述哪条戳中你你在用 KMS密钥管理服务企业常用的批量激活方式方案180 天一循环每到半年就得重新激活一次你试过破解补丁但 Office 每更新一次补丁就废一次还要担心它改坏了程序本体你用的是订阅版 Microsoft 365家庭版或企业应用版想让它的完整功能持续可用你对来历不明的一键激活工具不放心希望方案透明、可逆、能解释只要中了任意一条ohook 的思路就值得你花五分钟听完。它不承诺破解只承诺回答一个问题。一句话原理给许可证检查换个翻译官Office 应用每次启动都会调用系统里的一个函数SLGetLicensingStatusInformation相当于问一句我现在的许可证状态正常吗。正常情况下系统会如实回答未授权或已过期。ohook 的做法极简把一个编译好的同名sppc.dll放进 Office 的加载目录让 Office 启动时优先加载它再把回答许可证状态这个函数替换成自己的版本。你可以把 Office 和 Windows 之间想象成有几十个接口在对话而 ohook 扮演的是那位陪同翻译其他每一句话都照实转达唯独当 Office 问许可证状态如何时翻译给出固定答案——已授权。系统文件原封未动只是 Office 听到的回答变了。项目源码里的导出表sppc.def把这件事写得很直白EXPORTS ;唯一被替换的函数 SLGetLicensingStatusInformation SLGetLicensingStatusInformationHook ;其余一切照常转发给系统 DLL部署时生成的 sppcs.dll SLCallServer SPPCS.SLCallServer SLClose SPPCS.SLClose SLInstallLicense SPPCS.SLInstallLicense看到没几十个 API 里真正动手脚的只有一个。从目标倒推让横幅消失只要三样东西目标很简单——下次打开 Word 不再看到警告。倒推回去你只需要准备三样东西一个编译好的钩子 DLL32 位或 64 位一个指向系统sppc.dll的符号链接sppcs.dll充当真身替身一把对应订阅版本的空白密钥先拉源码并编译以 64 位 Windows 为例需要 MinGW 交叉编译环境记得把Makefile里的PREFIX64改成你本机的 MinGW 路径git clone https://gitcode.com/gh_mirrors/oh/ohook cd ohook make一次make会同时产出四个 DLL普通版sppc32.dll、sppc64.dll增强版sppcplus32.dll、sppcplus64.dll。然后在管理员权限的命令行里执行两条命令示例针对 64 位 C2R 安装的 OfficeC2R 即 Click-to-Run 点击即用安装方式其加载目录在%programfiles%\Microsoft Office\root\vfs\System\mklink %programfiles%\Microsoft Office\root\vfs\System\sppcs.dll %windir%\System32\sppc.dll copy /y sppc64.dll %programfiles%\Microsoft Office\root\vfs\System\sppc.dll第一条命令让sppcs.dll指向系统真正的sppc.dll这是转发功能的地基第二条命令把你的钩子 DLL 以sppc.dll的名字放进去让 Office 优先选中它。最后给当前订阅版安装一把空白密钥SKU即产品的具体版本标识让 Office 认领对应的产品Office 版本营销名称空白密钥O365HomePremMicrosoft 365 家庭版NBBBB-BBBBB-BBBBB-BBBBG-234RYO365ProPlusMicrosoft 365 企业应用版NBBBB-BBBBB-BBBBB-BBBCF-PPK9C重启 Word警告条消失订阅版功能恢复完整。整个过程可逆删掉sppcs.dll和sppc.dll系统立即回到原状。再进一步增强版与一条 hosts 规则默认编出来的普通版足够应付绝大多数情况。什么时候需要ohook当横幅变成检查此设备许可证状态时出现问题时。这条横幅的成因是部分 Office 版本在完成本地检查后还会访问ols.officeapps.live.com查询你的订阅到期日。两种应对方式任选其一在hosts文件里加一行0.0.0.0 ols.officeapps.live.com把这次在线查询拦在门外编译时加上-DPLUS_BUILD宏得到增强版它会在注册表HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency下写入TimeOfLastHeartbeatFailure 2040-01-01T00:00:00Z让 Office 跳过对到期时间的判断两个版本的核心钩子能力完全相同差别只在侵入性维度普通版ohook 增强版钩住许可证状态检查支持支持修改注册表心跳时间不改会写入系统侵入性低较高杀毒软件误报概率更低略高建议使用场景默认首选出现订阅横幅时才用值得一说的是sppc.c里那段改动逻辑刻意保留了两处跳过堪称克制if((*ppLicensingStatusi)-eStatus SL_LICENSING_STATUS_UNLICENSED) continue; if(IsGracePeriodProduct(hSLC, ((*ppLicensingStatusi)-SkuId))) continue;未授权的产品不动宽限期产品也不动只把本该有效的许可证状态改写为已授权。这种最小干预正是它能扛住 Office 更新的原因——它从没碰过 Office 的任何文件。顺带回答一个高频疑问为什么不干脆用 Mondo 2016 许可证因为那是给老版本 Office 设计的产品策略product policy缺了不少新版条目某些新功能可能悄悄失效。ohook 用的是当前安装版本的正式许可证功能才完整。在边界之外它帮不了你什么把丑话说在前面ohook 只解决本地许可证状态这一件事依赖微软账号体系的在线功能——比如 OneDrive 1TB 存储、Python in Excel——它一概不管也明确声明不会去管钩子 DLL 的行为可能被杀毒软件误判建议从官方渠道获取文件、优先使用普通版并把相关文件加入白名单这个项目主要面向其合作伙伴发布官方不直接向个人用户提供技术支持遇到问题需要基于 readme 自行排查它不是订阅的替代品而是一个状态修正工具请始终把它当作学习与研究用途现在轮到你动手了下一步很具体clone 一份源码跑一遍make按上面的两条命令部署装一把空白密钥然后打开 Word 验证效果——整个流程十分钟内可以走完而且随时可撤销。顺手给项目点个 star关注后续对更多 Office 版本的适配遇到问题先读一遍 readme 再去仓库提 issue。最后提醒一句本文仅用于技术学习与研究请在遵守当地法律法规和微软软件许可协议的前提下使用支持正版才是长远之道。【免费下载链接】ohookAn universal Office activation hook with main focus of enabling full functionality of subscription editions项目地址: https://gitcode.com/gh_mirrors/oh/ohook创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考