中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 综合其他 > 算法设计
如何获取屏幕保护程序的密码
作者:qutemouse 时间:2002-01-05 11:59 出处:互联网 责编:chinaitpower
              摘要:如何获取屏幕保护程序的密码

  大家都知道,WINDOWS9X只是一个桌面操作系统,它的稳定性和保密性一直受大家的批评。现在,我就通过介绍提取WINDOWS98的屏幕保护程序的密码的算法来说明WINDOWS98的保密性是怎样的差!

一、 屏幕保护程序(以下简称屏保)密码的加密算法

通常,一个加密过程如下图,屏保密码的加密过程也一样,但评价一个加密算法是否

加密密钥

加密算法

明文

密文

 

 

 

  一个强加密算法,就要看密钥怎么产生,加密算法是否强大。WINDOWS9的屏保密码的明文是有限制的,它的长度最大为128个字符,它的字符集是字母表,数字,和一些标点符号,也就是可视的ASCII字符集。WINDOWS98密码密文的长度是明文长度的两倍,它保存在注册表子键的HKEY_CURRENT_USER\Control Panel\Desktop的一个名为ScreenSave_Data的二进制值里。

 

l         加密算法

首先,WINDOWS98把密码明文中小写字母全转换为大写字母,其他字符不变。

然后,WINDOWS98按顺序把明文的每一个ASCII值与对应的一个8Bits的密钥进行异或(XOR),这样会得到与明文同样长度的数值串,把这些每一个数值转换为十六进制,再把这些十六进制的数值转换为字符串,按顺序连接起来,就成为一个两倍长度于明文的密文。密钥总是固定的,共有128BYTES

最后,算法把这个密文字符串以十六进制ASCII码值的形式加上00H为结束标志保存在注册表里。下面通过例子说明这个算法:

例如:屏幕保护程序的密码是Visual Basic,转换成大写是VISUAL BASIC。相应的十六进制ASCII码值是:

 

密码明文

V

I

S

U

A

L

SPACE

B

A

S

I

C

ASCII

56

49

53

55

41

4C

20

42

41

53

49

43

密钥

48

EE

76

1D

67

69

A1

1B

7A

8C

47

F8

XOR

1E

A7

25

48

26

25

81

59

3B

DF

0E

BB

 

把异或后的结果(十六进制值)当作字符串(数值ABCDEF以大写表示):1EA72523262581593BDF0EBB。共二十四个字符,把字符再以十六进制值ASCII码值表示为:

 

字符

1

E

A

7

2

5

4

8

2

6

2

5

16进制数

31

45

41

37

32

35

34

38

32

36

32

35

 

字符

8

1

5

9

3

B

D

F

0

E

B

B

16进制数

38

31

35

39

33

42

44

46

30

45

42

42

 

       而注册表里SCREENSAVE_DATA的值为

"ScreenSave_Data"=hex:31,45,41,37,32,35,34,38,32,36,32,35,38,31,35,39,33,42,

44,46,30,45,42,42,00

 

l         获取密钥

WINDOWS98的屏保密码的密钥共有128BYTES,怎样才能知道全部的密钥呢?其实很简单,加密算法已知道,想知道密钥并不困难。像我在前面分析屏保密码那样做,设一个128BYTES长的屏保密码(千万要记住哦*o*)。然后,取出加密后的密文,共256BYTES,把这256ASCII码数值表示为字符,按两个一对再合成一个十六进制的数值,共128个。你现在只要用计算器,逐个把明文的ASCII码值(记得把小写字母转换成大写字母)与刚才所得的128个数值进行异或,你就可以得到全部128个密钥了。下面是我测出来的128 BYTES 密钥:

 

密钥:48,EE,76,1D,67,69,A1,1B,      7A,8C,47,F8,54,95,97,5F,

      78,D9,DA,6C,59,D7,6B,35,      C5,77,85,18,2A,0E,52,FF,

      00,E3,1B,71,8D,34,63,EB,      91,C3,24,0F,B7,C2,F8,E3,

      B6,54,4C,35,54,E7,C9,49,      28,A3,85,11,0B,2C,68,FB,

      EE,7D,F6,6C,E3,9C,2D,E4,      72,C3,BB,85,1A,12,3C,32,

      E3,6B,4F,4D,F4,A9,24,C8,      FA,78,AD,23,A1,E4,6D,9A,

      04,CE,2B,C5,B6,C5,EF,93,      5C,A8,85,2B,41,37,72,FA,

      57,45,41,A1,20,4F,80,B3,      D5,23,02,64,3F,6C,F1,0F.

 

二、 程序实现提取屏保密码

知道了屏保密码得秘密。我们可以用VB6写一个程序来提取程序的密码。由于篇幅的关系,程序代码不便列出,有需要的朋友可以到网站http://www.csdn.net下载。

 

三、 屏幕保护程序

很多讲VB的书都会教大家怎样写屏幕保护程序,无非是WINDWOS98怎样调用屏保,怎样响应键盘、鼠标的事件,怎样设置屏保启动参数,怎样屏蔽ALT+CTRL+DEL的热启动,怎样令屏保ALWAYS ON TOP等。但很少书介绍屏保密码的响应。其实也很容易,只要你在鼠标和键盘的响应事件里加上密码的确认就可以了。

在注册表子键的HKEY_CURRENT_USER\Control Panel\Desktop里还有几个有关屏保的参数,字符串 "ScreenSaveTimeOut"="840" 是屏保的等待时间,字符串”ScreenSaveActive"="1" 是否启动屏幕保护程序的标志,“1”为是,“0”为否DWORD"ScreenSaveUsePassword"=dword:00000001 是屏幕保护程序是否用密码保护,00000001为是,00000000为否。你可以根据SCREENSAVEUSEPASSWORD的值来确认是否使用密码保护你的屏保。

四、 忠告

大家使用密码时一定要小心,尽量不要使用相同的密码。如果你用银行存折的密码来设置屏保的密码,那别人来取你的密码是多么容易的事情!这篇文章只是给大家介绍屏保的加密算法,希望大家有所收获!

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有