作者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/m.aspx?n=bbs/book/M.1769733941.A.01A.html
1F:推 skyhawkptt: 感謝詳細解說! 01/30 13:44
2F:推 smallce: 推實用內容 01/31 14:37