2014-3-1 12:03 /
安装时的DVD验证我就不多谈了,早就有破解了。
隔壁用盗版的早就推了一大半了,为什么我买了正版还不能玩=。=  神烦。
废话懒得多说。
安装时请一定用app之类的软件加载!
sppl是锁区的,仅一处API锁区。破解这个没啥好说的,很简单。
接下来就是注册表验证(迷之蛋疼,我是直接在台式机上安装好的,然后拷在本本上的,所以说会提示游戏安装不正确之类的)
目测我是在作死,就不上传破解后的程序了。

接下来是注册表验证段:


00E8C450  /$ 55             PUSH EBP
00E8C451  |. 8BEC           MOV EBP,ESP
00E8C453  |. 83EC 0C        SUB ESP,0C
00E8C456  |. 53             PUSH EBX
00E8C457  |. 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]
00E8C45A  |. 50             PUSH EAX                                 ; /pHandle = 003DF6D4
00E8C45B  |. 68 19000200    PUSH 20019                               ; |Access = KEY_READ
00E8C460  |. 6A 00          PUSH 0                                   ; |Reserved = 0
00E8C462  |. 51             PUSH ECX                                 ; |Subkey
00E8C463  |. 32DB           XOR BL,BL                                ; |
00E8C465  |. 68 02000080    PUSH 80000002                            ; |hKey = HKEY_LOCAL_MACHINE
00E8C46A  |. C745 F8 040100>MOV DWORD PTR SS:[EBP-8],104             ; |
00E8C471  |. 881E           MOV BYTE PTR DS:[ESI],BL                 ; |
00E8C473  |. FF15 0430EF00  CALL DWORD PTR DS:[<&ADVAPI32.RegOpenKey>; \RegOpenKeyExA
00E8C479  |. 85C0           TEST EAX,EAX
00E8C47B  |. 75 31          JNZ SHORT sppl1.00E8C4AE
00E8C47D  |. 8B4D FC        MOV ECX,DWORD PTR SS:[EBP-4]
00E8C480  |. 8D55 F8        LEA EDX,DWORD PTR SS:[EBP-8]
00E8C483  |. 52             PUSH EDX
00E8C484  |. 56             PUSH ESI
00E8C485  |. 8D45 F4        LEA EAX,DWORD PTR SS:[EBP-C]
00E8C488  |. 50             PUSH EAX
00E8C489  |. 6A 00          PUSH 0
00E8C48B  |. 85FF           TEST EDI,EDI
00E8C48D  |. 75 07          JNZ SHORT sppl1.00E8C496
00E8C48F  |. 68 585AEF00    PUSH sppl1.00EF5A58
00E8C494  |. EB 01          JMP SHORT sppl1.00E8C497
00E8C496  |> 57             PUSH EDI
00E8C497  |> 51             PUSH ECX                                 ; |hKey
00E8C498  |. FF15 0830EF00  CALL DWORD PTR DS:[<&ADVAPI32.RegQueryVa>; \RegQueryValueExA
00E8C49E  |. 85C0           TEST EAX,EAX
00E8C4A0  |. 75 02          JNZ SHORT sppl1.00E8C4A4
00E8C4A2  |. B3 01          MOV BL,1
00E8C4A4  |> 8B55 FC        MOV EDX,DWORD PTR SS:[EBP-4]
00E8C4A7  |. 52             PUSH EDX                                 ; /hKey
00E8C4A8  |. FF15 0030EF00  CALL DWORD PTR DS:[<&ADVAPI32.RegCloseKe>; \RegCloseKey
00E8C4AE  |> 8AC3           MOV AL,BL
00E8C4B0  |. 5B             POP EBX
00E8C4B1  |. 8BE5           MOV ESP,EBP
00E8C4B3  |. 5D             POP EBP
00E8C4B4  \. C3             RETN



如果不通过,就会有以下提示



00E8C1A0  /$ 55             PUSH EBP
00E8C1A1  |. 8BEC           MOV EBP,ESP
00E8C1A3  |. 8B15 1CF6F500  MOV EDX,DWORD PTR DS:[F5F61C]
00E8C1A9  |. 81EC 00010000  SUB ESP,100
00E8C1AF  |. 68 00010000    PUSH 100                                 ; /Count = 100 (256.)
00E8C1B4  |. 8D85 00FFFFFF  LEA EAX,DWORD PTR SS:[EBP-100]           ; |
00E8C1BA  |. 50             PUSH EAX                                 ; |Buffer
00E8C1BB  |. 51             PUSH ECX                                 ; |RsrcID = STRING "正しくインストールされていません。"
00E8C1BC  |. 52             PUSH EDX                                 ; |hInst => NULL
00E8C1BD  |. FF15 5C32EF00  CALL DWORD PTR DS:[<&USER32.LoadStringA>>; \LoadStringA
00E8C1C3  |. 8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
00E8C1C6  |. 8B15 B4F5F500  MOV EDX,DWORD PTR DS:[F5F5B4]
00E8C1CC  |. 50             PUSH EAX                                 ; /Style
00E8C1CD  |. 68 88F6F500    PUSH sppl1.00F5F688                      ; |Title = ""
00E8C1D2  |. 8D8D 00FFFFFF  LEA ECX,DWORD PTR SS:[EBP-100]           ; |
00E8C1D8  |. 51             PUSH ECX                                 ; |Text
00E8C1D9  |. 52             PUSH EDX                                 ; |hOwner => NULL
00E8C1DA  |. FF15 1C33EF00  CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
00E8C1E0  |. 8BE5           MOV ESP,EBP
00E8C1E2  |. 5D             POP EBP
00E8C1E3  \. C3             RETN



通过的话,在那个锁区检测的子程序下面就开始创建线程,并且开始执行后面不远处的主程序。

剩下来,这个引擎也没啥好玩的了,封包、脚本之类的代码全在那周围,追追就知道了,目测算法不是很难。
Tags: minori sppl