README.md

DUNGEON REBORN 外掛(v3)

DUNGEON REBORN 的 Tampermonkey 外掛。v3 起支援作者 2026-10-15 之後加了混淆的新版遊戲;請用 3.1.0 以上,3.0.0 在 Tampermonkey 裡會讓遊戲無法開始。目前版本 3.2.0。

完整的逆向紀錄寫在 Blog:https://blog.siao.ai/dungeon-reborn-userscript

功能

安裝

  1. 裝 Tampermonkey。 Chrome 還要到 chrome://extensions → Tampermonkey「詳細資料」→ 打開「允許使用者指令碼」(找不到就先開「開發人員模式」)。
  2. 點一鍵安裝,在 Tampermonkey 跳出的畫面按「安裝」。已經裝過 v2.5 的話,Tampermonkey 會顯示「更新」。
  3. 打開遊戲,右上角出現面板就成功了。桌面版按 ` 收合,手機點標題列展開。

面板沒出現的話:

只想看原始碼、不安裝:DungeonRebornMod.user.js。這個連結只會打開檔案頁,會跳安裝畫面的只有「一鍵安裝」。

檔案

路徑 內容
DungeonRebornMod.user.js 安裝用的外掛,由 reverse/build-mod.mjs 產生
src/mod-core.js 外掛本體(面板與所有功能)。3.1 以前跟 v2.5 一樣,3.2 起補上寶箱、分身、Boss 詛咒等新機制。第 3 行的 NEEDS 列出用到的遊戲名稱,自動更新時會檢查新版都還在
reverse/ 把混淆版 game.js 還原成可讀程式碼的工具、命名對照表、更新流程,說明見 reverse/README.md

v3 怎麼運作

新版遊戲整包放進一個立即執行的函式(IIFE),G、hurtPlayer 這些都摸不到了,index.html 也加了 CSP 擋掉注入。v3 的做法:

  1. 頁面一開始載入就用 document.open() 接手,重寫成拿掉原本 <script src="game.js"> 的頁面。
  2. 抓官方的 game.js,在 IIFE 結尾前插入一小段匯出程式,用 getter/setter 把閉包裡的函式和狀態掛到 window。混淆後的名稱跟有意義名稱的對照表,是 reverse/ 的工具產生的。
  3. 用 Tampermonkey 的 GM_addElement 把改過的遊戲和 src/mod-core.js 放進頁面執行。Tampermonkey 注入時,index.html 的 CSP(script-src 'self')通常已經生效,而且 document.open() 清不掉它,一般的 <script> 和 eval 都會被擋;GM_addElement 用擴充功能權限執行,不受這個限制。萬一不行,就改在 Tampermonkey 的沙盒裡執行,再不行就只載入原版遊戲。
  4. mod-core.js 換掉 window.hurtPlayer 的時候,setter 直接改掉閉包裡的綁定,遊戲之後的呼叫就會走到新的函式。

這支腳本不含任何遊戲程式碼,遊戲本身都是執行時從官方網址抓的。game.js 的 hash 對不上對照表時,就只載入原版遊戲,不會亂掛。

提醒

這是單機遊戲的學習練習。不要拿去刷有線上排行榜、或會影響到別人的遊戲。