[Döküman] C# . Net Ile Keylogger Yapımı
-
öncelikle linki verim : http://www.tahribat.com/Dokuman-C-Net-Ile-Keylogger-Yapimi-428/
Aslında bu dökümanı çok uzun zaman önce yapmak istiyordum fakat bazı tahlihsizlikler oldu.Diskim kullanılmaz hale geldi projeler gitti oyüzden biraz gecikmeli oldu.Classların eski hali olsa sıfırdan yazdığım için hepsinin yanında açıklama satırları falan olucağından daha açıklayıcı bir makale olucaktı fakat kısmet değilmiş. Şimdi dökümanımıza geri dönelim.
Hazırcılığı sevmediğimden dolayı direk kod paylaşımında bulunmicam sadece ne nasıl yapılır yol programcı arkadaşlara yol göstermek,mantığını kavratmak istiyorum.
Yazılımımızın algoritmasına baktığımızda 3 ana bölümden oluşuyor.
1- Klavyeden basılan tuşları ,açılan pencere başlıklarını vs.. yakalama.
2- Yakalanan bilgilerin kaydedilmesi.
3- Kaydedilen bilgiilerin FTP veya Maile uploadu.
Klavyeden Basılan Tuşları ve Pencere isimlerini Nasıl yakalarız?
Öncelikle bunun içi windows apilerimiz var bunları import etmemiz gerekli.
Apilerden anlaşılacağı üzere GetAsyncKeyState tuşları yakalamakta kullanırken,getwindowstext ise başlıkları yakalarken bize yardımcı olacak.
Şimdi kodlarımıza geçelim.
Açık olan pencerenin başlığını yakalamak için :
Şu fonksiyon işimizi görecektir. Açıkcası apileri tek tek anlatmak isterdim ama zaten keylogger yazıcak kişinin az çok hakim olduğunu düşündüğümden fazla detaya girmiyorum.
Şimdide klavyeden girilen tuşları nasıl yakalayacağımıza bakalım.
Bir tane tuşları yakalamak için fonksiyon oluşturuyoruz.
Şu şekilde bir foreach döngümüz var
İçerisinde şöyle kontrollerimiz var.bu şekilde capslock,ctrl gibi tuşların ne durumda olduğunu görebiliyoruz.
Veya home,end gibi özel tuşların nası yakalandığına bakalım.
Burdaki keybufferımız farkettiniz gibi tuşa basıldıktan sonra yakalayıp hafızaya attığımız bir değişkenimiz daha sonra bunu nasıl dosyalayacağımızı anlatıcam fakat şimdilik tuş yakalama işlemine devam edelim.
Sırada özel karakterler var.
Bunlar biraz işin açıkcası amelelik kısımları. Şu ana kadar farkındayım akıllardaki soru hala nasıl tuşları aldığımızdı.o iflerin içerisindeki shiftkey,controlkey,caplock vs.. lerin nasıl çalıştığını merak ediyorsunuzdur.onların arkaplanındaki kısım ise
Bunlar bize gerekli değerleri döndürmekte.
Buraya kadar açıklayıcı oldu umarım. 1. Aşamayı bitirmiş bulunuyoruz. Sıra 2. Aşamada.
Sayfa :2, Yayın tarihi: 25 Nisan 2013 (Persembe) 20:10
System.IO sınıfı ile Verileri Dosyaya Yazdırma
Benim yaptığım örnekte .log uzantısı kullandım ve dosya adını tarih olarak belirledim.
Resimde gördüğünüz gibi am,pm kontrolü yaptık.dosya adını belirledik.filestreamimizi açtık keybufferımızda bulunan veriyi dosyaya yazdırdık.dosyayı kapatıp keybufferımızı temizledik.
Ve son aşama olarak 3. Aşamadayız.
Log Dosyalarının FTP’ye Upload Edilmesi
Ben dökümanda ftpye upload etmeyi göstermek istedim.Siz ister maile attachment yaparsınız,ister mail gövdesine yazdırırsınız,ister bir webpanel uygularsınız tamamen size kalmış.
Şimdi fonksiyonumuza bakalım.
Gördüğünüz gibi fonksiyonumuza sırasıyla ftp server ipsi,gönderilecek dosya,ftp kullanıcı adı,ftp şifremizi parametre olarak gönderiyoruz.
Dosyamızı upload ettikten sonra bulunduğu dizinden siliyoruzki keyloggerın bulunduğu makinede diski şişirmenin ve dikkat çekmenin alemi yok.
Evet Keyloggerımız bitti fakat göstermek istediğim bir kaç şey daha var .
Exeyi Başka Bir Dizine Kopyalama
Exeyi çalıştıran kişi masaüstünde çalıştırıp sildiyse exeden eser kalmaz.bizde bunu istemeyiz . bunun önüne geçmek için exemizi kopyalamamız gereklidir.Ben örnek yer olarak application data klasörünü seçtim. Siz istediğiniz yere aynı işlemi uygulayabilirsiniz.
Benim oluşturduğum exenin ismi yukarıda (lütfen isim çalmayalım :D ) kopyalacağım yerde varmı yokmu kontrolünü yapıyorum Eğer yoksa kopyalama işlemini gerçekleştiriyorum.
Exenin Başlangıçta Çalışmasını Sağlamak için Regedit İşlemleri
Bu yazılımdan bir başka istemiğizde tabiki exemizin başlangıçta çalışmasıdır.Bunun için regeditte başlangıç değerine path ekleyebiliriz şöyle ki :
Sanırım bir keylogger yapmak için temel olan herşeyi paylaştım.geliştirmek tamamen size kalmış.Okuduğunuz için teşekkür ederim.
Makale : FCN tarafından Tahribat.Com için özel olarak hazırlanmıştır.
Sorusu olan var seve seve sorabilir. Onun haricinde proje dosyasıda yakın zamanda paylaşılcaktır.hızlı bir şekilde elden çıktığı için oop adına birşey yok veya açıklama satırı yok anlamadığınız yerde yardımcı olurum.
-
Dostum öncelikle eline emegine sağlık. windows servislerini api lerini kullanınca direk antivirüslere ben burdayım demiş olmuyormuyuz :S
Bide nacizhane forumdan bildiğim kadarıyla iyi bir programcısın keşke web işine biraz yogunluk versen çok güzel işler yapacağına eminim.
-
NuLL29 bunu yazdı
Dostum öncelikle eline emegine sağlık. windows servislerini api lerini kullanınca direk antivirüslere ben burdayım demiş olmuyormuyuz :S
Bide nacizhane forumdan bildiğim kadarıyla iyi bir programcısın keşke web işine biraz yogunluk versen çok güzel işler yapacağına eminim.
teşekkürler. Antivirüs olayları duruma göre değişebiliyor.Her apiyi kullananı zararlı sınıfına sokarlarsa kendileride yanlışa düşerler oyüzden temkinliler ve imza veritabanından ziyade heuristic yapıyada ağırlık veriyorlar. şu haliyle heuristic yapıya takılabilirsiniz çünkü herşeyi geçtim bu şekilde regedite kayıt girerseniz 1. dereceden şüpheli konumuna düşersiniz.
http://www.tahribat.com/Forum-Regsetvalueex-Api-Ve-Kaspersky-Sorunu-175120/1/
mesela örnek olsun diye şu linki veriyorum. burada gerekli şeyler tartışılmıştı.
Bir çok fudlama teknigi mevcut. zararsız kod sıkıştırmalar,programın işleyişini değiştirmeler,belirli yerleri cryptlamak vs.. daha bir çok şey.
fudlama olayı biraz counter logic uygulamakla ilgili. eğer antivirüsün işleyişini tam olarak bilip kestirebiliyorsan az çok pratikle geçebilrisin.
mesela şu an kendi elimde bulunan hali fud'a yakın bir sonuç alıyorum diyebilirim. bir kaç packleme işlemiyle fud olabilir ama açıkcası okadar detaya girmek istemedim.
maksat sadece olayın mantığını anlatmak.
bu arada kendim adımada teşekkür ederim.Web işinden ciddi haz almıyorum fakat şu an elimde olan bir projeden dolayı zorunlu olarak wcf ve web üzerinde bişiler geliştirmem gerekti ve asp.net mvc adım attım. bakalım kurcalıyorum onun haricinde php bilgimde var kendime yeticek kadar ama zorunlu kalmadıkça bulaşmak tercihim değil :D
-
özel karakterleri parse ederken switch bloğu yerine bunu kullanabilrisin.
-
Ftp değilde maile gönderme olamaz mı hocam ?
tam bakmadım bilmiyorum gerçi alanımda değil ama merak -
Eline sağlık mis gibim olmuş.
-
hey yavrum be eline koluna sağlık hocam güzel anlatım olmuş :)
-
güzel döküman eline sağlık.
-
Ka1nsha bunu yazdı
Ftp değilde maile gönderme olamaz mı hocam ?
tam bakmadım bilmiyorum gerçi alanımda değil ama merakfileupload fonksiyonu yine mail fonksiyonu cagırıp keybufferı ister mail gövdesine yazarak ister yine bir dosyaya yazıp onu attachment olarak ekleyerek mail olarakta gönderebilirsin.
system.net.mail kütüphanesini araştırırsan istedigin sonuca ulaşabilirsin.smtp ile mail gönderme işlemini gerçekleştirebilirsin.
@nessaj teşekkürler bakıcam.
FCN tarafından 27/Nis/13 02:41 tarihinde düzenlenmiştir -
İncelenicek :)
-
Forever_Piratebay bunu yazdı
İncelenicek :)