首页
社区
课程
招聘
[原创]Pediy“瑞星”实现快速禁用
发表于: 2010-1-23 22:30 16178

[原创]Pediy“瑞星”实现快速禁用

2010-1-23 22:30
16178

Pediy“瑞星”实现快速禁用
     每次禁用都要输入验证码,不甚其烦。有没有快速禁用的方法呢?琢磨了一天,终于实现。
     方便起见,我还是用softice。在虚拟机中装上瑞星,Ctrl+D进入softice,bpx LoadBitmapA下断后Ctrl+D返回桌面,右键右下脚瑞星托盘图标,选“禁用所有监控”,即被断下。再按F12,返回上一层函数,此时softice显示进入RsTray的地址空间。当前地址为001B:00ef4874,看看在哪个模块里,用mod命令见下图,
   
  

    原来在rav文件夹下的dll文件中。显然这个就是我们的key dll了。 再次进入softice,先bd 0即禁用0号断点,,而后下断bpx SetFocus 并按下Ctrl+D被立即断下。
PUSH ECX                                 ; /Arg10
MOV ECX,DWORD PTR SS:[ESP+24]           
SUB EDX,ECX                              
PUSH EDX                                 ; |Arg9
MOV EDX,DWORD PTR DS:[ESI+18C]         
PUSH EDX                                 ; |Arg8
MOV EDX,DWORD PTR DS:[ESI+188]         
PUSH EDX                                 ; |Arg7
MOV EDX,DWORD PTR DS:[ESI+184]      
PUSH EDX                                 ; |Arg6
MOV EDX,DWORD PTR DS:[ESI+180]         
PUSH EDX                                 ; |Arg5
MOV EDX,DWORD PTR DS:[10015CB0]      
PUSH EDX                                 ; |Arg4 => 00000000
MOV EDX,DWORD PTR DS:[EDI]            
PUSH EDX                                 ; |Arg3
PUSH EAX                                 ; |Arg2
PUSH ECX                                 ; |Arg1
LEA ECX,DWORD PTR DS:[ESI+1EC]        
CALL  00ef6170                    //关键call跟进
MOV EAX,DWORD PTR DS:[EDI]
PUSH 477                                  ; /ControlID = 477 (1143.)
PUSH EAX                                 ; |hWnd  //确认验证码的对话框窗口句柄
CALL DWORD PTR DS:[<&USER32.GetDlgItem>] ; \GetDlgItem //显示4位验证码的小图片窗口
MOV ESI,EAX
JE SHORT 00ef49CE
PUSH 0
PUSH 4
PUSH 0C5
PUSH ESI
CALL EBX
PUSH -1
PUSH 0
PUSH 0B1
PUSH ESI
CALL EBX
PUSH 0
PUSH 0
PUSH 0B7
PUSH ESI
CALL EBX
PUSH ESI                                   ; /hWnd
CALL DWORD PTR DS:[<&USER32.SetFocus>]   ; \SetFocus    //断在这里
      输入bd 1,暂时去除SetFocus断点的影响,Ctrl+D返回桌面,此时已经弹出了确认验证码的对话框,当前闪烁的输入焦点当然就是SetFocus的功劳了。显然已经生成了验证码,那么我们就要退回去看,不远处在001B:00ef498a处有个CALL  00ef6170  且push了很多参数,那就F8单步跟进瞧瞧。进入后单步几下来到如下图所示高亮的call处,

   

   再跟进来到下面:
PUSH ESI
MOV ESI,ECX
MOV EAX,DWORD PTR DS:[ESI]
PUSH EAX                                   ; /hWnd
CALL DWORD PTR DS:[<&USER32.IsWindow>]   ; \IsWindow
TEST EAX,EAX
NZ SHORT 00ef6152
POP ESI
RETN
MOV ECX,ESI
CALL 00ef6080   //生成验证码的重要call继续跟进来到下面
MOV ECX,ESI
CALL 00ef5CB0
MOV EAX,1
POP ESI
RETN

00ef6080:
…………
XOR EBX,EBX
LEA EDI,DWORD PTR DS:[ESI+1C]
TEST BL,1
MOV ECX,ESI
JE SHORT 00ef60A4
CALL 00ef5DB0        // 算法call1
JMP SHORT 00ef60A9
CALL 00ef5E00         //算法call2
MOV ECX,ESI
MOV BYTE PTR DS:[ESI+EBX+8],AL  //保存本次循环生成的一位验证码
…………………….
INC EBX
ADD EDI,4
CMP EBX,4        // 循环生成四位验证码
JL SHORT 00ef6096

算法call1
00ef5DB0  /$  51            PUSH ECX
00ef5DB1  |.  56            PUSH ESI
00ef5DB2  |>  E8 613D0000   /CALL   00ef9B18
00ef5DB7  |.  894424 04     |MOV DWORD PTR SS:[ESP+4],EAX
00ef5DBB  |.  33F6          |XOR ESI,ESI
00ef5DBD  |.  8D49 00       |LEA ECX,DWORD PTR DS:[ECX]
00ef5DC0  |>  8A4434 04     |/MOV AL,BYTE PTR SS:[ESP+ESI+4]
00ef5DC4  |.  3C 41         ||CMP AL,41
00ef5DC6  |.  7C 04         ||JL SHORT 00ef5DCC
00ef5DC8  |.  3C 5A         ||CMP AL,5A
00ef5DCA  |.  7E 08         ||JLE SHORT 00ef5DD4
00ef5DCC  |>  3C 61         ||CMP AL,61
00ef5DCE  |.  7C 19         ||JL SHORT 00ef5DE9
00ef5DD0  |.  3C 7A         ||CMP AL,7A
00ef5DD2  |.  7F 15         ||JG SHORT 00ef5DE9
00ef5DD4  |>  0FBEC0        ||MOVSX EAX,AL
00ef5DD7  |.  50            ||PUSH EAX
00ef5DD8  |.  68 34170110   ||PUSH 10011734     ;  ASCII "SOIlo"
00ef5DDD  |.  E8 DE340000   ||CALL 00ef92C0
00ef5DE2  |.  83C4 08       ||ADD ESP,8
00ef5DE5  |.  85C0          ||TEST EAX,EAX
00ef5DE7  |.  74 08         ||JE SHORT 00ef5DF1
00ef5DE9  |>  46            ||INC ESI
00ef5DEA  |.  83FE 04       ||CMP ESI,4
00ef5DED  |.^ 72 D1         |\JB SHORT 00ef5DC0
00ef5DEF  |.^ EB C1         \JMP SHORT 00ef5DB2
00ef5DF1  |>  8A4434 04     MOV AL,BYTE PTR SS:[ESP+ESI+4]
00ef5DF5  |.  5E            POP ESI
00ef5DF6  |.  59            POP ECX
00ef5DF7  \.  C3            RETN

/算法call2
00ef5E00  /$  51            PUSH ECX
00ef5E01  |.  56            PUSH ESI
00ef5E02  |>  E8 113D0000   /CALL  00ef9B18
00ef5E07  |.  894424 04      |MOV DWORD PTR SS:[ESP+4],EAX
00ef5E0B  |.  33F6          |XOR ESI,ESI
00ef5E0D  |.  8D49 00       |LEA ECX,DWORD PTR DS:[ECX]
00ef5E10  |>  8A4434 04     |/MOV AL,BYTE PTR SS:[ESP+ESI+4]
00ef5E14  |.  3C 30         ||CMP AL,30
00ef5E16  |.  7C 19         ||JL SHORT  00ef5E31
00ef5E18  |.  3C 39         ||CMP AL,39
00ef5E1A  |.  7F 15         ||JG SHORT  00ef5E31
00ef5E1C  |.  0FBEC0       ||MOVSX EAX,AL
00ef5E1F  |.  50            ||PUSH EAX
00ef5E20  |.  68 3C170110   ||PUSH  1001173C  ;  ASCII "015"
00ef5E25  |.  E8 96340000   ||CALL  00ef92C0
00ef5E2A  |.  83C4 08       ||ADD ESP,8
00ef5E2D  |.  85C0          ||TEST EAX,EAX
00ef5E2F  |.  74 08         ||JE SHORT  00ef5E39
00ef5E31  |>  46            ||INC ESI
00ef5E32  |.  83FE 04       ||CMP ESI,4
00ef5E35  |.^ 72 D9         |\JB SHORT  00ef5E10
00ef5E37  |.^ EB C9         \JMP SHORT  00ef5E02
00ef5E39  |>  8A4434 04     MOV AL,BYTE PTR SS:[ESP+ESI+4]
00ef5E3D  |.  5E            POP ESI
00ef5E3E  |.  59            POP ECX
00ef5E3F  \.  C3            RETN
    有兴趣的可以看看这些算法,不是很难。我的目的是要尽快找到爆破点,时间宝贵啊。注意到刚才有一句:MOV BYTE PTR DS:[ESI+EBX+8],AL  //保存本次循环生成的一位验证码
那我就在验证码的保存地址上下内存读取断点,输入命令:Bpm 1b:f2401c r
Ctrl+d返回到桌面后随即被断下,这次读取是绘制验证码,继续Ctrl+d这次返回到桌面,随便输入4位验证码,确定后立即被断下,接着单步几下就到爆破点了。如下图

   

      输入a 1b:00ef582a 回车后再输入xor eax,eax 回车即完成修改。爆破后直接跳到以下代码处。
00ef59B3   MOV EAX,DWORD PTR DS:[ESI+164]
00ef59B9   PUSH 1                                     ; /Result = 1
00ef59BB   PUSH EAX                                 ; |hWnd
00ef59BC   MOV DWORD PTR DS:[ESI+22C],1            //这里置位禁用标志
00ef59C6   CALL DWORD PTR DS:[<&USER32.EndDialog>]  ; \EndDialog
现在bd * ,然后Ctrl+d返回到桌面,试了一下不再需要输入验证码了,再执行几个驱动工具,瑞星也不报毒了,达到快速禁用的目的。接下来就是收尾工作,用od载入rspalvd.dll,修改后保存,再拷回原来的瑞星目录。这里有个小技巧,你可以把瑞星的几个监控进程结束掉,并以最快的速度覆盖原文件,这里可以打个时间差,否则你是改不了的。最后呼吁,请支持国产软件!

                       Happy birthday天易!
      
                                                                                 By 天易love 2010-1-23


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (46)
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
happy birthday!
我很好奇,干嘛不直接把他卸载掉呢,难道和mm共用?
2010-1-23 22:48
0
雪    币: 107
活跃值: (404)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
原来xx  rising如此简单...
123456
2010-1-23 23:10
0
雪    币: 1981
活跃值: (771)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
4
happy birthday?  
happy birthday!
2010-1-23 23:21
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=;]...[/QUOTE]
留着它有空再玩玩,这比分析病毒有意思多了,想象力不咋的!
2010-1-23 23:49
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=;]...[/QUOTE]
留着它有空再玩玩,这比分析病毒有意思多了,想象力不咋的!
2010-1-23 23:55
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
传参部分 很简单
2010-1-24 01:08
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
天易love  大牛又发东西了。
2010-1-24 10:02
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
9
明明不喜欢它,还装着它,何苦呢!
要是再不行就轻装上阵,裸奔去,哈哈……
2010-1-24 10:18
0
雪    币: 564
活跃值: (42)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
10
学习了。。。。。
2010-1-24 10:40
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
11
裸奔多年现在就当穿条裤衩,也可防下小人!有何奇怪?难道你会不喜欢穿裤衩?有这种eccentricity?
2010-1-24 11:22
0
雪    币: 279
活跃值: (33)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
毫无价值,瑞星下次升级时就会替换回来
2010-1-24 13:10
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
13
火星人说话了,可惜我从不自动升级。升级有用吗?看得懂就看,看不懂就回天上去!
2010-1-24 13:51
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
14
太有才了,火星人
2010-1-24 16:38
0
雪    币: 421
活跃值: (83)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
softice不会用,只稍微会点OD。感觉能用softice的都是骨灰级的牛牛. 膜拜
2010-1-24 17:37
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
16
只要你用驱动在RING0搞怪,啥都可以XX,是不是rising无所谓。
只要你能调试目标程序,对程序流程你想怎么改就怎么改,只是你的能力能不能找到关键或能不能改得好的问题。
“用户自己允许softice启动,开着softice调试杀毒软件”和“病毒进入系统后加驱关闭杀毒软件”两者不能等同,杀毒软件只要防住后者就可以了。
2010-1-24 18:10
0
雪    币: 279
活跃值: (33)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
呵呵,你看懂了我的话的意思了么?你修改后改动了它的文件,下次升级时它当然会替换回来(除非是瑞星实在太垃圾),至于你不开自动升级功能,那么,你用瑞星做什么?
2010-1-24 20:52
0
雪    币: 367
活跃值: (20)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
18
不如卸载省事
2010-1-24 21:31
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
19
你怎么知道升级就会替换我改的文件?难道升级连图标一起升级了?讨论这个毫无意义。我装杀毒软件用来测试不行吗?想不通慢慢想。
2010-1-24 23:50
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
他的意思是 升级时 会对自身的文件校验一次
我记得MJ好像说过 只要qq或者迅雷的文件一被修改 360就会报
难道瑞星连自己都检查一下?
2010-1-25 00:17
0
雪    币: 486
活跃值: (13)
能力值: ( LV9,RANK:430 )
在线值:
发帖
回帖
粉丝
21
LZ这是公然调戏RS的行为啊,吼吼吼.
2010-1-25 00:21
0
雪    币: 279
活跃值: (33)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
22
这年头,升级时不较验自身的杀软都是白痴,这都不明白,你太高估自己了
2010-1-25 16:48
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
23
没你明白的多,你能告诉我瑞星校验了哪些文件吗?我实在是不知道。
2010-1-25 17:01
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
24
管他校验不校验,能杀毒能用不就行么。
楼主调试瑞星碰到反调试么?我用OD无法调试,你用sice碰到无法调试的情况么?
我用一个版本的瑞星,卸载卸不掉,每次卸掉后,过阵子他又偷偷安装了,这个你碰到么?

谢谢!
2010-1-26 10:26
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
25
瑞星咋这么流氓呢?  哈哈  强烈支持楼主   装瑞星调试着玩,膜拜ing。。。
2010-1-26 10:36
0
游客
登录 | 注册 方可回帖
返回
//