Pessoal, tou precisando criar uma ferramenta que funcione em modo promíscuo e capture as açoes do mouse e do teclado, tipo um keylogger. Tem como fazer isso em Java? Sugerem outra linguangem?
Captura através do sistema operacional
5 Respostas
hahaha, ôôôôôô malandrinho… hahaha
Então velhão, com java isso ai não vai rolar não, pra entender o porque, é que o Java trabalha com o conceito sandbox.
Sugiro C. Mas nada de vírus rapá!
Falows
Você precisa:
-
Baixar o Windows DDK para a versão do Windows que você deseja fazer esse programa
-
Criar dois device drivers que se amarram aos device drivers de mouse e teclado
-
Solicitar à Microsoft que os assine digitalmente (esse passo não é opcional, porque senão o driver não é fácil de instalar. Você deve ter visto alguns drivers de vídeo que não são assinados, e você tem de plantar bananeira para poder instalá-los corretamente no seu micro.)
-
Instalá-los adequadamente
Esse tipo de software não é trivial de fazer; normalmente é feito em C e um pouco de assembly.
Da última vez que mexi com isto, não cheguei a precisar usar nada em Assembler. C deu conta do recado sem muito problema, mas talvez hoje a coisa tenha mudado (estou falando de Win311, Win95…).
Procure sobre Hooks na documentação do Windows.
Alternativamente, sugiro uma olhada no utilitário AutoHotKey. Acho que ele dá suporte a algumas coisas do gênero.
Se você tiver um anti-spyware instalado (o que é o caso com qualquer Windows Vista que tenha o Windows Defender habilitado, se não me engano), então hooks não funcionam direito, e você tem de usar device drivers. Uma solução antiga que eu tinha escrito para um fabricante de hardware usando apenas hooks passou a não funcionar mais por causa desses anti-spywares que interceptam todos os hooks e passam a “matá-los”, e foi abandonada - o fabricante simplesmente não quis ter mais dores de cabeça com isso.
Se você tiver um anti-spyware instalado (o que é o caso com qualquer Windows Vista que tenha o Windows Defender habilitado, se não me engano), então hooks não funcionam direito, e você tem de usar device drivers. Uma solução antiga que eu tinha escrito para um fabricante de hardware usando apenas hooks passou a não funcionar mais por causa desses anti-spywares que interceptam todos os hooks e passam a “matá-los”, e foi abandonada - o fabricante simplesmente não quis ter mais dores de cabeça com isso.
Se isto é vero, então é um bom motivo para migrar do XP para o Vista ;^)
Este troço de hooks sempre foi uma baita gambiarra mesmo !!! Mas fico curioso: uma alteração nesta API deve ter quebrado um monte de aplicações, incluindo boa parte das baseadas no MFC, que instala hooks como parte da inicialização (se bem que acho que eram hooks “locais”). De qualquer forma, a API ainda está na documentação do MSDN, sem nenhum comentário específico do Vista (o que não quer dizer muita coisa…)
Uma googlada rápida mostrou que muita gente teve problemas com o SetWindowsHookEx em vista, mas parece que há solução: ex, aqui.
Um bom artigo sobre o assunto, pré-vista: [url=http://www.codeguru.com/Cpp/W-P/system/misc/article.php/c5667[/url]