[技巧] 昨晚修改 H-Game 存檔的過程
看板Marginalman作者SuicideIwin () => print("Hello")時間1年前 (2023/06/22 20:43)推噓14(14推 0噓 6→)留言20則, 20人參與討論串1/1
昨天晚上抓了一款 H-Game 的體驗版,叫做「ダンジョン&ブライド」
我當下很想打手槍,但是需要遊戲裡的貨幣才能看到色的
我又不想去農,所以腦子就動到了修改上
覺得這個過程蠻有趣的,當作留個 know-how
## 1. 找出存檔
---
正常來說遊戲存檔的時候,會需要在本機某個地方寫入檔案
而寫入的內容當然就是遊戲的進度,
金錢、物品也就包含在這種檔案裏面
所以我們第一個要找到的就是存檔的檔案
普遍的 RPGMAKER 的存檔格式固定,甚至網路上有免費網頁工具可以直接讀寫內容
不過這款用的引擎是 KIRIKIRI,通常電子小說比較常見
幸好它的存檔就放在遊戲目錄的 savedata 資料夾底下,
所以很快就找到檔案
https://i.imgur.com/OCpvJdR.png
![](https://i.imgur.com/OCpvJdR.jpg)
## 2. 找出你的存檔
---
對玩家來說可能只是存檔一次
遊戲在背後可能是存到許多不同檔案,就像這個案例
所以存檔時,建議記得存檔那瞬間的時間,
然後對照目錄中的檔案的修改時間去確認哪些有被改動
https://i.imgur.com/SAIfWtd.png
![](https://i.imgur.com/SAIfWtd.jpg)
當我存到遊戲中第三格的時候,有這些檔案被改動了
bmp 檔以圖片瀏覽程式打開是截圖
而 ksd 檔則類似 json 格式
## 3. 找出包含你要的數值的檔案
---
經過確認,三個 ksd 檔是類似跨存檔共用的數值
像是音量等等的
所以最後還沒確認的是 bmp 檔
用 vscode 打開,發現在圖片資訊底下藏著與 ksd 類似的可讀結構
https://i.imgur.com/wu8kHk5.png
![](https://i.imgur.com/wu8kHk5.jpg)
## 4. 動工修改
---
https://i.imgur.com/q9ljG1R.png
![](https://i.imgur.com/q9ljG1R.jpg)
因為文字寫入遵照每個字元中間安插一個看似空白字元的邏輯
很快就用 Ctrl+F 找到了 gold 的所在地點,
也透過數字確認是當下遊戲中所持金幣量
改完數字後存檔,打開遊戲
恭喜 存檔損壞
因為這是個 .bmp
記事本前面的亂碼就是記事本無法正常讀寫的現象
## 5. Hex
---
這種時候就突然想到以前寫專案的時候
客戶給的 DB table 匯出 excel 裡面藏了一堆白爛的字元
當時的老大們用 Hex Editor 去解決
我就上網抓了一個免費的來用
https://mh-nexus.de/en/hxd/
打開之後長這樣
https://i.imgur.com/E2jODl2.png
![](https://i.imgur.com/E2jODl2.jpg)
所以我們知道中間空白字元其實不是空白,眼前的黑也不是黑
而是 \00
這個字元有點麻煩的是,在 windows 的輸入框中似乎無法正常使用
https://i.imgur.com/Bz8rwd2.png
![](https://i.imgur.com/Bz8rwd2.jpg)
至少在 HxD 中,這樣去搜尋會報錯
所以只好用左邊那一排 16 進位去查,因為這邊可以用 00 來做表示,
就可以打在搜尋框裡面了
把 gold 翻成 16 進位
https://i.imgur.com/tn5Izu4.png
![](https://i.imgur.com/tn5Izu4.jpg)
每個字元之間安插進 00
https://i.imgur.com/SDhgUd1.png
![](https://i.imgur.com/SDhgUd1.jpg)
![](https://i.imgur.com/mLrSEbC.jpg)
順利找到位置,可以修改了
改完後存檔進遊戲,修改成功,打手槍
可以發現這個其實也沒有多做什麼加密
可是會讓修改起來比較麻煩
中間安插 00 的做法蠻機巴的
整個改完之後覺得過程蠻有趣的
分享給大家
好東西要分享給好朋友
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.112.51 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1687437802.A.B85.html
→
06/22 20:45,
1年前
, 1F
06/22 20:45, 1F
![](https://i.imgur.com/cbteNRq.jpg)
→
06/22 20:46,
1年前
, 2F
06/22 20:46, 2F
推
06/22 20:46,
1年前
, 3F
06/22 20:46, 3F
推
06/22 20:47,
1年前
, 4F
06/22 20:47, 4F
※ 編輯: SuicideIwin (36.225.112.51 臺灣), 06/22/2023 20:49:14
→
06/22 20:50,
1年前
, 5F
06/22 20:50, 5F
推
06/22 20:50,
1年前
, 6F
06/22 20:50, 6F
推
06/22 20:51,
1年前
, 7F
06/22 20:51, 7F
推
06/22 20:53,
1年前
, 8F
06/22 20:53, 8F
→
06/22 20:54,
1年前
, 9F
06/22 20:54, 9F
推
06/22 20:55,
1年前
, 10F
06/22 20:55, 10F
推
06/22 20:56,
1年前
, 11F
06/22 20:56, 11F
→
06/22 20:58,
1年前
, 12F
06/22 20:58, 12F
推
06/22 21:05,
1年前
, 13F
06/22 21:05, 13F
推
06/22 21:17,
1年前
, 14F
06/22 21:17, 14F
推
06/22 21:18,
1年前
, 15F
06/22 21:18, 15F
推
06/22 21:19,
1年前
, 16F
06/22 21:19, 16F
→
06/22 21:35,
1年前
, 17F
06/22 21:35, 17F
推
06/22 21:38,
1年前
, 18F
06/22 21:38, 18F
推
06/22 22:30,
1年前
, 19F
06/22 22:30, 19F
推
06/22 23:04,
1年前
, 20F
06/22 23:04, 20F