联众密码的逆向算法公布

所属分类: 实用技巧 / 应用技巧 阅读数: 1732
收藏 0 赞 0 分享



function Decode(aValue:String):string;
var
    iValue:array [0..63]of Byte;
    i,j,k,iAL,iCL:Byte;
    Pass:array[0..15]of char;  //密码最长不超过15位
begin
    //str to int
    i:=0;
    j:=0;
    while (1=1) do
    begin
        //这里需要改进
        j:=Pos(' ',aValue);
        if j<=0 then
        begin
            iValue[i]:=strToint(aValue);
            break;
        end;
        iValue[i]:=StrToInt(Copy(aValue,1,j-1));
        inc(i);
        aValue:=copy(aValue,j+1,length(aValue)-j);
    end;

    //xor
    for i:=63 downto 1 do
        iValue[i-1]:=iValue[i-1] xor iValue[i];

    //
    for i:=15 downto 1 do
    begin
        iAL:=iValue[i];
        iCL:=iAL;
        ASM
            MOV AL,iAL
            SAR AL,4
            AND AL,$F
            MOV iAL,AL
        end;    //直接用SHR也可以,不过反汇编是SAR,pascal里没有SAR   
        j:=iAL+$30;
        iAL:=iValue[j];
        iCL:=iCL and $f;
        iCL:=iValue[0]+iCL;
        k:=iCL;
        iCL:=iValue[k];
        iValue[j]:=iCL;
        iValue[k]:=iAL;
    end;

    i:=iValue[0];
    j:=1;
    while iValue[i]<>0 do
    begin
        Pass[j-1]:=chr(iValue[i]);
        Inc(i);
        Inc(j);
    end;

    Result:=Pass;
end;  

更多精彩内容其他人还在看

Thumbs.db是系统文件详解

Thumbs.db是系统文件详解
收藏 0 赞 0 分享

40余种刻录盘片详细对照分析介绍第1/2页

40余种刻录盘片详细对照分析介绍
收藏 0 赞 0 分享

DVD9与DVD5的区别分析

DVD9与DVD5的区别分析
收藏 0 赞 0 分享

键盘操作优势 IE7快捷键集锦

键盘操作优势 IE7快捷键集锦
收藏 0 赞 0 分享

用好windows自带的“虚拟光驱”之subst命令

用好windows自带的“虚拟光驱”之subst命令
收藏 0 赞 0 分享

人尽可用的Windows小贴士之上篇第1/2页

人尽可用的Windows小贴士之上篇
收藏 0 赞 0 分享

史上最牛的WINDOWS系统文件详解第1/3页

史上最牛的WINDOWS系统文件详解
收藏 0 赞 0 分享

IE6与IE7 浏览器可实现功能汇总

IE6与IE7 浏览器可实现功能汇总
收藏 0 赞 0 分享

Windows网络命令行程序参数说明

Windows网络命令行程序参数说明
收藏 0 赞 0 分享

IE修改INI的优化提速方法附IE 6.INI文件

IE修改INI的优化提速方法附IE 6.INI文件
收藏 0 赞 0 分享
查看更多