@Wh1te #3
總而言之: 真的非常抱歉, 是這裏把問題想得太簡單了
首先先讓我狡辯一下, 因爲這裏一開始是用 Wine 開的遊戲,而 Wine 下對於 WideCharToMultiByte 的處理有些問題
00f0:fixme:msvcrt:create_locinfo WideCharToMultiByte failed, ret 0, error 122.
00f0:fixme:msvcrt:create_locinfo WideCharToMultiByte failed, ret 0, error 122.
00f0:fixme:msvcrt:create_locinfo WideCharToMultiByte failed, ret 0, error 122.
00f0:fixme:msvcrt:create_locinfo WideCharToMultiByte failed, ret 0, error 122.
而又因爲JLXH.dll 會嘗試修改遊戲傳給 MultiByteToWideChar 和 WideCharToMultiByte 的值
0x100011d8 a100600010 mov eax, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
0x100011dd a3b0840010 mov dword [0x100084b0], eax
0x100011e2 a10c600010 mov eax, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
0x100011e7 a3ac840010 mov dword [0x100084ac], eax
0x10001202 6850110010 push 0x10001150
0x10001207 68b0840010 push 0x100084b0
0x1000120c e84f150000 call fcn.10002760
0x10001211 6880110010 push 0x10001180
0x10001216 68ac840010 push 0x100084ac
0x1000121b e840150000 call fcn.10002760
0x10001150 55 push ebp
0x10001151 8bec mov ebp, esp
0x10001153 8b4d08 mov ecx, dword [ebp + 8]
0x10001156 a1b0840010 mov eax, dword [0x100084b0] ; [0x100084b0:4]=0
0x1000115b 81f9a4030000 cmp ecx, 0x3a4 ; cp932 / SHIFT_JIS
0x10001161 750a jne 0x1000116d
0x10001163 c74508e9fd.. mov dword [ebp + 8], 0xfde9 ; 0xfde9 = 65001 即 UTF-8
0x1000116a 5d pop ebp
0x1000116b ffe0 jmp eax
導致這裏根本沒有完成替換 (雖然還不清楚是否是因此才導致無法顯示的), 以至於這裏實際上根本沒有成功復現問題。
另外這個補丁內部也寫死了 FONTCHANGER_old.dll, 並不是從 hook.ini 獲取的 (並不是這裏一開始猜的打包問題)。
0x100011b9 6860620010 push str.FONTCHANGER_old.dll ; 0x10006260 ; "FONTCHANGER_old.dll"
0x100011be ff1508600010 call dword [sym.imp.KERNEL32.dll_LoadLibraryW] ; 0x10006008 ; HMODULE LoadLibraryW(LPCWSTR lpLibFileName)
因爲這裏無法完全復現,給不出更多資訊了. 但如果你的問題還沒有解決, 可以試試以下的幾個操作
- 嘗試移除或重命名
JLXH.dll 之後啓動 AdvHD_cn.exe, 如果報錯 說明沒有問題, 如果能正常運行 請檢查執行檔 (雜湊值應該是 sha256:bc55f6c8536f3c7ede30b5eb85fd3eba51918dcda92cd737533f19a12ecf6cc7)
- 移除或重命名
hook.ini, 如果出現類似 ...hook.ini not found!的提示 (遊戲應該還能啓動) 說明沒有問題
- 移除或重命名
Rio1.arc, 如果在開始遊戲 (NEW GAME) 階段報錯 說明沒有問題
- 將
hook.ini 的 DEBUG 的值改成 1, 並注意黑視窗中是否有明顯報錯信息
- 嘗試暫時關閉系統的反病毒軟體等, 或直接在虛擬機內運行 (實在不行...考慮換臺電腦)
14 条回复