上个月装了个很旧的WINRAR3.60 40天试用版,今天无意中打开看见只剩下5天的试用时间了,刚好闲着无聊,就拿来玩玩了。
网上说WINRAR到期了还是可以用,我就试了下,现在还剩下5天时间,我就把系统时间调到一星期以后,再打开WINRAR,发现标题栏从“(离购买许可只剩 5 天了)”变成了“(评估版本)”
,并且打开之后还会有一个烦人的提示
,不过软件还是可以正常使用。
用PEID查壳,显示“Borland C++ 1999”,无壳。用OD打开,下断点“bp SetWindowTextA”,然后F9运行,中间有一个错误直接shift+F9跳过,在第一个被断下来的地方可以看到那个“(离购买许可只剩 5 天了)”,然后ALT+F9回到程序空间
004509D0 /$ 81C4 00F8FFFF ADD ESP,-800
004509D6 |. 50 PUSH EAX ; /Arg3
004509D7 |. 68 DB5A4A00 PUSH WinRAR.004A5ADB ; |Arg2 = 004A5ADB ASCII "%s - WinRAR"
004509DC |. 8D4424 08 LEA EAX,DWORD PTR SS:[ESP+8] ; |
004509E0 |. 50 PUSH EAX ; |Arg1
004509E1 |. E8 12740400 CALL WinRAR.00497DF8 ; \WinRAR.00497DF8
004509E6 |. 83C4 0C ADD ESP,0C
004509E9 803D B8F64A00>CMP BYTE PTR DS:[4AF6B8],0
004509F0 |. 75 7A JNZ SHORT WinRAR.00450A6C
004509F2 |. A1 B0564C00 MOV EAX,DWORD PTR DS:[4C56B0]
004509F7 |. 83F8 14 CMP EAX,14
004509FA |. 7C 05 JL SHORT WinRAR.00450A01
004509FC |. 83F8 28 CMP EAX,28
004509FF |. 7C 1D JL SHORT WinRAR.00450A1E
00450A01 |> B8 69030000 MOV EAX,369
00450A06 |. E8 2116FCFF CALL WinRAR.0041202C
00450A0B |. 50 PUSH EAX ; /Arg2
00450A0C |. 8D9424 040600>LEA EDX,DWORD PTR SS:[ESP+604] ; |
00450A13 |. 52 PUSH EDX ; |Arg1
00450A14 |. E8 7F440400 CALL WinRAR.00494E98 ; \WinRAR.00494E98
00450A19 |. 83C4 08 ADD ESP,8
00450A1C |. EB 27 JMP SHORT WinRAR.00450A45
00450A1E |> B9 28000000 MOV ECX,28
00450A23 |. B8 6A030000 MOV EAX,36A
00450A28 |. 2B0D B0564C00 SUB ECX,DWORD PTR DS:[4C56B0]
00450A2E |. 51 PUSH ECX
00450A2F |. E8 F815FCFF CALL WinRAR.0041202C
00450A34 |. 50 PUSH EAX ; |Arg2
00450A35 |. 8D9424 080600>LEA EDX,DWORD PTR SS:[ESP+608] ; |
00450A3C |. 52 PUSH EDX ; |Arg1
00450A3D |. E8 B6730400 CALL WinRAR.00497DF8 ; \WinRAR.00497DF8
00450A42 |. 83C4 0C ADD ESP,0C
00450A45 |> 8D8C24 000600>LEA ECX,DWORD PTR SS:[ESP+600]
00450A4C |. 51 PUSH ECX
00450A4D |. 68 E75A4A00 PUSH WinRAR.004A5AE7 ; ASCII " (%s)"
00450A52 |. 8D4424 08 LEA EAX,DWORD PTR SS:[ESP+8]
00450A56 |. 50 PUSH EAX
00450A57 |. E8 6C440400 CALL WinRAR.00494EC8
00450A5C |. 59 POP ECX ; |
00450A5D |. 8D5424 08 LEA EDX,DWORD PTR SS:[ESP+8] ; |
00450A61 |. 03C2 ADD EAX,EDX ; |
00450A63 |. 50 PUSH EAX ; |Arg1
00450A64 |. E8 8F730400 CALL WinRAR.00497DF8 ; \WinRAR.00497DF8
00450A69 |. 83C4 0C ADD ESP,0C
00450A6C |> 54 PUSH ESP ; /Text
00450A6D |. FF35 C8234C00 PUSH DWORD PTR DS:[4C23C8] ; |hWnd = 002603DA ('WinRAR - WinRAR (离购买许可只...',class='WinRarWindow')
00450A73 |. E8 2CE60400 CALL <JMP.&USER32.SetWindowTextA> ; \SetWindowTextA
00450A78 |. 81C4 00080000 ADD ESP,800
00450A7E \. C3 RETN
往上找发现没有可以跳过这个地方的跳转,我试着改了一下,发现把4509F0该为JMP SHORT
WinRAR.00450A6C 时,程序的窗口就正常了,没有什么购买、评估之类的话,只有WINRAR - WINRAR 的标题,这样就解除了标题上的提示。
现在再把到期时弹出的提示删了。下断点“bp ShowWindow”,不过这次就比较烦了,要按很多次F9才可以到达我们想要的地方,不过还是很好找的,看到右下角的小窗口有“请购买 WINRAR 许可”时就到了,按ALT+F9然后回到程序中,点“关闭”按钮,程序就被OD断下来了,然后一路按F8回到程序中,到了00445B0E,往上看发现很多跳转,还有很多关键字,例如RARKEY之类的,估计是判断注册的,不过这个不是我们关心的,我们只要他不弹出提示就可以了。这里很多跳都可以跳过那个窗口
00445B07 > \833D 704D4C00>CMP DWORD PTR DS:[4C4D70],0 ; Case 113 (WM_TIMER) of switch 0044542C
00445B0E . 75 7D JNZ SHORT WinRAR.00445B8D
00445B10 . 8D95 A4FAFFFF LEA EDX,DWORD PTR SS:[EBP-55C]
00445B16 . B8 24314C00 MOV EAX,WinRAR.004C3124
00445B1B . 33C9 XOR ECX,ECX
00445B1D . E8 82CB0100 CALL WinRAR.004626A4
00445B22 . 803D 61474A00>CMP BYTE PTR DS:[4A4761],0
00445B29 . 75 62 JNZ SHORT WinRAR.00445B8D
00445B2B . 803D 447D4C00>CMP BYTE PTR DS:[4C7D44],0
00445B32 . 75 59 JNZ SHORT WinRAR.00445B8D
00445B34 . 803D B8F64A00>CMP BYTE PTR DS:[4AF6B8],0
00445B3B . 75 50 JNZ SHORT WinRAR.00445B8D
00445B3D . 8D85 A4FAFFFF LEA EAX,DWORD PTR SS:[EBP-55C]
我选择了00445B0E这里,其实哪里都行,只要跳过这里就行
00445B70 . 6A 00 PUSH 0 ; /lParam = NULL
00445B72 . 68 44A24400 PUSH WinRAR.0044A244 ; |DlgProc = WinRAR.0044A244
00445B77 . FF35 C8234C00 PUSH DWORD PTR DS:[4C23C8] ; |hOwner = 002003D4 ('WinRAR - WinRAR (评估版本)',class='WinRarWindow')
00445B7D . 68 344D4A00 PUSH WinRAR.004A4D34 ; |pTemplate = "REMINDER"
00445B82 . FF35 DCF64A00 PUSH DWORD PTR DS:[4AF6DC] ; |hInst = 00400000
00445B88 . E8 77920500 CALL <JMP.&USER32.DialogBoxParamA> ; \DialogBoxParamA
把00445B0E改成00445B0E /EB 7D JMP SHORT WinRAR.00445B8D
保存,再打开发现提示也没有了。
还有WINRAR的“关于”里有个“40天评估版本”非常不好看,拿出reshacker修改,找到那个窗口,很容易的就可以把它改成你想要的字符,比如“注册用户:私仇之路”
,哈哈,大功告成!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)