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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Controlar PC desde otro PC
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Controlar PC desde otro PC  (Leído 17,485 veces)
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Controlar PC desde otro PC
« en: 17 Marzo 2009, 22:38 pm »

Hola:

Tengo la idea de hacer dos programas en cada PC controlado mediante Internet y puerto serie.

1- EL PC1 hago la Interfaz de control para controlar por vía Internet mediante button (botones) el otro programa del PC que ahí está el PIC16F84A.

2- El PC2 tiene otro programa o Interfaz que puede controlar el puerto serie donde está conectado el PIC. Se controla como puedes ver en este vídeo...

http://www.youtube.com/watch?v=niWAbQ-HVnY

...con la diferencia que yo lo quiero hacer mediante control por IP y que ustedes sean capaces de controlarlo desde sus casas mientras ves como se mueve una webcam por poner un ejemplo.

Ahora la pregunta. ¿Con Visual C# se puede hacer esto?

Aquí hay un ejemplo directo de una Interfaz básico con su código fuente, conectado al puerto serie. En realidad esta Interfaz no tiene que ir con el puerto serie, sólo la conexión a Internet mediante una IP que debemos conocer para poder llegar al PC2 que si se puede conectar al puerto serie.

Las órdenes a enviar al PC2 para el puerto serie es algo parecido a esto.

Código
  1.            byte[] mBuffer = new byte[1];  
  2.            mBuffer[0] = 0x20; //ASCII letra "Espacio".  
  3.            serialPort1.Write(mBuffer, 0, mBuffer.Length);






Necesito información y cómo se programa. Poco a poco lo intentaré, al menos como se envía esta trama de bytes en hex para que lo entienda el PC2 desde el PC1. De momento sigo buscando en www.google.com

¿Sugerencias?

Un cordial saludo.


En línea

Mr. Crowley


Desconectado Desconectado

Mensajes: 343


Costa Rica


Ver Perfil WWW
Re: Controlar PC desde otro PC
« Respuesta #1 en: 17 Marzo 2009, 23:05 pm »

Hola Meta... ya ha intentado hacer eso con los sockets?

Creo que podria servirle esta info: http://foro.elhacker.net/net/tutorial_sockets_en_c-t165986.0.html (no he leido el tutorial completo, pero creo que es lo que anda buscando)

Saludos  ;D

Edito:
http://www.devarticles.com/c/a/C-Sharp/Socket-Programming-in-C-Part-I/
http://www.csharp-examples.net/socket-send-receive/


« Última modificación: 17 Marzo 2009, 23:14 pm por Mr. Crowley » En línea

Mi blog personal: www.calirojas.com
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Controlar PC desde otro PC
« Respuesta #2 en: 18 Marzo 2009, 01:24 am »

Gracias, voy a investigar. Si alguien sabe más enlaces con ejemplos lo ponen aquí.

EDIT0:
Sólo necesito introducir la IP desde PC1-Cliente, para conectar al PC2-Servidor. Si se conecta, el PC2-Servidor envía al PC1-Cliente un mensaje de bienvenida, por ejemplo:

"Bienvenido a PC2".

A partir de ahí, al pulsar un botón del PC1-Cliente, envía tramas y/o string o lo que sea al PC2-Servidor para que ejecute las ordenes hacia el serialPort1.
Si todo sale bien, puedo controlar el PIC16F84A por el puerto serie.

Espero que esto no sea tan complicado como parece.
« Última modificación: 18 Marzo 2009, 13:26 pm por Meta » En línea

kokoy

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Controlar PC desde otro PC
« Respuesta #3 en: 5 Mayo 2009, 23:10 pm »

excelente aporte, me gustaria saber si tienes algun ejemplo mas abierto par poder implementar algunas ideas, te cuento que estoy haciendo un proyecto del clasico encender leds desd epuerto lpt y necesito hacerlos atravez de internet puede ser atravez de socket o de web y no tengo ni idea como hacerlo
En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Controlar PC desde otro PC
« Respuesta #4 en: 7 Mayo 2009, 21:13 pm »

Lo dejé ahora parado porque estoy con otro proyecto de electrónica. Cuando acabe y lo presente a una revista oficial de España, seguiré con el proyecto de la web.

La idea es controlar no sólo los LED por Internet, sino el puerto serie junto con un PIC. Ahí haré lo que me de la gana desde Internet.

Este ejemplo que hice fue a bases de trama y no es bueno usarlo ya que los datos se capturan al aire y es fácil de interpretar, con el riego de ser hackeado, es decir, que pueden hacer lo que le de la gana la puerto serie y PIC.

Es mejor usar un protocolo, por ejemplo, FTP y tiene acuse de recibido.
En línea

KJD


Desconectado Desconectado

Mensajes: 314



Ver Perfil
Re: Controlar PC desde otro PC
« Respuesta #5 en: 8 Mayo 2009, 12:54 pm »

Realmente no interesa si son tramas o no, pero si mandas el codigo limpio sin cifrar es mas facil que lo hackeen. Puedes seguir usando tramas, pero encriptadas, por ejemplo encriptas la trama con una clave que este configurada tanto en el server como en el cliente y listo, problema solucionado.
En línea

"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Controlar PC desde otro PC
« Respuesta #6 en: 9 Mayo 2009, 13:00 pm »







Aquí estamos trabajando en ello y funciona, puedes descargar el código fuente en VC# Express.

« Última modificación: 9 Mayo 2009, 13:02 pm por Meta » En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Controlar PC desde otro PC
« Respuesta #7 en: 13 Julio 2009, 08:17 am »

[size=24]Avances:[/size]

- Por fin de tanto tiempo de hacer un triggers para un monitoreo o auditoría ya funciona.

En futuras mejoras.

- Me falta crear código necesario para la lectura del monitoreo desde C#.


- Diseñar una buena interfaz algo parecido a la imagen de abajo.


- Cuando nos pongamos de acuerdo como les interesa el modelo de Interfaz tanto de Visual C# y PHP, empiezo a la programación del puerto serie (junto con el puerto paralelo depende de lo que ustedes prefieran y más en el futuro por USB, que aprenderé con los manuales de Moyano). Haré varios diseños y ustedes eligen el más que les gusten.

Les dejo la base de datos creada junto con el triggers.
Código
  1. -- phpMyAdmin SQL Dump
  2. -- version 3.2.0.1
  3. -- http://www.phpmyadmin.net
  4. --
  5. -- Servidor: localhost
  6. -- Tiempo de generación: 13-07-2009 a las 05:28:43
  7. -- Versión del servidor: 5.1.36
  8. -- Versión de PHP: 5.2.10
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11.  
  12. --
  13. -- Base de datos: `prueba01`
  14. --
  15.  
  16. -- --------------------------------------------------------
  17.  
  18. --
  19. -- Estructura de tabla para la tabla `datos`
  20. --
  21.  
  22. CREATE TABLE IF NOT EXISTS `datos` (
  23.  `ID` INT(11) NOT NULL AUTO_INCREMENT,
  24.  `RELE_1` tinyint(4) NOT NULL,
  25.  `RELE_2` tinyint(4) NOT NULL,
  26.  `RELE_3` tinyint(4) NOT NULL,
  27.  `RELE_4` tinyint(4) NOT NULL,
  28.  `FECHA_HORA` datetime NOT NULL,
  29.  PRIMARY KEY (`ID`)
  30. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=1 ;
  31.  
  32. --
  33. -- Volcar la base de datos para la tabla `datos`
  34. --
  35.  
  36.  
  37. -- --------------------------------------------------------
  38.  
  39. --
  40. -- Estructura de tabla para la tabla `dispositivos`
  41. --
  42.  
  43. CREATE TABLE IF NOT EXISTS `dispositivos` (
  44.  `ID` INT(11) NOT NULL,
  45.  `nombre` VARCHAR(30) NOT NULL,
  46.  `estado` tinyint(3) NOT NULL DEFAULT '0',
  47.  `descripcion` VARCHAR(200) NOT NULL,
  48.  PRIMARY KEY (`ID`)
  49. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  50.  
  51. --
  52. -- (Evento) desencadenante `dispositivos`
  53. --
  54. DROP TRIGGER IF EXISTS `prueba01`.`logestado`;
  55. DELIMITER //
  56. CREATE TRIGGER `prueba01`.`logestado` AFTER UPDATE ON `prueba01`.`dispositivos`
  57. FOR EACH ROW BEGIN
  58.  
  59.       DECLARE Rele1 INT;
  60.       DECLARE Rele2 INT;
  61.       DECLARE Rele3 INT;
  62.       DECLARE Rele4 INT;
  63.  
  64.       SET Rele1 = (SELECT estado
  65.       FROM dispositivos
  66.       WHERE nombre LIKE 'RELE 1');
  67.  
  68.       SET Rele2 = (SELECT estado
  69.       FROM dispositivos
  70.       WHERE nombre LIKE 'RELE 2');
  71.  
  72.       SET Rele3 = (SELECT estado
  73.       FROM dispositivos
  74.       WHERE nombre LIKE 'RELE 3');
  75.  
  76.       SET Rele4 = (SELECT estado
  77.       FROM dispositivos
  78.       WHERE nombre LIKE 'RELE 4');
  79.  
  80.       INSERT INTO datos (RELE_1, RELE_2, RELE_3, RELE_4, FECHA_HORA)
  81.       VALUES (Rele1, Rele2, Rele3, Rele4, NOW());
  82.  
  83. END
  84. //
  85. DELIMITER ;
  86.  
  87. --
  88. -- Volcar la base de datos para la tabla `dispositivos`
  89. --
  90.  
  91. INSERT INTO `dispositivos` (`ID`, `nombre`, `estado`, `descripcion`) VALUES
  92. (1, 'RELE 1', 0, 'Motor 1'),
  93. (2, 'RELE 2', 0, 'Motor 2'),
  94. (3, 'RELE 3', 0, 'Alarma'),
  95. (4, 'RELE 4', 0, 'WebCam');
  96.  
  97.  

Los que quieran hacer pruebas sólo con bases de datos.

- Si quieres descargar el MySQL 5.1.36 para x86 (32 Bits):
DESCARGAR

- Connector / .net 6.0.4:
DESCARGAR

- El gestor de MySQL muy bueno, fácil y libre EMS SQL Manager for MySQL Freeware (full installation package) 4.5.0.4:
DESCARGAR

- Manual sobre instalación de MySQL en la página 312 de este manual en PDF.
DESCARGAR

- Manual puerto serie y Visual C#.
DESCARGAR
« Última modificación: 13 Julio 2009, 08:20 am por Meta » En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Controlar PC desde otro PC
« Respuesta #8 en: 13 Julio 2009, 17:03 pm »

 :o pudiste hacer triggers en MySQL?? ¡¡Sorprendente!! (ejem...no es que haya intentando mucho pero tenia la idea de que no se podian hacer)

En cuanto a los sockets, tengo 2 aplicaciones que usan sockets diseñadas una en cada lenguaje (C# y VB.NET). Tengo el codigo completo de las 2, aunque la de C# es mas completa (la copie de un libro y trate de entenderlo, aunque nunca lo logre del todo, asi que por eso hice la version en VB.NET pero no me salio exactamente igual). Si quieres te lo mando por mail o algun otro metodo (es un programa de chat, podras agarrar las clases y usarlas en tu proyecto, o hacer como yo y tratar de hacer una clase "a tu medida" en base a estas)

En cuanto a la logica, imagina que una vez conectado entre los programas sea como un cliente DOS

podras enviar comandos con parametros y que el servidor los analize, Ejemplo

Código
  1. (C = Cliente, S = Servidor)
  2. C: LED1 ON
  3. S: LED1 is ON
  4. C: LED2 OFF
  5. S: LED2 is OFF
  6. C: LED3
  7. S: LED3 is OFF (devuelve el estado del LED por ejemplo)
  8.  

en cuanto a la clase que reciba los comandos (lo que se envia a travez de los sockets) lo haces como si fuese un programa de consola, solo que en vez de usar el tipico "Console.Readline()" (o usar algun menu, etc) tienes que esperar la respuesta del socket (usar eventos, delegados, es mejor con metodos asincronicos, puede parecer dificil al principio, si es asi prueba con metodos sincronicos y cuando tengas todo listo, pasalo a asincronico y veras que no es tan dificil)

bueno.....Espero que te sirva!!!

En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Controlar PC desde otro PC
« Respuesta #9 en: 15 Julio 2009, 18:51 pm »

Me metí en UDP, lo mejor es usar socket por TCP/IP para las comunicaciones.
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Controlar PC ajeno desde la misma WLAN
Hacking
101 SER 9 14,778 Último mensaje 26 Noviembre 2010, 07:31 am
por Meta
Controlar un interruptor desde una pc
Electrónica
diego_lp 6 29,516 Último mensaje 19 Diciembre 2010, 22:49 pm
por skapunky
[Source]Controlar PC desde Twitter
.NET (C#, VB.NET, ASP)
neoncyber 1 3,097 Último mensaje 21 Mayo 2011, 10:12 am
por k0ws
Controlar Chrome desde c#
.NET (C#, VB.NET, ASP)
dieben13 0 1,812 Último mensaje 26 Mayo 2013, 01:25 am
por dieben13
Controlar registros de desplazamiento desde FPGA (VHDL)
Programación General
jrnavdom 0 2,484 Último mensaje 20 Septiembre 2013, 22:17 pm
por jrnavdom
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines