news 2026/8/20 13:01:40

订阅过期横幅又弹出来?ohook 帮 Microsoft 365 全功能满血复活

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
订阅过期横幅又弹出来?ohook 帮 Microsoft 365 全功能满血复活

订阅过期横幅又弹出来?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

如果你用的是订阅版 Office,也就是 Microsoft 365,多半见过那条刺眼的横幅:"你的订阅已过期,部分功能不可用"。本文要介绍的 ohook,正是一个让订阅版 Office 全功能可用的开源"激活钩子":代码量极小、不碰系统核心、部署只要几条命令,而且随时可逆。

上周同事阿凯在周会上忍不住吐槽:他的 Excel 高级图表灰了,Word 的专业模板没了,每次保存都要先点掉一个激活弹窗。他算了一笔账——一年订阅费几百块,换算下来够吃两顿火锅。我问他:"要不要试试一条'野路子'?"于是我们花了大概一首歌的时间折腾完,他的 Office 恢复了满血状态,横幅再也没出现。

摆在他面前的两条路,也是你面前的两条路

遇到订阅过期,无非两条路:

路线做法花销心态
路线 A乖乖续费每年几百省心省事,就是钱包疼
路线 B部署 ohook0要动手,还要懂一点原理

路线 B 之所以值得考虑,是因为 ohook 是一个完全开源的小工具(MIT 协议),所有源码都摆在仓库里,随便翻、随便审查。它的目标非常单纯:让订阅版 Office 的本地功能全部可用,不做破解补丁、不伪造证书那套事。

一句话版本:Office 启动时会问系统"我有没有有效许可证?",ohook 守在中间,替系统回答"当然有"。

它到底动了什么手脚?一个"对账单"的比喻

把原理讲得生活化一点。

Office 每次启动都要查一遍自己的"许可证账本",确认资格是否有效、还剩多少天。正常情况下,这本账由系统的软件授权服务统一管理,Office 只需要按规定翻一翻。

ohook 的做法很取巧:它把自己伪装成一个同名 DLL(sppc.dll),放进 Office 自己的目录里。Office 启动时会优先加载它,于是每一次"翻账本"的动作,都落在了 ohook 手上——ohook 把系统返回的"未授权"当场改写为"已授权",把到期时间清零,然后再把其余查询原样转发给真实的系统库。

整个过程发生在内存层面,没有任何许可证文件被伪造,系统目录里的文件也一个没动。这就是它"干净"的地方:唯一被改变的,只是 Office 加载 DLL 的位置。删除文件即卸载,可逆性拉满。

整个项目的核心逻辑集中在一个 C 文件里(sppc.c),构建后产出的就是那个小小的 DLL。没有后台服务、没有常驻进程、没有庞大的运行时依赖,简洁得有点"朴素"。

上手:三步部署,再加一个可选步骤

动手之前,先做三件确认:

  • 确认 Office 是 C2R(Click-to-Run)安装模式,安装路径下存在root\vfs\System目录
  • 确认位数匹配:32 位系统配 32 位 DLL,64 位配 64 位,不要混用
  • 全程使用管理员身份打开命令行

下面以最常见的"64 位系统 + 64 位 Office"为例。

第 1 步:拿到钩子文件

把项目克隆到本地(也可以直接用编译好的sppc64.dll,省去自己编译的麻烦):

git clone https://gitcode.com/gh_mirrors/oh/ohook

这一步只是把文件拿到手,没有任何"安装"动作。

第 2 步:铺一条"回廊"

在 Office 的目录里创建一个符号链接,指向系统的真实许可库:

mklink "%programfiles%\Microsoft Office\root\vfs\System\sppcs.dll" "%windir%\System32\sppc.dll"

作用:给 Office 留一条通往"真实系统许可库"的通道,让钩子 DLL 把自己不处理的调用转交给它。系统文件本身保持原样。

第 3 步:放钩子 + 装空白密钥

把钩子 DLL 复制进 Office 目录,替换掉它的加载位置:

copy /y sppc64.dll "%programfiles%\Microsoft Office\root\vfs\System\sppc.dll"

然后为你的版本安装对应的空白密钥:

Office 版本营销名称空白密钥
O365HomePremMicrosoft 365 家庭版NBBBB-BBBBB-BBBBB-BBBBG-234RY
O365ProPlusMicrosoft 365 企业应用版NBBBB-BBBBB-BBBBB-BBBCF-PPK9C

重新打开任意 Office 应用,横幅消失,灰掉的功能全部点亮。

可选第 4 步:处理"检查许可证"横幅

部分版本重启后可能弹出"检查此设备许可证状态时出现问题"的提示,这是 Office 在偷偷联网核对订阅到期时间。两种处理任选其一:

  • 在 hosts 文件里加一行0.0.0.0 ols.officeapps.live.com,直接阻断联网核对
  • 换用 plus 版钩子,它会在注册表写入一条未来的"心跳失败时间",让 Office 跳过在线检查

四个高频疑问,一次说清

Q1:为什么不用现成的 Mondo 授权方案?

Mondo 2016 授权虽然能让各组件跑起来、也支持 KMS,但它对较新版本的 Office 只做了部分更新,策略条目不完整,某些功能可能悄悄失效。ohook 用的是你当前版本对应的正确许可证,每个功能都按设计工作。

Q2:普通版和 plus 版怎么选?

普通版只做"应答"这一件事,对系统改动最小,也最不容易被安全软件误报,日常优先用普通版;只有出现横幅提示时才考虑 plus 版。

Q3:能解锁 OneDrive 1TB、Python in Excel 这些在线功能吗?

不能。这些依赖微软云端的账号体系,钩子拦不住。

Q4:Office 更新之后还能用吗?

Office 升级可能覆盖掉目录里的钩子文件,偶尔需要重新部署一次。它不是"装一次管三年"的免维护方案,动手前要有这个预期。

什么时候该果断放弃 ohook?

场景结论
想要 OneDrive 1TB、Python in Excel 等云端能力别指望它,钩子管不到云端
Office 不是 C2R 安装模式直接划走,不适用
完全不想动手、不想看任何原理可能会折腾出一肚子火
接受不了杀毒软件告警钩子类工具可能触发误报,需要加白名单
需要官方技术支持作者明确不为普通用户提供直接支持

它诚实的地方在于:解决的是"本地订阅功能解锁",解决不了任何云端能力。这不是缺陷,而是它刻意保持的克制。

最后,把选择权交给你

一边是每年几百块的订阅费,换来省心与官方保障;一边是几分钟的部署,换来本地全功能,但需要你懂一点原理、承担一点风险。

你更看重哪一边?如果你已经部署成功,欢迎在评论区聊聊你的 Office 版本和踩过的坑,帮后来人少走几步弯路。

⚠️ 合规提醒:本文所述内容仅用于技术研究与学习目的。请在遵守当地法律法规及软件许可协议的前提下使用,有条件请支持正版,尊重开发者的劳动。

【免费下载链接】ohookAn universal Office "activation" hook with main focus of enabling full functionality of subscription editions项目地址: https://gitcode.com/gh_mirrors/oh/ohook

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/20 12:59:23

构建信心驱动的移动端智能体:从不确定性量化到鲁棒操作

1. 项目缘起:当大模型助手遇上移动端,为何“自信”成了关键? 最近在捣鼓各种基于大语言模型(LLM)的移动端智能体,也就是常说的 MLLM-based Mobile-Using Agents。说白了,就是让 AI 助手能像真人…

作者头像 李华
网站建设 2026/8/20 12:57:52

std1.97.1——fmt模块总览

目录0. 准备0.1 查看当前toolchain的std文档0.2 语法和词法结构1. std::fmt2. 格式化字符串2.1 位置参数2.2 命名参数2.3 格式化参数2.3.1 宽度2.3.2 填充/对齐2.3.3 标志2.3.4 精度2.3.5 本地化2.3.6 转义3. 语法4. Trait4.1 实现Display trait4.2 Display与Debug的区别5. 宏5…

作者头像 李华
网站建设 2026/8/20 12:57:30

ARM开发入门指南:从架构认知到实战环境搭建

1. 为什么说“了解完这些再学ARM也不迟”? 每次看到有朋友兴致勃勃地打开一本《ARM体系结构权威指南》,或者准备一头扎进某个嵌入式开发板的教程时,我总想先拉住他聊上几句。不是要泼冷水,而是因为我自己在ARM这条路上踩过的坑&am…

作者头像 李华
网站建设 2026/8/20 12:54:32

python的运筹学工业场景模拟第六十八篇:读取历史故障报修记录,统计故障到达速率,维修耗时,输出排队论M/M/S模型输入参数。

维修“算账师”:用Python从故障记录里算清 M/M/S 排队论输入参数 “某汽车焊装车间有 4 名维修工,每天处理 20~30 起设备报修。班长总觉得‘人不够’,申请再加 2 人,一年人力成本 多 18 万。后来我用 Python 读了 3 个月的历史报修…

作者头像 李华