《大航海時代3:新世紀》的不完全破解 (4千字)

看雪資料發表於2001-01-16

大航海時代3:新世紀破解手記

這是一款新上市的大航海系列遊戲,昨天買回家後,花了十分鐘就搞定了。這個遊戲挺簡單的,不放光碟會跳出“請將遊戲光碟插入光碟機”的提示,將EXE檔案反彙編後,找到這句話,便會來到如下程式碼:


第一處:
:0040361A E821730800              call 0048A940
:00403621 7513                    jne 00403636
* Possible StringData Ref from Data Obj ->"叫рyjN⒉zC欄盒J盒訣A"

第二處:
:00403657 83C408                  add esp, 00000008
:0040365A 83F8FF                  cmp eax, FFFFFFFF
:0040365D 7513                    jne 00403672

* Possible StringData Ref from Data Obj ->"叫рyjN⒉zC欄盒J盒訣A"
                                        ->"yT{zC"
                                  |
:0040365F 6894E35100              push 0051E394
:00403664 6A00                    push 00000000
:00403666 6A00                    push 00000000
:00403668 E813B20200              call 0042E880
:0040366D 83C40C                  add esp, 0000000C

第三處:

:00435D35 E8064C0500              call 0048A940
:00435D3A 85C0                    test eax, eax
:00435D3C 751E                    jne 00435D5C

* Possible StringData Ref from Data Obj ->"叫рyjN⒉zC欄盒J盒訣A"
                                        ->"yT{zC"
                                  |
:00435D3E 6894E35100              push 0051E394
:00435D43 6A00                    push 00000000
:00435D45 6A00                    push 00000000


第四處:
:004413C9 83C404                  add esp, 00000004
:004413CC 8BF0                    mov esi, eax
:004413CE 85F6                    test esi, esi
:004413D0 7525                    jne 004413F7

* Possible StringData Ref from Data Obj ->"叫рyjN⒉zC欄盒J盒訣C
?
                                        ->"錁堋yいゎz擋C欄C"
                                  |
:004413D2 6850AB5200              push 0052AB50




第五處:
:00445B11 E88ABD0600              call 004B18A0
:00445B16 85C0                    test eax, eax
:00445B18 7513                    jne 00445B2D

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00445AED(C)
|

* Possible StringData Ref from Data Obj ->"叫рyjN⒉zC欄盒J盒訣A"
                                        ->"yT{z齡C"
                                  |
:00445B1A 680C2B5300              push 00532B0C
:00445B1F 6A00                    push 00000000
:00445B21 6A00                    push 00000000



第六處:
* Reference To: KeRNeL32.GetDriveTypeA, Ord:0000h
                                  |
:004BA533 FF1548846000            Call dword ptr [00608448]
:004BA539 83F802                  cmp eax, 00000002
:004BA53C 7416                    je 004BA554
:004BA53E 83F803                  cmp eax, 00000003
:004BA541 7415                    je 004BA558
:004BA543 83F805                  cmp eax, 00000005
:004BA546 7205                    jb 004BA54D
:004BA548 83F806                  cmp eax, 00000006
:004BA54B 760B                    jbe 004BA558

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004BA546(C)
|
:004BA54D B8FFFFFFFF              mov eax, FFFFFFFF
:004BA552 EB09                    jmp 004BA55D

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004BA53C(C)
|
:004BA554 33C0                    xor eax, eax
:004BA556 EB05                    jmp 004BA55D

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004BA541(C), :004BA54B(C)
|
:004BA558 B801000000              mov eax, 00000001

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004BA552(U), :004BA556(U)
|
:004BA55D 5F                      pop edi
:004BA55E 5E                      pop esi
:004BA55F 8BE5                    mov esp, ebp
:004BA561 5D                      pop ebp
:004BA562 C3                      ret

看到了嗎,共有5處地方會出現提示,而且每個提示上面都是一條跳轉命令,把所有的jne改為je即可。
下面第六處是CD檢測,不過這裡改不改都沒有關係。這樣一來,遊戲可以免光碟執行,只是沒有音樂,也看不到動畫片,破地不完全。
                                                    bwkpjq
                                    E-Mail:bwkpjq@yeah.net
                                http://go.163.com/~bwkpjq

相關文章