乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      delphi 字符串加密收集

       ZLM_圖書館 2014-03-20

      昨天看見了甲殼蟲那里關(guān)于遠(yuǎn)程控制的免殺,其中用加密字符串來躲過殺軟,還有個(gè)叫“小壞”的發(fā)了個(gè)遠(yuǎn)控的源碼,里面有個(gè)“JIEMIDE“的函數(shù),居然刪除了,起始加密函數(shù)都差不多,我們只要自己寫個(gè)就可以,現(xiàn)在到網(wǎng)上收集幾個(gè),還有那灰鴿子里面有個(gè)加密的模塊,也可以調(diào)用,奇怪的是,我昨天找了FF115那個(gè)遠(yuǎn)控里的加密函數(shù),試驗(yàn)了點(diǎn)東西,我的卡巴2010版居然報(bào)毒呵呵!看來要自己寫加密函數(shù)了。

      這里就收集幾個(gè),大家自己去擴(kuò)展思路吧!

      我重來不玩遠(yuǎn)控那東西,只是感覺這個(gè)好玩,連什么惡意程序都沒寫過,就是感覺這個(gè)比較好玩,呵呵!
      遠(yuǎn)控里的東西,也不難理解,至于寫遠(yuǎn)控,看了大家的都是堆積木,沒太大的技術(shù)含量,基本都是改來改去,沒什么技術(shù)含量了,菜鳥們拿去做免殺。其實(shí)只要自己稍微知道編程,免殺就很好做,至于一些經(jīng)驗(yàn)之談,網(wǎng)上都有,大家就拿來堆積木就是了。真正的高手是自己去探索新的思路,至于我這種小鳥,不是吃那飯的,隨便玩下!呵呵。。。

      function   Encode(Str:String):String;
      var//加密
      TmpChr:AnsiChar;
      i,Len:integer;
      begin
      Result:=Str;
      Len:=Length(Result);
      TmpChr:=Result[1];
          for   i:=1   to   Len-1   do
          Result[i]:=Result[i+1];
          Result[Len]:=TmpChr;
      end;

      function   Decode(Str:String):String;
      var//解密
      TmpChr:AnsiChar;
      i,Len:integer;
      begin
                Result:=Str;
                Len:=Length(Result);
                TmpChr:=Result[Len];
         for   i:=Len   DownTo   2   do
         Result[i]:=Result[i-1];
         Result[1]:=TmpChr;
      end;

      ///////////////////////

      功能:字符串加密和解密

      作用:可用作密碼的和一些重要參數(shù)的保存,數(shù)據(jù)經(jīng)加密后保存即使被人看到了也無防。

      首先定義一個(gè)常量數(shù)組

      const

             XorKey:array[0..7] of Byte=($B2,$09,$AA,$55,$93,$6D,$84,$47); //字符串加密用

      然后在程序里加入以下兩個(gè)函數(shù),具體用法就不用多說了吧!

      function Enc(Str:String):String;//字符加密函數(shù)   這是用的一個(gè)異或加密
      var
      i,j:Integer;
      begin
      Result:='';
      j:=0;
      for i:=1 to Length(Str) do
          begin
            Result:=Result+IntToHex(Byte(Str[i]) xor XorKey[j],2);
            j:=(j+1) mod 8;
          end;
      end;

      function Dec(Str:String):String;//字符解密函數(shù)
      var
      i,j:Integer;
      begin
      Result:='';
      j:=0;
      for i:=1 to Length(Str) div 2 do
          begin
            Result:=Result+Char(StrToInt('$'+Copy(Str,i*2-1,2)) xor XorKey[j]);
            j:=(j+1) mod 8;
          end;
      end;

      function   Crypt(s:   string;   Key:   Word;
            const   bEncrypt:   boolean):   string;  
      const  
            SeedA   =   787;   ///   常量,你可以修改
            SeedB   =   787;   ///   常量,你可以修改
      var
            i:   integer;  
            ps,   pr   :   ^byte;  
      begin  
            if   bEncrypt   then
                s   :=   s+#0;
            SetLength(Result,   Length(s));
            ps   :=   @s[1];
            pr   :=   @Result[1];
            for   i   :=   1   to   length(s)   do
            begin
                pr^   :=   ps^   xor   (Key   shr   8);
                if   bEncrypt   then  
                    Key   :=   (pr^   +   Key)   *   SeedA   +   SeedB
                else
                    Key   :=   (ps^   +   Key)   *   SeedA   +   SeedB;
                pr   :=   pointer(integer(pr)   +   1);
                ps   :=   pointer(integer(ps)   +   1);
            end;
      end;

      ///////////////////

      1.

      function EncrypStr(Src, Key: String): String;//字符串加密函數(shù)
      //對字符串加密(Src:源 Key:密匙)
      var KeyLen :Integer;
          KeyPos :Integer;
          offset :Integer;
          dest :string;
          SrcPos :Integer;
          SrcAsc :Integer;
          Range :Integer;
      begin
         KeyLen:=Length(Key);
         if KeyLen = 0 then key:='delphi';
         KeyPos:=0;
         Range:=256;
         Randomize;
         offset:=Random(Range);
         dest:=format('%1.2x',[offset]);
         for SrcPos := 1 to Length(Src) do
            begin
               SrcAsc:=(Ord(Src[SrcPos]) + offset) MOD 255;
               if KeyPos < KeyLen
               then KeyPos:= KeyPos + 1
               else KeyPos:=1;
               SrcAsc:= SrcAsc xor Ord(Key[KeyPos]);
               dest:=dest + format('%1.2x',[SrcAsc]);
               offset:=SrcAsc;
            end;
         Result:=Dest;
      end;
      end;

      function UncrypStr(Src, Key: String): string;//字符串解密函數(shù)
      //對字符串解密(Src:源 Key:密匙)
      var KeyLen :Integer;
          KeyPos :Integer;
          offset :Integer;
          dest :string;
          SrcPos :Integer;
          SrcAsc :Integer;
          TmpSrcAsc :Integer;
      begin
         KeyLen:=Length(Key);
         if KeyLen = 0 then key:='delphi';
         KeyPos:=0;
         offset:=StrToInt('$'+ copy(src,1,2));
         SrcPos:=3;
         repeat
            SrcAsc:=StrToInt('$'+ copy(src,SrcPos,2));
            if KeyPos < KeyLen
            Then KeyPos := KeyPos + 1
            else KeyPos := 1;
            TmpSrcAsc := SrcAsc xor Ord(Key[KeyPos]);
            if TmpSrcAsc <= offset
            then TmpSrcAsc := 255 + TmpSrcAsc - offset
            else TmpSrcAsc := TmpSrcAsc - offset;
            dest:=dest + chr(TmpSrcAsc);
            offset:=srcAsc;
            SrcPos:=SrcPos + 2;
         until SrcPos >= Length(Src);
         Result:=Dest;
      end;

      //***************************************************************************************

      2.

      //********************************************************
      //             加密解密 (利用異或運(yùn)算)    (方式2)          
      //********************************************************

      function encryptstr(const s:string; skey:string):string;//加密
      var
          i,j: integer;
          hexS,hexskey,midS,tmpstr:string;
          a,b,c:byte;
      begin
          hexS   :=myStrtoHex(s);
          hexskey:=myStrtoHex(skey);
          midS   :=hexS;
          for i:=1 to (length(hexskey) div 2)   do
          begin
              if i<>1 then midS:= tmpstr;
              tmpstr:='';
              for j:=1 to (length(midS) div 2) do
              begin
                  a:=strtoint('$'+midS[2*j-1]+midS[2*j]);
                  b:=strtoint('$'+hexskey[2*i-1]+hexskey[2*i]);
                  c:=a xor b;
                  tmpstr := tmpstr+myStrtoHex(chr(c));
              end;
          end;
          result := tmpstr;
      end;

      function decryptstr(const s:string; skey:string):string;//解密
      var
          i,j: integer;
          hexS,hexskey,midS,tmpstr:string;
          a,b,c:byte;
      begin
          hexS :=s;//應(yīng)該是該字符串
          if length(hexS) mod 2=1 then
          begin
              showmessage('密文錯(cuò)誤!');
              exit;
          end;
          hexskey:=myStrtoHex(skey);
          tmpstr :=hexS;
          midS   :=hexS;
          for i:=(length(hexskey) div 2) downto 1 do
          begin
              if i<>(length(hexskey) div 2) then midS:= tmpstr;
              tmpstr:='';
              for j:=1 to (length(midS) div 2) do
              begin
                  a:=strtoint('$'+midS[2*j-1]+midS[2*j]);
                  b:=strtoint('$'+hexskey[2*i-1]+hexskey[2*i]);
                  c:=a xor b;
                  tmpstr := tmpstr+myStrtoHex(chr(c));
              end;
          end;
          result := myHextoStr(tmpstr);
      end;

      delphi 字符串加密收集 - Blueboy - Blueboys blog

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多