分享
 
 
 

透视Win95的密码档

王朝system·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

透视Win95的密码档

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

作者:苏俊铭, 欢迎散播.......................

SJMisBestHacker.............................

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

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

所获知了(包括您上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", 若是的话, 表示你有危险啦!!!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有