delphi破解屏幕保护密码

时间:2010-01-27 09:04:15  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:就知道密码有几位了。假设密码为“12345”则那里会是这样的:79,DC,45,29,52分别与 78,DE,46,2D,57,59,91,2B 进行异或(xor),79 xor 78, -> 1DC xor DE, -> 245 xor 46, -> 329 xor 2D, -> 452 xor 57, -> 5就可得到密码了,从密钥可知,密码最长只有8位。用这个就可以了:
  正文:

先,屏保密码最多8位,再多设也无意义,可以试一下。
注册表中 HKEY_CURRENT_USERPanel找
ScreenSave_Data,鼠标双击它后出现“编辑二进制值”窗口,
在下面的键值框中看最右边的字符,(两行,具体看密码多少定)两个字符为一组,数一下几组就知道密码有几位了。假设密码为“12345”则那里会是这样的:79,DC,45,29,52分别与 78,DE,46,2D,57,59,91,2B 进行异或(xor),

79 xor 78, -> 1
DC xor DE, -> 2
45 xor 46, -> 3
29 xor 2D, -> 4
52 xor 57, -> 5
就可得到密码了,从密钥可知,密码最长只有8位。


用这个就可以了:



function TfrmMagic.FindScreenSaverPwd():String;//查找屏幕保护的口令
var
BTmp:Array[0..15] of Byte;
STmp:Array[1..32] of Byte;
intCount:Integer;
i:Integer;
j:Integer;
strTmp:String;
bytTmp:Byte;
strResult:String;
begin
  BTmp[0]:=(72);
  BTmp[1]:=(238);
  BTmp[2]:=(118);
  BTmp[3]:=(29);
  BTmp[4]:=(103);
  BTmp[5]:=(105);
  BTmp[6]:=(161);
  BTmp[7]:=(27);
  BTmp[8]:=(122);
  BTmp[9]:=(140);
  BTmp[10]:=(71);
  BTmp[11]:=(248);
  BTmp[12]:=(84);
  BTmp[13]:=(149);
  BTmp[14]:=(151);
  BTmp[15]:=(95);
  for i:=1 to 32 do
  begin
    STmp[i]:=0;
  end;
  MagicReg:=TRegistry.Create;
  MagicReg.RootKey:=HKEY_CURRENT_USER;
  MagicReg.OpenKey('Control Panel',True);
  intCount:=MagicReg.ReadBinaryData('ScreenSave_Data',STmp,Sizeof(STmp));
  if intCount>0 then
  begin
    j:=1;
    For i:=1 To trunc((IntCount-1)/2) Do
begin
      if STmp[i]<>00 then
      begin
        strTmp:=Chr(STmp[j]);
        j:=j+1;
        strTmp:=strTmp + Chr(STmp[j]);
        bytTmp:=gStrToByte(strTmp);
        strResult:=strResult+Chr(bytTmp Xor BTmp[i-1]);
        j:=j+1;
      end;
    end;
  end;
  MagicReg.CloseKey;
  MagicReg.Free;
  FindScreenSaverPwd:=strResult;
end;

delphi破解屏幕保护密码》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/2010-01-27/12457.html


关键字:

关于《delphi破解屏幕保护密码》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td