Blizzard 自身的錯誤處理程序隨後會終止程序,並顯示錯誤 Summary: BREAKPOINT。對使用者而言,此錯誤表現為錯誤代碼 127,並在崩潰對話框中引用
Kernel32.dll 。
3.1.0 更新更新了應用於 diablo_iv_loader.dll 的封裝器與反篡改加密 。新的封裝器使用了混淆技術,刻意插入了一個 INT3 中斷點作為反除錯和逆向工程的手段。在 Windows 上,例外分派器能透明地處理它。在 Wine/Proton 下,則會失敗
。
唯一的解決辦法是:(a) Blizzard 以與 Wine 例外處理相容的方式重新封裝載入器,移除 INT3 中斷點;或 (b) 在 Wine/Proton 層級修補,使其能攔截並處理該特定中斷點。由於載入器經過混淆且受反篡改保護,建立這樣的修補程式相當困難且脆弱。
diablo_iv_loader.dll 在 Wine/Proton 下的中斷點問題 此事件突顯了 PC 遊戲中一個反覆出現的問題:開發者例行性地更新反篡改與封裝系統,卻未針對 Wine/Proton 等相容性層進行測試。反篡改軟體被設計為在非標準環境下表現不同,而微小的變更——例如新的封裝器版本或額外的 INT3 檢查——即使遊戲本身程式碼沒有變動,也可能在無聲無息中破壞 Proton 相容性 。