飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2484|回复: 1

KeyGenMe V1.01 by Mushu

[复制链接]
  • TA的每日心情
    开心
    2023-4-6 10:07
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    发表于 2007-11-2 08:33:43 | 显示全部楼层 |阅读模式
    来源:http://musoft.blog.sohu.com/39167153.html

    无聊写着玩的,就是感觉水纹效果和vista风格的按钮很PL,其他的,无技术含量,故意留版本号1.01,方便升级,哈哈~[简单的mushu在笑]

    源码如下:

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, jpeg, ExtCtrls, RibbonBase, ExtFadeControl,
      RibbonButton, untWaterEffect, WinSkinData,MD5,GetDSN;
    ////////////////////////////////////////////////////
    //   Musoft的处女作,熟悉DELPHI~~QQ群:30881567   //
    //        http://musoft.blog.sohu.com             //
    ////////////////////////////////////////////////////
    type
      TForm1 = class(TForm)
        img1: TImage;
        Label1: TLabel;
        Label2: TLabel;
        Edit1: TEdit;
        Edit2: TEdit;
        RibbonButton1: TRibbonButton;
        RibbonButton2: TRibbonButton;
        Label3: TLabel;
        tmr1: TTimer;
        SkinData1: TSkinData;
        procedure FormCreate(Sender: TObject);
        procedure img1MouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
        procedure tmr1Timer(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
        procedure RibbonButton2Click(Sender: TObject);
        procedure RibbonButton1Click(Sender: TObject);
      private
        { Private declarations }
        Water: TWaterEffect;
        Bmp: TBitmap;
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;
      x:integer;

    implementation

    {$R *.dfm}
    ////////////////////////////////////////////////
    //一些无用的ANTI,网络上早已泛滥,充场面,哈哈//
    ////////////////////////////////////////////////
    Procedure Anti_DeDe();//检测DEDE反编译器
    var
      DeDeHandle:THandle;
      i:integer;
    begin
      DeDeHandle:=FindWindow(nil,chr($64)+chr($65)+chr($64)+chr($65));
      if DeDeHandle<>0 then
        begin
          For i:=1 to 4500 do
            SendMessage(DeDeHandle,WM_CLOSE,0,0);
        end;
    end;

    Function ABC42():Boolean; //检测调试器;
    var
      YInt,NInt:Integer;
    begin
      asm
        mov eax,fs:[30h]
        movzx eax,byte ptr[eax+2h]
        or al,al
        jz @No
        jnz @Yes
        @No:
          mov NInt,1
        @Yes:
          Mov YInt,1
      end;
      if YInt=1 then
        Result:=True;
      if NInt=1 then
        Result:=False;
    end;

    //Anti-Monitor   
    Function   ABC39:   Boolean;   //检测Dump;
    var
      hFile: Thandle;
    Begin
    Result:= false;
      hFile := FindWindow(nil,'ProcDump32   (C)   1998,   1999,   2000   G-RoM,   Lorian   &   Stone');
    if(   hFile   <>   0   )   then
    begin
      Result:=   TRUE;
    end;
    End;
       
    Function   ABC40:   Boolean;   //检测RegMON;
    var
      hFile: Thandle;
    Begin
      Result:= false;
      hFile:= FindWindow(nil,'Registry   Monitor   -   Sysinternals:   www.sysinternals.com');
      if(   hFile   <>   0   )   then
    begin
      Result:=TRUE;
    end;
    End;
       
    Function   ABC41:   Boolean;stdcall;     //检测FileMON;
    var
      hFile:Thandle;
    Begin
      Result:=false;
      hFile:=FindWindow(nil,'File   Monitor   -   Sysinternals:   www.sysinternals.com');
      if( hFile <> 0 ) then
    begin
      Result:=TRUE;
    end;
    End;


    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Bmp := TBitmap.Create;
      Bmp.Assign(img1.Picture.Graphic);
      img1.Picture.Graphic := nil;
      img1.Picture.Bitmap.Height := Bmp.Height;
      img1.Picture.Bitmap.Width := Bmp.Width;
      Water := TWaterEffect.Create;
      Water.SetSize(Bmp.Width,Bmp.Height);

      x:=img1.Height;
    end;

    procedure TForm1.img1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
    Water.Blob(x,y,1,100);
    end;


    procedure TForm1.tmr1Timer(Sender: TObject);
    begin
      if Random(8)= 1 then
        Water.Blob(-1,-1,Random(1)+1,Random(500)+50);
      Water.Render(Bmp,img1.Picture.Bitmap);


      with img1.Canvas do
        begin
          Brush.Style:=bsClear;
          font.size:=12;
          font.color:=$FFFFFF;
          TextOut((Bmp.Width - TextWidth('Musoft'))div 2+2,
            10,'Musoft');
        end;
    end;

    procedure TForm1.FormDestroy(Sender: TObject);
    begin
      Bmp.Free;
      Water.Free;
    end;


    procedure TForm1.RibbonButton2Click(Sender: TObject);
    begin
    close
    end;
    //////////////////////////////////////////////
    //很蹩脚又很简单的算法,开始忽悠ING,嘿嘿 。//
    //////////////////////////////////////////////
    function Musoft(X,Y:string):string;
    begin
      Result:=IntToHex((StrToInt('$'+X) xor StrToInt('$'+Y)),1);
    end;
    procedure TForm1.RibbonButton1Click(Sender: TObject);
    var
      i:integer;
      S1,S2,S3,S4,A,B,C,D,E,F,G:string;
      InputStr:array [1..2] of string;
      OutputStr,XORStr:string;
      strTmp:string;
    begin
    S3:= Trim(GetIdeDiskSerialNumber()); //取得硬盘ID,并去掉空格,将16进制连成字符串
      S4:=StringReplace ( S3, ' ', '', [rfReplaceAll] );
      S1:=S4;
      S2:='';
      for i:=1 to length(S1) do
      begin
        S2:=S2+IntToHex(Ord( S1[ i ] ),2);
      end;
      if length(edit1.Text)>=6  then //用户名不小于6位
      Begin
      for i:=1 to length(Edit1.Text) do
      C:=C+IntToHex(Ord(Edit1.Text[ i ]),2);     //用户名转换成16进制并连接
      B:=copy(c,1,2);           //取用户名前两位16进制
      InputStr[1]:='';
      InputStr[2]:='';
      OutputStr:='';
      XORStr:=B;
      for i:=1 to length(S2) div 2 do       //异或运算
      begin
        InputStr[1]:=copy(S2,2*i-1,1);
        InputStr[2]:=copy(S2,2*i,1);
        InputStr[1]:=Musoft(InputStr[1],XORStr[1]);
        InputStr[2]:=Musoft(InputStr[2],XORStr[2]);
        OutputStr:=OutputStr+InputStr[1]+InputStr[2];
      end;
        D:=''+ UpperCase(MD5Print(MD5String(OutputStr)));   //上面的结果进行MD5
        E:=copy(D,5,1)       //取第5位
      end;
      begin
      if length(edit2.Text)>=6 then
      for i:=1 to length(Edit2.Text) do          //注册码16进制连接
      F:=F+IntToHex(Ord(Edit2.Text[ i ] ),2);
      G:=copy(F,4,1)          //取第4位
      end;
      begin
      if (length(e)<>0) and (E=G)  then             //比较
      Edit2.Text:='RegisteD By:'+edit1.Text
    end;
    end;
    end.
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-2 17:44:38 | 显示全部楼层


    贴张图大家看下  水纹还看不到 ~~
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表