瑞星2006下载版跳过安装时的序列号检验

本文介绍了一种破解瑞星2006安装程序中序列号验证的方法,通过对程序代码进行逆向工程,修改特定指令使得安装过程不再检查序列号的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        上www.rising.com.cn上可以下载到最新版的瑞星2006,但是安装时需要输入序列号,没有序列号就不能安装下去了。本文只是解除这个输入的检验,安装后不能网上升级,所以其实是对瑞星没有多大影响的,仅仅是研究罢了。

     先把下回来的文件用winrar解压(其实是自解压文件来的),我是2006年4月17日下载的版本,用 win32dasm打开瑞星,使用字符串参考查找到字符串

 String Resource ID=00126: "Your Product Serial Number is invalud, please check it."
 String Resource ID=00127: "Your Product Serial Number is:

双击分别到达使用了这两个字符串的代码处,发现调用" Your Product Serial Number is:"字符串的较错误的在前,于是来到“正确”的地方,向上可以找到几个跳转,

0041EFA9  |.  51            push    ecx                              ; /Arg1
0041EFAA  |.  B9 E0684300   mov     ecx, 004368E0                    ; |
0041EFAF  |.  E8 6C67FEFF   call    00405720                         ; /Setup.00405720           判断函数入口
0041EFB4  |.  85C0          test    eax, eax                                    ;返回结果eax为1则通过序列号,否则不能下一步
0041EFB6  |.  8945 30       mov     [ebp+30], eax                      ;保存判断的结果,留待后用
0041EFB9  |.  74 23         je      short 0041EFDE                      ;不能让它跳
0041EFBB  |.  A0 FA684300   mov     al, [4368FA]
0041EFC0  |.  84C0          test    al, al                                 
0041EFC2  |.  74 1A         je      short 0041EFDE
0041EFC4  |.  8D5424 20     lea     edx, [esp+20]
0041EFC8  |.  68 94694300   push    00436994
0041EFCD  |.  52            push    edx
0041EFCE  |.  E8 ED710000   call    004261C0
0041EFD3  |.  83C4 08       add     esp, 8
0041EFD6  |.  F7D8          neg     eax
0041EFD8  |.  1BC0          sbb     eax, eax
0041EFDA  |.  40            inc     eax
0041EFDB  |.  8945 30       mov     [ebp+30], eax
0041EFDE  |>  8B45 30       mov     eax, [ebp+30]
0041EFE1  |.  8B1D 88F24200 mov     ebx, [<&USER32.ShowWindow>]      ;  USER32.ShowWindow
0041EFE7  |.  85C0          test    eax, eax
0041EFE9  |.  0F84 CD010000 je      0041F1BC
0041EFEF  |.  8D7C24 20     lea     edi, [esp+20]
0041EFF3  |.  83C9 FF       or      ecx, FFFFFFFF

发觉直接修改跳转指令是不行的,因为瑞星后面有调用到函数判断结果的地方,只是修改几个跳转是不行的,所以,最好的办法是到它的判断函数里面,把返回的结果直接改为1

00405720  /$  81EC 50020000 sub     esp, 250           ;函数入口
00405726  |.  53            push    ebx
00405727  |.  8BD9          mov     ebx, ecx
00405729  |.  55            push    ebp
0040572A  |.  56            push    esi
0040572B  |.  8DB3 14090000 lea     esi, [ebx+914]
00405731  |.  57            push    edi
00405732  |.  8BFE          mov     edi, esi
00405734  |.  83C9 FF       or      ecx, FFFFFFFF
00405737  |.  33C0          xor     eax, eax
00405739  |.  33ED          xor     ebp, ebp
0040573B  |.  F2:AE         repne   scas byte ptr es:[edi]
0040573D  |.  F7D1          not     ecx
0040573F  |.  49            dec     ecx
00405740  |.  897424 14     mov     [esp+14], esi
00405744  |.  74 24         je      short 0040576A
00405746  |.  68 307A4300   push    00437A30
0040574B  |.  56            push    esi
0040574C  |.  E8 6F0A0200   call    004261C0
00405751  |.  83C4 08       add     esp, 8
00405754  |.  85C0          test    eax, eax
00405756    ^ 75 90         jnz     short 004056E8                   ;  此处改为不跳转即可,那后面的mov eax,1就可被执行了
00405758  |.  5F            pop     edi
00405759  |.  5E            pop     esi
0040575A  |.  5D            pop     ebp
0040575B  |.  B8 01000000   mov     eax, 1
00405760  |.  5B            pop     ebx
00405761  |.  81C4 50020000 add     esp, 250
00405767  |.  C2 0400       retn    4

得到的最好的修改办法是修改
00405756    ^ 75 90         jnz     short 004056E8 为 nop
那么函数返回值eax绝对是1了,而且不会有其它影响。

分析到处为止,只是跳过了序列号,事实上我没有继续安装下去,因为我没有用瑞星,以前的经验发觉瑞星经常时不时给我来个cpu使用100%,害我的机器动都动不了,现在用norton了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值