最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

聯(lián)眾密碼的逆向算法公布

 更新時間:2008年04月14日 19:51:39   作者:  
閑來無事,每天上聯(lián)眾,聯(lián)眾的密碼經(jīng)過加密后保存在本地注冊表里,看看是怎么加密的。下了個ollydbg,一路跟蹤,發(fā)現(xiàn)算法極其簡單,給出Delphi版本的解密算法(加密部分有興趣的一起來討論)。算法比較粗糟,誰幫優(yōu)化一下:)



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ìn)
        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;  

相關(guān)文章

最新評論

大同市| 高邑县| 扎鲁特旗| 邛崃市| 甘肃省| 曲沃县| 吉木乃县| 太谷县| 台中县| 大关县| 安阳市| 黄大仙区| 肥城市| 隆子县| 垦利县| 循化| 沙洋县| 缙云县| 正安县| 灵石县| 永新县| 开江县| 庐江县| 孟津县| 仙桃市| 崇明县| 昆山市| 利川市| 庆阳市| 清新县| 独山县| 应城市| 桓台县| 进贤县| 恩施市| 寿宁县| 尚义县| 蒲城县| 普兰县| 含山县| 新竹市|