跳到主要內容

發表文章

目前顯示的是 7月, 2016的文章

SiglusEngine地區檢查分析(二)

這次來分析SiglusEngine的第二種與第三種檢查地區的方式。 在這之前可以先看一下之前的一些結果: SiglusEngine地區限制破解 SiglusEngine地區檢查分析(一) 第二個檢查函式在這個地方: 0045DD10  />  E8 8BFCFFFF   CALL 0045D9A0                       ;檢查 0045DD15  |.  84C0                     TEST AL,AL 0045DD17  \.  E9 EA000000     JMP 0045DE06 0045DD1C      90                          NOP 按F7跟進去,乍看之下沒什麼線索,不過有一個地方讓我比較在意: 0045D9E5  |.  50                         PUSH EAX                                                    ; /Arg1 = 1 0045D9E6  |.  B9 782D7C00   MOV ECX,OFFSET 007C2D78                  ; |UNICODE "0411" 0045D9EB  |.  C64424 50 01   MOV BYTE PTR SS:[ESP+50],1               ; | 0045D9F0  |.  E8 4BA0FBFF   CALL 00417A40                            ; \SiglusEngine.00417A40 "0411"很眼熟不是嗎? 這正是是日文的Language ID,顯然這裡是從某處得到系統語言 的Language ID的字串形式,然後再拿那個字串跟 "0411"比較。

SiglusEngine地區檢查分析(一)

之前為了破解SiglusEngine的地區限制,我有做了一些分析: SiglusEngine地區限制破解 這一次我的目的是還原第一個關鍵跳轉那個地方的檢查算法。 首先回顧一下第一個關鍵跳轉: 0045DC5A  |.  E8 81F9FFFF         CALL 0045D5E0          ;檢查 0045DC5F  |.  84C0                         TEST AL,AL 0045DC61      E9 AA000000         JMP 0045DD10 ;第一個關鍵跳轉 0045DC66      90                              NOP 在 CALL 0045D5E0 這裡按 F7 跟進: 0045D5E0  /$  6A FF                    PUSH -1         ;函式開頭 0045D5E2  |.  68 D1087600        PUSH 007608D1                             0045D5E7  |.  64:A1 0000000    MOV EAX,DWORD PTR FS:[0] 0045D5ED  |.  50                           PUSH EAX 0045D5EE  |.  81EC 7C020000 SUB ESP,27C 0045D5F4  |.  A1 90348000        MOV EAX,DWORD PTR DS:[803490] 0045D5F9  |.  33C4                       XOR EAX,ESP 這個函式有點長,我就不全部列出來了。

SiglusEngine地區限制破解

新版網誌: https://casidi.github.io/2016/07/29/siglusengine-cracking/ 採用這個引擎的比較有名的就是key跟SAGA PLANETS這兩家公司了。 這次以SAGA PLANET做的一個小遊戲為分析對象,遊戲可以免費下載: 【はつゆきパズル☆神経衰弱☆】 下載下來的是一個壓縮檔,檔名為 hatsukipuzzle01.zip,直接解壓縮會得到一個資料夾, 名字為: はつゆきパズル 其實遊戲必要的只有 はつゆきパズル\StartData\GameData 這個資料夾,直接把GameData資料夾搬到隨便一個地方,執行SiglusEngine.exe即可啟動遊戲。