Mövzunu Açan
#0
Windows işletim sisteminde, klavye dinleyicisi (keylogger) oluşturmak için "SetWindowsHookEx" fonksiyonunu kullanmak oldukça etkili bir yöntemdir. Bu fonksiyon, sistem genelinde bir kancayı (hook) kurarak belirli olayları dinlememizi sağlar. Özellikle klavye olaylarını dinlemek için "WH_KEYBOARD_LL" türündeki kancayı kullanmak, bize bu olayları yakalama fırsatı sunar. Peki, nasıl başlıyoruz? İlk adım, gerekli kütüphaneleri eklemek olacak. "Windows.h" kütüphanesini dahil etmelisiniz, çünkü bu kütüphane, Windows API fonksiyonlarını kullanmamıza olanak tanır. Ardından, kanca fonksiyonunu tanımlamak için bir callback fonksiyonu oluşturmalısınız. Bu fonksiyon, klavye tuşlarına basıldığında çağrılacak ve işlenen tuşları kaydetmek için gerekli işlemleri yapacak.
Callback fonksiyonunu yazarken, belirli parametreleri doğru bir şekilde ele almak önemlidir. "KBDLLHOOKSTRUCT" yapısını kullanarak, tuş vuruşlarının bilgilerini elde edebilirsiniz. Bu yapı, hangi tuşa basıldığını belirlemek için gerekli olan "vkCode" değerini içerir. Örneğin, bir "if" koşulu ile "vkCode" değerini kontrol ederek hangi tuşa basıldığını tespit edebilir ve bu bilgiyi bir dosyaya yazabilirsiniz. Bu noktada dikkat etmeniz gereken bir husus var; kanca fonksiyonunu doğru bir şekilde yönetmezseniz, sistem kaynaklarını gereksiz yere tüketebilir ve performans sorunlarına yol açabilir.
Kancayı kurmak için "SetWindowsHookEx" fonksiyonunu kullanmalısınız. Bu fonksiyon, kancanın türünü, callback fonksiyonunu ve hangi işleme uygulanacağını belirtmenizi sağlar. Örneğin, "SetWindowsHookEx(WH_KEYBOARD_LL, MyKeyboardHookProc, NULL, 0);" şeklinde bir çağrı yapabilirsiniz. Burada "MyKeyboardHookProc", sizin callback fonksiyonunuzdur. Kancayı kurduktan sonra, mesaj döngüsü (message loop) oluşturmalısınız. Bu döngü, kancanın sürekli olarak çalışmasını ve klavye olaylarını dinlemesini sağlar. Windows API ile çalışmak, bazen karmaşık gelebilir ama biraz sabır ve pratikle her şey daha anlaşılır hale geliyor.
Dinleyici programınızı oluşturduktan sonra, uygulamanızı test etmek için basit bir kullanıcı arayüzü (UI) tasarlayabilirsiniz. Kullanıcı arayüzü, dinleyici programınızın kapatılmasını veya durdurulmasını sağlamak için faydalı olacaktır. Arayüzde, kullanıcıya hangi tuşların kaydedildiğini göstermek veya kaydedilen tuşlara dayalı istatistikler sunmak da ilginç bir ek özellik olabilir. Uygulamanızın daha kullanıcı dostu hale gelmesi için, kaydedilen tuşları belirli bir formatta görüntülemek ve dosya yolunu kullanıcıya sunmak iyi bir fikir. Örneğin, "C:\logs\keylogs.txt" gibi bir dosya yoluna kaydetmek, uygulamanızın kullanımını kolaylaştıracaktır.
Son olarak, güvenlik konularına dikkat etmekte fayda var. Klavye dinleyicileri, etik olmayan amaçlarla kullanılabileceği için, bu tür uygulamaların yalnızca izniniz olan sistemlerde ve eğitim amacıyla kullanılması gerektiğini unutmayın. Yani, eğer bir dinleyici geliştirecekseniz, bunu sadece kendi bilgisayarınızda uygulamak çok daha mantıklı bir yaklaşım. Kendi bilgisayarınızda denemeler yaparak, hem Windows API ile ilgili bilginizi artırabilir hem de yazılım geliştirme becerilerinizi geliştirebilirsiniz. Unutmayın, her yeni teknoloji, beraberinde sorumluluklar getirir ve bu sorumlulukları taşımak her zaman önemlidir...
Callback fonksiyonunu yazarken, belirli parametreleri doğru bir şekilde ele almak önemlidir. "KBDLLHOOKSTRUCT" yapısını kullanarak, tuş vuruşlarının bilgilerini elde edebilirsiniz. Bu yapı, hangi tuşa basıldığını belirlemek için gerekli olan "vkCode" değerini içerir. Örneğin, bir "if" koşulu ile "vkCode" değerini kontrol ederek hangi tuşa basıldığını tespit edebilir ve bu bilgiyi bir dosyaya yazabilirsiniz. Bu noktada dikkat etmeniz gereken bir husus var; kanca fonksiyonunu doğru bir şekilde yönetmezseniz, sistem kaynaklarını gereksiz yere tüketebilir ve performans sorunlarına yol açabilir.
Kancayı kurmak için "SetWindowsHookEx" fonksiyonunu kullanmalısınız. Bu fonksiyon, kancanın türünü, callback fonksiyonunu ve hangi işleme uygulanacağını belirtmenizi sağlar. Örneğin, "SetWindowsHookEx(WH_KEYBOARD_LL, MyKeyboardHookProc, NULL, 0);" şeklinde bir çağrı yapabilirsiniz. Burada "MyKeyboardHookProc", sizin callback fonksiyonunuzdur. Kancayı kurduktan sonra, mesaj döngüsü (message loop) oluşturmalısınız. Bu döngü, kancanın sürekli olarak çalışmasını ve klavye olaylarını dinlemesini sağlar. Windows API ile çalışmak, bazen karmaşık gelebilir ama biraz sabır ve pratikle her şey daha anlaşılır hale geliyor.
Dinleyici programınızı oluşturduktan sonra, uygulamanızı test etmek için basit bir kullanıcı arayüzü (UI) tasarlayabilirsiniz. Kullanıcı arayüzü, dinleyici programınızın kapatılmasını veya durdurulmasını sağlamak için faydalı olacaktır. Arayüzde, kullanıcıya hangi tuşların kaydedildiğini göstermek veya kaydedilen tuşlara dayalı istatistikler sunmak da ilginç bir ek özellik olabilir. Uygulamanızın daha kullanıcı dostu hale gelmesi için, kaydedilen tuşları belirli bir formatta görüntülemek ve dosya yolunu kullanıcıya sunmak iyi bir fikir. Örneğin, "C:\logs\keylogs.txt" gibi bir dosya yoluna kaydetmek, uygulamanızın kullanımını kolaylaştıracaktır.
Son olarak, güvenlik konularına dikkat etmekte fayda var. Klavye dinleyicileri, etik olmayan amaçlarla kullanılabileceği için, bu tür uygulamaların yalnızca izniniz olan sistemlerde ve eğitim amacıyla kullanılması gerektiğini unutmayın. Yani, eğer bir dinleyici geliştirecekseniz, bunu sadece kendi bilgisayarınızda uygulamak çok daha mantıklı bir yaklaşım. Kendi bilgisayarınızda denemeler yaparak, hem Windows API ile ilgili bilginizi artırabilir hem de yazılım geliştirme becerilerinizi geliştirebilirsiniz. Unutmayın, her yeni teknoloji, beraberinde sorumluluklar getirir ve bu sorumlulukları taşımak her zaman önemlidir...