recentemente tive que capturar eventos do teclado, mas como vocês já devem saber, no java existe sim a interface para isso.
No entanto, ela somente funciona no escopo aplicação java, não fora.
Portanto, pesquisei sobre JNI, JNA e outros, para de fato conseguir ouvir as interrupções do teclado dentro do java.
Depois de testar a JNI e JNA, encontrei o SWT que foi o mais simples e prático. Tanto que escrevi um KeyLogger com poucas linhas vejam só:
Agora, confira o home do seu usuário (/home/hlino or C:\Documents and Settings\hlino) e veja se o que você digitou foi gravado no arquivo com o nome do seu login.txt …huhauhauha
A idéia que utilizei foi bem simples: mapear todos eventos e gravar no arquivo com o nome do usuário logado e diferenciar a senha após a tecla TAB e antes do ENTER.
Assim como fazemos para logar no yahoo.
Digita o usuário TAB para variar para o campo da senha e enter para ENTRAR;
Sabia que esse tipo de comentário surgiria. Mas fazer o que, Viva La Democracia!!! .
Meu caro, em momento algum mencionei, roubar senha. Isso fica por sua conta.
Na verdade, repassei aqui algo que aprendi e que eu não havia encontrado anteriormente no forum, por isso postei.
Agora, se você se ofendeu, paciência. Não foi essa a intenção.
Sabe, ao invés de questionar mais esse aprendizado. Porque você não propõe ou escreve algo que impeça essa simples captura de eventos do teclado?
Estou desenvolvendo uma aplicação p/ um cliente, e ele qr registrar tudo o que ele escreve p/ fins de anotações, não qr abrir um notepad, qr sair digitando no desktop mesmo, e esse seu exemplo, com algumas adaptações, funcionou mto bem…
Primeiro quando fui seguindo passo a passo pra executar o exemplo deu um erro avisando q javac nao eh um comando interno valido! depois eu fui tentar importar o SWT num novo project e jogar o seu exemplo lá e ta dando erro na linha
Hook.KEYBOARD.install();
Ta dando o seguinte erro:
Exception in thread "Thread-0" java.lang.NoClassDefFoundError: org/eclipse/swt/internal/win32/OS
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at org.sf.feeling.swt.win32.internal.extension.EventObject.<init>(EventObject.java:34)
at org.sf.feeling.swt.win32.extension.hook.Hook$HookEventLoop.run(Hook.java:328)
at java.lang.Thread.run(Unknown Source)
[quote=Guga360]"digitou foi gravado no arquivo com o nome do seu login.txt …huhauhauha "
Bom, digamos que você está achando graça em fazer um progaminha tosco que rouba a senha dos outros?
Lamentável.
Aposto que ainda está se achando o “ráquer” com isso.
Puff…
Porque não apagam esse tópico?[/quote]
Lamentável é seu comentario amigo.
Se ele ta estudando pra ser um hacker que mal há nisso.
Até onde sei hackear é fazer segurança; Diferente de um cracker ou um Script Kiddie(lamerzão) que quebra sistemas de segurança e ou explora falhas em sistemas alheios.
recentemente tive que capturar eventos do teclado, mas como vocês já devem saber, no java existe sim a interface para isso.
No entanto, ela somente funciona no escopo aplicação java, não fora.
Portanto, pesquisei sobre JNI, JNA e outros, para de fato conseguir ouvir as interrupções do teclado dentro do java.
Depois de testar a JNI e JNA, encontrei o SWT que foi o mais simples e prático. Tanto que escrevi um KeyLogger com poucas linhas vejam só:
Agora, confira o home do seu usuário (/home/hlino or C:\Documents and Settings\hlino) e veja se o que você digitou foi gravado no arquivo com o nome do seu login.txt …huhauhauha
A idéia que utilizei foi bem simples: mapear todos eventos e gravar no arquivo com o nome do usuário logado e diferenciar a senha após a tecla TAB e antes do ENTER.
Assim como fazemos para logar no yahoo.
Digita o usuário TAB para variar para o campo da senha e enter para ENTRAR;
Muito bom o topico, acho que cada um usa da forma que achar ideal se vc axa ideal sair robando senha por ae, vai da pessoa, mas aposto que muita pessoa pego esse codigo para estudar e sim conhecer mais sobre java, vlw otimo topico irei pegar e estudar! abracao!