介紹專門給軟體搬家的工具
												
																											程式介紹:Mover98 是專門給軟體搬家的工具,而不會影響程式的運行。
電腦報上有介紹,我就不囉嗦了。 
分析:軟體的這種自校驗肯定是在程式開始運行的時候就要比較的,所以這段代碼一定在程式的入口不遠處。 
用 W32Dasm 反彙編出代碼後,開始瞪大眼睛仔細尋找…… 
//******************** Program Entry Point ******** 
:0047DC1C 55                      push ebp 
:0047DC1D 8BEC                    mov ebp, esp 
:0047DC1F 83C4F0                  add esp, FFFFFFF0 
:0047DC22 33C0                    xor eax, eax 
:0047DC24 8945F0                  mov dword ptr [ebp-10], eax 
:0047DC27 B87CD94700              mov eax, 0047D97C 
:0047DC2C E8977FF8FF              call 00405BC8 
:0047DC31 33C0                    xor eax, eax 
:0047DC33 55                      push ebp 
:0047DC34 6817DD4700              push 0047DD17 
:0047DC39 64FF30                  push dword ptr fs:[eax] 
:0047DC3C 648920                  mov dword ptr fs:[eax], esp 
:0047DC3F 8D55F0                  lea edx, dword ptr [ebp-10] 
:0047DC42 33C0                    xor eax, eax 
:0047DC44 E84B4CF8FF              call 00402894 
:0047DC49 8B45F0                  mov eax, dword ptr [ebp-10] 
:0047DC4C B98B3B0000              mov ecx, 00003B8B 
:0047DC51 33D2                    xor edx, edx 
:0047DC53 E80843FBFF              call 00431F60 
:0047DC58 84C0                    test al, al      <----開始判斷 
:0047DC5A 7505                    jne 0047DC61    <----跳過下面這個 call 
:0047DC5C E86F5BF8FF              call 004037D0    <----讓它運行你就死定了 
* Referenced by a (U)nconditional or (C)onditional Jump at Address: 
|:0047DC5A(U) 
| 
:0047DC61 A1D4F34700              mov eax, dword ptr [0047F3D4] 
:0047DC66 8B00                    mov eax, dword ptr [eax] 
:0047DC68 E82334FBFF              call 00431090 
:0047DC6D 8D55F0                  lea edx, dword ptr [ebp-10] 
:0047DC70 B801000000              mov eax, 00000001 
:0047DC75 E81A4CF8FF              call 00402894 
:0047DC7A 8B45F0                  mov eax, dword ptr [ebp-10] 
縱觀上下十幾行就只有這一個跳轉,肯定就是它了。原來這麼簡單,只要跳過 call 004037D0 就行了。
好辦,把 jne 改成 jmp(7505 改成 EB05)。