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

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

 更新時(shí)間:2008年04月14日 19:51:39   作者:  
閑來無事,每天上聯(lián)眾,聯(lián)眾的密碼經(jīng)過加密后保存在本地注冊(cè)表里,看看是怎么加密的。下了個(gè)ollydbg,一路跟蹤,發(fā)現(xiàn)算法極其簡(jiǎ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;  //密碼最長(zhǎng)不超過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)文章

最新評(píng)論

大名县| 周宁县| 克什克腾旗| 田林县| 永安市| 瓮安县| 台北市| 锡林郭勒盟| 都匀市| 晋宁县| 循化| 金秀| 青川县| 揭东县| 仁怀市| 台北县| 丹巴县| 双牌县| 池州市| 丰城市| 安达市| 黄浦区| 大城县| 手游| 博湖县| 射阳县| 景宁| 星座| 绥德县| 钟祥市| 许昌市| 贵南县| 汉寿县| 濮阳市| 武清区| 永顺县| 杨浦区| 宁明县| 浑源县| 上林县| 井冈山市|