登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 信息 空间 VB VC Delphi Java Flash 补丁 控件 安全 黑客 电子书 笔记本 手机 MP3 杀毒 QQ群 产品库 分类信息 编程网站
  立华软件园 - 安全技术中心 - 技术文档 - 破解专题 技术文章 | 相关下载 | 电子图书 | 攻防录像 | 安全网站 | 在线论坛 | QQ群组 | 搜索   
 安全技术技术文档
  · 安全配制
  · 工具介绍
  · 黑客教学
  · 防火墙
  · 漏洞分析
  · 破解专题
  · 黑客编程
  · 入侵检测
 安全技术工具下载
  · 扫描工具
  · 攻击程序
  · 后门木马
  · 拒绝服务
  · 口令破解
  · 代理程序
  · 防火墙
  · 加密解密
  · 入侵检测
  · 攻防演示
 安全技术论坛
  · 安全配制
  · 工具介绍
  · 防火墙
  · 黑客入侵
  · 漏洞检测
  · 破解方法
 其他安全技术资源
  · 攻防演示动画
  · 电子图书
  · QQ群组讨论区
  · 其他网站资源
最新招聘信息

透视Win95的密码档
发表日期:2003-10-14作者:苏俊铭[] 出处:  

  基本上若您的电脑曾经让别人使用过的话,那很可能的,您的密码已经被他人

所获知了(包括您上Internet 用的 Username & Password),只要Copy您在Win95

目录下的.PWL档即可着手进行解码,然後您的网路费可能就莫名其妙的增加了。

  有人就问了:可是我的Win95在登入时需键入密码啊,别入又不知道我的密码!

需知道要获得 .PWL 档并不一定非得进入Win95,只要用一片DOS磁片开机 or 按F4

ⅱF8 ...

在网路上有一支程式叫 Glide.EXE,此程式宣称能解 .PWL 档,的确是如此,

不过此程式有某些先天上的限制,以至於所解出来的东东可能只有一小部份。相信

有些人已试过这支程式了,稍後我会说明这支程式的原理以及为什麽在大多数的情

况之下只能解出一小部份的原因。幸运的话这「一小部份」已含有第一组完整的

Username & Password 了。

  Win95 是采用 RC4 的编码方法,此演算法是不可逆的,也就是说您无法将

.PWL档解回原来的样子,除非您有 Key(或用暴力法)·小弟先说一下 RC4

大概的流

程:

你拥有一个 32 Bit 的Key & 待解码的资料(就称为 SData 吧)

以下为解码程式所做的事情:

1.初始化一个Table, 此Table的资料结构为

{

 unsigned char Table[256];

 unsigned char char x,y;

}

它会将Table依序填入0,1,2,.....FFh, 最後将 x,y 设为 00.

2.将此256 Bytes 的 Table 根据 Key 做一些Swap的动作, 完成

之後, 此Table看似不规则排列了.

到目前为止算是[初始化]的动作吧.

再在是解码的动作:

3.

for(counter=0; counter<SData的长度; counter++)

{

 x=(x+1)%256;

 y=(Table[x]+y)%256;

 swap(&Table[x], &Table[y]);

 XOR_Index=(Table[x]+Table[y]) %256;

 SData[counter] ^= Table[Xor_Index];

}

所以在解码期间不仅x,y在变,连Table的内容也在变.

****重点****

假设SData的大小为 100 Bytes,

如果我要先解开 20 Byte, 则流程为 1 -> 2 -> 3

再来我会判断此20个Byte是否为正确的资料,if 正确的话我再

解开剩下的 90个Byte 流程为 2 -> 3 ,若分成多的片断的话,则

统程应还是这样的:

1 -> 2 -> 3 解最前面的 20 Byte

2 -> 3 再解 20 Byte

2 -> 3 再解 20 Byte

2 -> 3 再解 20 Byte

2 -> 3 再解 20 Byte

反正第一次就是从 1 开始啦!!! :)

====================================================

PWL的格式是(从0208h开始看):

20 byte (Username)

2 byte (第一组在档案的 Offset)----------------+

2 byte (第二组在档案的 Offset)--------------+ |

....... | |

Tag1:长度(2 byte),"连线到"的名称,Password <-+-+

长度(2 byte),"连线到"的名称,Password <-+

====================================================

Win95 大概的流程是:

1 -> 2 -> 3 解码到Tag1减1的地方(此时Username现形了)

if(Username<>登入95时的Username)

{

 拨号网路的密码栏将是空的(即使储存密码有打勾)

 (跳到Step1也没用,因为Key不对嘛,再解下去也是不对的.)

}

else{

 Step1: 1 -> 2 -> 3 从Tag1的地方开始解码.

 While(NotEND)

 {

  2 -> 3 解2个byte(得到长度,假设解出後,得到 YY)

  2 -> 3 解YY个Byte(得到"连线到"的名称&Password)

  if(和"连线到"的名称符合的话)

  {

   将Password填入密码栏;

   Break;

  }

 }

}

Win95的问题就出在 Username 一定是大写, 而且不足20个Byte的地方以空白填入,

更糟糕的是PWL的档名就是Username, 基於此原理我们已得知前面20Byte每个Byte

各是XOR什麽东东了, 我们假设为:

12 4F 33 20 7F F6 D9 3C 63 AA 11 40 32 DE 46 55 77 2C 3A AD

其实从PWL可分析到共有几组帐号,至於怎麽分析的呢? 我也忘了.反正可以就是啦!

So, 0108h+几组*2= Tag1 .

哈,我已经知道第一组帐号存在那里了.(0108h是固定的)

即然知道第一组的位置,常然也就得到了紧接在Username 的那 2 个Byte,

现在我们已拥有了 22 个byte了喔!

怎麽解第一组呢?

因为95在Step1的地方又重覆了一次 1 -> 2 -> 3

所以我们可直接使用我们幸苦得

到的 22 Byte 从Tag1的地方将它给XOR下去.

如果"连线到"的名称+Password的长度

不会很长的话----> 完全显露无遗(可能还秀出了第二组的一点点喔!)

以上就是 Glide.EXE 所利用的原理(根本不需要Key就解出一组出来了)

如果你要将所有的帐号(Hinet'Seednet'成大'广通...不会吧!帐号那麽多,借一组来用

用可以吗?)全部抓出来, 那很抱歉,你必需知道 Key.

\__ 在成大BBS和女生Talk多了,打错了.

至於 Key 是怎麽来的呢?

我们在进入Win95时,不是会出现一个输入密码的Dialog吗?

对啦,就是利用这密码

换算来的啦!(没有的话,表示你没设定密码, 你的Key=00000000h)

以下是Win95将登入密码转为Key的程式(最後的eax就是你的Key喔):

push esi

xor eax,eax

mov si,密码长度+1

cmp si,ax

jz 7fcb19e7

mov edx,offset 密码

movzx ecx,byte ptr [edx]

7fcb19d1:

add eax,ecx

inc edx

mov ecx,eax

shl ecx,7

shr eax,19h

or ecx,eax

dec si

mov eax,ecx

jnz 7fcb19d1

7fcb19e7:

pop esi

ret 8

嗯,组合语言比较乱, 用 C 来看(结果一样):

unsigned long result = 0L;

for( i = 0; i < passwordLen + 1; i++ )

{

 int tmp = ( int ) ( result >> 25 );

 result += toupper( password[ i ] );

 result = ( result << 7 ) | tmp;

}

就是一直转来转去再加来加去的啦!

所以若你知道某人进入Win95的密码,那你就可以算出 Key, 也就可取得某人

所使用的所有帐号了.怎麽做呢? 喔, 这不必写任何程式, 只要用SoftICE就

可以了, 所有的动作都在 Mspwl32.dll中, 设个断点, 一次一组,方便又好用.

如果你连此人进入Win95的密码都不知道的话, 那只好用暴力法了.

1.编个密码-->转成Key-->经RC4-->什麽!前20Byte的username不对--再来--+

^\-----------------------------------------------------------+

2.指定一个Key-->经RC4-->什麽!前20Byte的username不对--再来--+

^\----------------------------------------------------+

那个好用,就得看运气了. :)

Glide.EXE 好像在yhq可取得, 不知道.....忘了????????

注:

这些Bug後来Microsoft出了一支 Mspwl32.dll 的更新程式, 听说可解决此

问题.我没试过,所以我也不知道. 你可看看你的 .PWL 档的最前面4个Byte

是否为 b0h,"MFN", 若是的话, 表示你有危险啦!!!

我来说两句】 【发送给朋友】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 透视Win95的密码档

 ■ [欢迎对本文发表评论]
用  户:  匿名发出:
您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。

最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接  
Copyright ©2001-2006 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00194