作者Proviay (白鹭鸶)
看板book
标题[心得] OBOK不工作的解法
时间Fri Jan 30 08:45:39 2026
OBOK不工作的解法
OBOK就不解释了,有用过的就知道,没用过的请跳过
如果有遇到使用OBOK的时候,遇到错误讯息,不能使用
No userkeys found to decrypt books with. No point in proceeding.
请检查你的Windows是不是24或是25年版本,因为微软把WMIC给关闭或移除了
而OBOK需要WMIC
实际去探究真相,OBOK身为一个Calibre的外挂(plug-in)需要取得本机的MAC位置,拿来
当作deDRM解密的关键之一。
OBOK取的MAC位置,有用两种方法
首先是呼叫ipconfig/all,来取得
然而在非英语(拉丁)语系的Windows,往往呼叫ipconfig时,回传的不是Unicode,例如繁
中Windows回传的就是Big-5;撰写OBOK的作者没有考虑到这个,所以第一步在繁中
Windows始终是失效的,没能拿到MAC位置
第一步没成功,就会使用第二步,呼叫WMIC来取得MAC位置
然而微软因为安全理由,在Windows11的新版本把WMIC移除了,所以第二步也失效了
OBOK没能拿到MAC位置,不能正常工作
解决方法有二
一是把WMIC给装回来
开启POWERSHELL(管理员模式)
DISM /Online /Add-Capability /CapabilityName:WMIC~~~~
大概要花几分钟
完成後,输入 wmic /? 测试,如果出现一大串帮助文字,就代表安装成功了
另一个方法不用装WMIC
而是修改OBOK内呼叫WMIC那段程式,把它改成呼叫powershell
请去找到OBOK这个plug-in所在地
可能在(使用者请自行替换成你电脑的实际名字)
C:\Users\使用者\AppData\Roaming\calibre\plugins\Obok DeDRM.zip
将zip档内的obok.py内的指令替换掉
替换原始代码 (大约在Line 440)(原本try except的except那段):
原来
output = subprocess.Popen('wmic nic where PhysicalAdapter=True get
MACAddress', shell=True, stdout=subprocess.PIPE, text=True).stdout
替换成
# 使用 PowerShell 替换原本的 wmic 指令,以相容 Windows 11 25H2
ps_cmd = "powershell -NoProfile -ExecutionPolicy Bypass -Command
\"Get-NetAdapter | Where-Object { $_.Status -eq 'Up' } | Select-Object
-ExpandProperty MacAddress\""
output = subprocess.Popen(ps_cmd, shell=True, stdout=subprocess.PIPE,
text=True).stdout
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.164.49.14 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/book/M.1769733941.A.01A.html
1F:推 skyhawkptt: 感谢详细解说! 01/30 13:44
2F:推 smallce: 推实用内容 01/31 14:37