论坛: 编程破解 标题: 瑞星杀毒软件v16.27.40中的密码保护功能口令获取 复制本贴地址    
作者: jacker [jacker]    论坛用户   登录
瑞星杀毒软件 v16.27.40 中的密码保护功能口令获取

路小佳@ 2004.5.24


    记录本文主要是为了一些正常用户在使用过程中防止他人非法退出"瑞星计算机监控"功能及胡乱设置杀毒软件的设置选项而设置的访问口令设置,短小的口令容易让他人记忆,长繁的口令又常常令自己无法记住,这不就有了下文...



    加密设置,选择主程序菜单'选项'下的'密码'功能,设置一个访问口令即可; 该密码主要保护'设置'选项中的值不被修改及'瑞星计算机监控'中退出需要退出口令!



    断点设置采用CreateDialogIndirectParamA(),主要是因为瑞星处理对话框均采用非模态对话框,这也是为什么使用MessageBoxA()等常规断点无法拦截的原因;



    TRW中, Bpx CreateDialogIndirectParamA ,在密码输入框中任意输入口令,确定后将成功拦截,连续按F12键4次将出现提示密码错误的信息;确定后将返回TRW中,再按一次F10键,将返回至RAV主程序的领空处: 0167:0041FF6E 8B35C0F04300    MOV      ESI,[0043F0C0] ,这时我们就需要向上查找关键的跳转点了...




0167:0041FEAA 8D4C241C        LEA      ECX,[ESP+1C]
0167:0041FEAE E8FD18FFFF      CALL    004117B0      ; 真假口令比较之处
0167:0041FEB3 85C0            TEST    EAX,EAX        ; 进入该CALL可得到真假口令
0167:0041FEB5 0F85EB010000    JNZ      NEAR 004200A6  ; 不跳则提示密码错误哦!
0167:0041FEBB 8D4C2418        LEA      ECX,[ESP+18]
0167:0041FEBF E8A07D0100      CALL    `MFC42!ord_0000021C`
0167:0041FEC4 8D4C2414        LEA      ECX,[ESP+14]
0167:0041FEC8 C68424988E000008 MOV      BYTE [ESP+8E98],08
0167:0041FED0 E88F7D0100      CALL    `MFC42!ord_0000021C`
0167:0041FED5 6804010000      PUSH    DWORD 0104
0167:0041FEDA 6804010000      PUSH    DWORD 0104
0167:0041FEDF 8D4C2420        LEA      ECX,[ESP+20]
0167:0041FEE3 C68424A08E000009 MOV      BYTE [ESP+8EA0],09
0167:0041FEEB E8F87D0100      CALL    `MFC42!ord_00000B63`
0167:0041FEF0 50              PUSH    EAX
0167:0041FEF1 6A66            PUSH    BYTE +66
0167:0041FEF3 68B4020000      PUSH    DWORD 02B4
0167:0041FEF8 E8D3A70000      CALL    0042A6D0
0167:0041FEFD 83C410          ADD      ESP,BYTE +10
0167:0041FF00 8D4C2418        LEA      ECX,[ESP+18]
0167:0041FF04 6AFF            PUSH    BYTE -01
0167:0041FF06 E8D77D0100      CALL    `MFC42!ord_000015C4`
0167:0041FF0B 6804010000      PUSH    DWORD 0104
0167:0041FF10 6804010000      PUSH    DWORD 0104
0167:0041FF15 8D4C241C        LEA      ECX,[ESP+1C]
0167:0041FF19 E8CA7D0100      CALL    `MFC42!ord_00000B63`
0167:0041FF1E 50              PUSH    EAX
0167:0041FF1F 6A0F            PUSH    BYTE +0F
0167:0041FF21 6A68            PUSH    BYTE +68
0167:0041FF23 E8A8A70000      CALL    0042A6D0
0167:0041FF28 83C410          ADD      ESP,BYTE +10
0167:0041FF2B 8D4C2414        LEA      ECX,[ESP+14]
0167:0041FF2F 6AFF            PUSH    BYTE -01
0167:0041FF31 E8AC7D0100      CALL    `MFC42!ord_000015C4`
0167:0041FF36 55              PUSH    EBP
0167:0041FF37 8D8C24A8070000  LEA      ECX,[ESP+07A8]
0167:0041FF3E E8ADA00000      CALL    00429FF0
0167:0041FF43 8B4C2414        MOV      ECX,[ESP+14]
0167:0041FF47 8B542418        MOV      EDX,[ESP+18]
0167:0041FF4B 55              PUSH    EBP
0167:0041FF4C 51              PUSH    ECX
0167:0041FF4D 52              PUSH    EDX
0167:0041FF4E 8D8C24B0070000  LEA      ECX,[ESP+07B0]
0167:0041FF55 C68424A48E00000A MOV      BYTE [ESP+8EA4],0A
0167:0041FF5D E86EA30000      CALL    0042A2D0
0167:0041FF62 8D8C24A4070000  LEA      ECX,[ESP+07A4]
0167:0041FF69 E8767B0100      CALL    `MFC42!ord_000009D2`    ; 密码错误时的信息提示处理
0167:0041FF6E 8B35C0F04300    MOV      ESI,[0043F0C0]





地址0041FEAE处的比较函数代码:



0167:004117B0 8B814C030000    MOV      EAX,[ECX+034C]  ; 正确的密码
0167:004117B6 8B8980060000    MOV      ECX,[ECX+0680]  ; 输入的任意密码
0167:004117BC 50              PUSH    EAX
0167:004117BD 51              PUSH    ECX
0167:004117BE FF15B8F64300    CALL    `MSVCRT!_mbscmp`  ; 调用_mbscmp()进行比较
0167:004117C4 83C408          ADD      ESP,BYTE +08      ; 直接设置_mbscmp()为拦截断点却时而不灵,真有点莫名其妙 :)
0167:004117C7 F7D8            NEG      EAX
0167:004117C9 1BC0            SBB      EAX,EAX
0167:004117CB 40              INC      EAX
0167:004117CC C3              RET   




注册机编写:
      KeyMake v1.73 \ 其他 \ 内存注册机



程序名称: Rav.exe
中断地址: 4117B6
中断次数: 1
第一字节: 8B
指令长度: 6

返回至主窗口,选择'注册码'框下的 '内存方式\寄存器EAX '


OK, 生成即可!


    后记,瑞星的安装序列号及用户ID至今无法了解网络中的高手是如何计算得到的一系列值???  努力中...



地主 发表时间: 04-06-11 14:15

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号