精美屏保暴力破解全过程

先用WD32ASM8.93超级中文版进行反汇编,然后查找,会看到:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D097(C)
|
:0040D0AD 6A03                    push 00000003
:0040D0AF E82C67FFFF              call 004037E0
:0040D0B4 83C404                  add esp, 00000004
:0040D0B7 8945F8                  mov dword ptr [ebp-08], eax
:0040D0BA 837DF800                cmp dword ptr [ebp-08], 00000000
:0040D0BE 7414                    je 0040D0D4             //—–>修改74-75即jne->je
:0040D0C0 C70500FE410003000000    mov dword ptr [0041FE00], 00000003
:0040D0CA 6A01                    push 00000001
:0040D0CC E8A86EFFFF              call 00403F79
:0040D0D1 83C404                  add esp, 00000004

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D0BE(C)  //———->修改处,往上找。
|
:0040D0D4 833D00FE410000          cmp dword ptr [0041FE00], 00000000
:0040D0DB 7458                    je 0040D135      //—————修改74->75即jne->je
:0040D0DD C605B1DD410001          mov byte ptr [0041DDB1], 01
:0040D0E4 C605B2DD410001          mov byte ptr [0041DDB2], 01
:0040D0EB 833D00FE410001          cmp dword ptr [0041FE00], 00000001
:0040D0F2 7514                    jne 0040D108    //——————-修改74->75即jne->je

* Possible StringData Ref from Data Obj ->”TEMP registration OK”  //—–2条鱼!
                                  |
:0040D0F4 6834E54100              push 0041E534
:0040D0F9 6892000000              push 00000092
:0040D0FE 8B4D08                  mov ecx, dword ptr [ebp+08]
:0040D101 51                      push ecx

* Reference To: USER32.SetDlgItemTextA, Ord:022Ch
                                  |
:0040D102 FF1514A24100            Call dword ptr [0041A214]

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D0F2(C)      //————-修改的地方,往上找
|
:0040D108 833D00FE410002          cmp dword ptr [0041FE00], 00000002
:0040D10F 7514                    jne 0040D125     

* Possible StringData Ref from Data Obj ->”BASIC registration OK” //——-3条鱼!
                                  |
:0040D111 684CE54100              push 0041E54C
:0040D116 6892000000              push 00000092
:0040D11B 8B5508                  mov edx, dword ptr [ebp+08]
:0040D11E 52                      push edx

* Reference To: USER32.SetDlgItemTextA, Ord:022Ch
                                  |
:0040D11F FF1514A24100            Call dword ptr [0041A214]

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D10F(C)
|
:0040D125 833D00FE410003          cmp dword ptr [0041FE00], 00000003  //—–>
:0040D12C 7D07                    jge 0040D135  //——> 比较大于则跳,所以改为小于7D->7E
:0040D12E 33C0                    xor eax, eax
:0040D130 E91B010000              jmp 0040D250

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040D0DB(C), :0040D12C(C)
|
:0040D135 833D00FE410003          cmp dword ptr [0041FE00], 00000003
:0040D13C 7545                    jne 0040D183  //——–修改75-74即jne->je

* Possible StringData Ref from Data Obj ->”DELUXE registration OK”  //—–7条鱼!
                                  |
:0040D13E 6864E54100              push 0041E564
:0040D143 6892000000              push 00000092
:0040D148 8B4508                  mov eax, dword ptr [ebp+08]
:0040D14B 50                      push eax

* Reference To: USER32.SetDlgItemTextA, Ord:022Ch
                                  |
:0040D14C FF1514A24100            Call dword ptr [0041A214]
:0040D152 C605B1DD410001          mov byte ptr [0041DDB1], 01  //—-
:0040D159 C605B2DD410001          mov byte ptr [0041DDB2], 01  //—-
:0040D160 C605B3DD410001          mov byte ptr [0041DDB3], 01  //—-
:0040D167 C605B4DD410001          mov byte ptr [0041DDB4], 01  //—-
:0040D16E C605B5DD410001          mov byte ptr [0041DDB5], 01  //—-
:0040D175 C605B6DD410001          mov byte ptr [0041DDB6], 01  //—-
:0040D17C 33C0                    xor eax, eax
:0040D17E E9CD000000              jmp 0040D250

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D13C(C)  //————————-根据上面的值变化,也要修改。
|
:0040D183 6878104200              push 00421078
:0040D188 6892000000              push 00000092
:0040D18D 8B4D08                  mov ecx, dword ptr [ebp+08]
:0040D190 51                      push ecx

* Reference To: USER32.SetDlgItemTextA, Ord:022Ch
                                  |
:0040D191 FF1514A24100            Call dword ptr [0041A214]
:0040D197 33C0                    xor eax, eax
:0040D199 E9B2000000              jmp 0040D250

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

下面是参考dyiyd兄的提示写的:感谢dyiyd兄。

修改了上面的内容注册就是任意注册码了。而且是DELUXE,7条鱼!!!但是还有启动注册框NAG,下面来去掉他!

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404194(C)
|
:004041A0 833D00FE410000          cmp dword ptr [0041FE00], 00000000  //—-0041FE00是否为0
:004041A7 740E                    je 004041B7  //—–等于0就跳,玩完了。 74->75即je->jne
:004041A9 C605B1DD410001          mov byte ptr [0041DDB1], 01
:004041B0 C605B2DD410001          mov byte ptr [0041DDB2], 01

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004041A7(C)
|
:004041B7 6A03                    push 00000003
:004041B9 E822F6FFFF              call 004037E0
:004041BE 83C404                  add esp, 00000004
:004041C1 85C0                    test eax, eax
:004041C3 7434                    je 004041F9  //——>eax=0就跳,玩完了。74->75即je->jne
:004041C5 C70500FE410003000000    mov dword ptr [0041FE00], 00000003  //—–使0041FE00=3
:004041CF C605B1DD410001          mov byte ptr [0041DDB1], 01
:004041D6 C605B2DD410001          mov byte ptr [0041DDB2], 01
:004041DD C605B3DD410001          mov byte ptr [0041DDB3], 01
:004041E4 C605B4DD410001          mov byte ptr [0041DDB4], 01
:004041EB C605B5DD410001          mov byte ptr [0041DDB5], 01
:004041F2 C605B6DD410001          mov byte ptr [0041DDB6], 01

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00404186(C), :004041C3(C)
|
:004041F9 833D00FE410000          cmp dword ptr [0041FE00], 00000000
:00404200 7410                    je 00404212
:00404202 837DFC00                cmp dword ptr [ebp-04], 00000000
:00404206 740A                    je 00404212
:00404208 6A01                    push 00000001
:0040420A E86AFDFFFF              call 00403F79

所以只要使0041FE00=3就可以了,所以我们可以这么修改。

相关推荐

发表评论

您的电子邮箱地址不会被公开。

QQ点我咨询