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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Consola
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Consola  (Leído 3,053 veces)
manman

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Consola
« en: 3 Julio 2006, 00:43 am »

Hola, estoy haciendo una aplicacion cliente-servidor.

Pero no he encontrado como conseguir hacer una consola donde yo mande los comandos y el servidor me entregue las respuestas.
He bucado y en el post de fulano sobre troyanos lo explica, pero no consigo que me salga bien, pueden ayudarme explicandolo? (No se demasiado)

Gracias


En línea

MaLkAvIaN_NeT

Desconectado Desconectado

Mensajes: 213


MaLkAvIaN_NeT


Ver Perfil WWW
Re: Consola
« Respuesta #1 en: 3 Julio 2006, 04:57 am »

usa pipes

Código:
Private Declare Function CreatePipe Lib "kernel32" (phReadPipe As Long, _
                                                    phWritePipe As Long, _
                                                    lpPipeAttributes As Any, _
                                                    ByVal nSize As Long) As Long

crea procesos

Código:
Private Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, _


En línea

a por las buenas ideas
Meg


Desconectado Desconectado

Mensajes: 462



Ver Perfil
Re: Consola
« Respuesta #2 en: 3 Julio 2006, 12:19 pm »

Mira haber si te sirve esto:
en un modulo:

Código:
Option Explicit

Public Declare Function CreatePipe Lib "kernel32" ( _
          phReadPipe As Long, _
          phWritePipe As Long, _
          lpPipeAttributes As Any, _
          ByVal nSize As Long) As Long
     
      'Leer Tunel
      Public Declare Function ReadFile Lib "kernel32" ( _
          ByVal hFile As Long, _
          ByVal lpBuffer As String, _
          ByVal nNumberOfBytesToRead As Long, _
          lpNumberOfBytesRead As Long, _
          ByVal lpOverlapped As Any) As Long
     
      'Esto lo usa la funcion CreateProcessA
      Public Type SECURITY_ATTRIBUTES
          nLength As Long
          lpSecurityDescriptor As Long
          bInheritHandle As Long
      End Type
     
      'Esto lo usa la funcion CreateProcessA
      Public Type STARTUPINFO
          cb As Long
          lpReserved As Long
          lpDesktop As Long
          lpTitle As Long
          dwX As Long
          dwY As Long
          dwXSize As Long
          dwYSize As Long
          dwXCountChars As Long
          dwYCountChars As Long
          dwFillAttribute As Long
          dwFlags As Long
          wShowWindow As Integer
          cbReserved2 As Integer
          lpReserved2 As Long
          hStdInput As Long
          hStdOutput As Long
          hStdError As Long
      End Type
     
      'Esto lo usa la funcion CreateProcessA
      Public Type PROCESS_INFORMATION
          hProcess As Long
          hThread As Long
          dwProcessId As Long
          dwThreadID As Long
      End Type
     
      'Esta funcion lanza el proceso y
      'devuelve sus datos a traves de PROCESS_INFORMATION
      Public Declare Function CreateProcessA Lib "kernel32" ( _
          ByVal lpApplicationName As Long, _
          ByVal lpCommandLine As String, _
          lpProcessAttributes As SECURITY_ATTRIBUTES, _
          lpThreadAttributes As SECURITY_ATTRIBUTES, _
          ByVal bInheritHandles As Long, _
          ByVal dwCreationFlags As Long, _
          ByVal lpEnvironment As Long, _
          ByVal lpCurrentDirectory As Long, _
          lpStartupInfo As STARTUPINFO, _
          lpProcessInformation As PROCESS_INFORMATION) As Long
     
      'Cierra el tunel
      Public Declare Function CloseHandle Lib "kernel32" ( _
          ByVal hHandle As Long) As Long
     
      'Constantes necesarias para lo de antes
      Public Const NORMAL_PRIORITY_CLASS = &H20&
      Public Const STARTF_USESTDHANDLES = &H100&
      Public Const STARTF_USESHOWWINDOW = &H1
     
     

Public Function CMD32(ByVal Comando As String) As String
Dim mCommand, mOutputs
      On Error GoTo ACAGAR
          Dim proc As PROCESS_INFORMATION     'Informacion de CreateProcessA
          Dim ret As Long                     'Esto se usa para obtener el retorno de las
                                              'funciones API
          Dim start As STARTUPINFO            'Informacion de inicio para CreateProcessA
     
          Dim SA As SECURITY_ATTRIBUTES       'Atributos de seguridad para
                                              'CreateProcessA
          Dim hReadPipe As Long               'Lectura de Tunel
          Dim hWritePipe As Long              'Escritura de Tunel
          Dim lngBytesread As Long            'Cantidad de Bytes leidos
          Dim strBuff As String * 256         'Buffer de lectura de tunel
     
          'Creamos el tunel...
          SA.nLength = Len(SA)
          SA.bInheritHandle = 1&
          SA.lpSecurityDescriptor = 0&
          ret = CreatePipe(hReadPipe, hWritePipe, SA, 0)
         
          If ret = 0 Then
              'Si falla la creacion del tunel
              CMD32 = "Fallo de Conexion con Proceso. Error: " & Err.LastDllError
              Exit Function
          End If
         
          'Lanzamos el interprete de comandos...
          start.cb = Len(start)
          start.dwFlags = STARTF_USESTDHANDLES Or STARTF_USESHOWWINDOW
          start.hStdOutput = hWritePipe
          start.hStdError = hWritePipe
          'Buscar la ruta del CMD.exe y añadir /c y el comando
          mCommand = Environ("COMSPEC") + " /c " + Comando
          'Creamos el proceso usando la String mCommand de antes...
          'y obtenemos RET para saber si se ha ejecutado
          ret& = CreateProcessA(0&, mCommand, SA, SA, 1&, _
              NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc)
             
          If ret <> 1 Then
              'si no se encuentra el comando...
              CMD32 = "Archivo o Comando no encontrado"
              Exit Function
          End If
         
          'Cerramos el tunel
          ret = CloseHandle(hWritePipe)
          mOutputs = ""
         
          'lo leemos
          Do
              ret = ReadFile(hReadPipe, strBuff, 256, lngBytesread, 0&)
              mOutputs = mOutputs & Left(strBuff, lngBytesread)
          Loop While ret <> 0
         
          'cerramos los Handles (controladores)
          ret = CloseHandle(proc.hProcess)
          ret = CloseHandle(proc.hThread)
          ret = CloseHandle(hReadPipe)
         
          'y hacemos que la funcion devuelva el resultado del comando a traves
          ' de la string mOutputs
          CMD32 = mOutputs
          Exit Function
ACAGAR:
          CMD32 = "Error:" + Err.Description
      End Function
en el form principal esto: k contiene un boton y dos textbox
Código:
Command1_click()
On Error Resume Next

Dim response As String
response = Cmdd(Text1.Text)
Text2.Text = response
end sub


En línea

Meg


Desconectado Desconectado

Mensajes: 462



Ver Perfil
Re: Consola
« Respuesta #3 en: 3 Julio 2006, 12:21 pm »

perdon me ekivoke el form principal es asi:
Código:
Command1_click()
On Error Resume Next

Dim response As String
response = CMD32(Text1.Text)
Text2.Text = response
end sub

en el text1 escribes el comando y en el text2 te da los resultados
En línea

manman

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Consola
« Respuesta #4 en: 3 Julio 2006, 15:02 pm »

Muchas gracias, pero tengo una duda:
Lo que has puesto es un solo programa pero en lo mio ciente-servidor.
el modulo lo pongo en el servidor?
 y lo que pones en el form principal en el cliente no?
pero como haceis para que los datos que reciba el servidor los envie al cliente?
Yo consigo la conexion con el winsock. Si quereis hos pongo el codigo y me explicais donde colocais el codigo.
« Última modificación: 3 Julio 2006, 15:50 pm por manman » En línea

Meg


Desconectado Desconectado

Mensajes: 462



Ver Perfil
Re: Consola
« Respuesta #5 en: 3 Julio 2006, 16:16 pm »

No conoces las instrucciones de winsck getdata y senddata??? si es asi tendrias k leerte un tuto de winsock
En línea

manman

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Consola
« Respuesta #6 en: 4 Julio 2006, 00:33 am »

Si pero para eso tengo que meter la salida de datos del servidor en una variable ejem : respuesta
y en el cliente en la llegada (data arribal) que lo introduzca en el textbox.
creo que es asi no? :rolleyes:
Pero como hago para que la salida de datos me lo meta en una variable en el codigo que has escrito (en el modulo)?
En línea

Meg


Desconectado Desconectado

Mensajes: 462



Ver Perfil
Re: Consola
« Respuesta #7 en: 4 Julio 2006, 17:12 pm »

Citar
creo que es asi no?
Claro
Citar
Pero como hago para que la salida de datos me lo meta en una variable en el codigo que has escrito (en el modulo)?

¿te refieres ha hacer esto??
Código:
Command1_click()
Dim response As String
response = CMD32(Text1.Text)
Winsock1.SendData response
end sub
En línea

manman

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Consola
« Respuesta #8 en: 4 Julio 2006, 19:14 pm »

Si, gracias
En línea

Meg


Desconectado Desconectado

Mensajes: 462



Ver Perfil
Re: Consola
« Respuesta #9 en: 4 Julio 2006, 21:21 pm »

De nada  ;D
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[consola]tasklist « 1 2 »
Scripting
Pirat3net 11 8,406 Último mensaje 12 Mayo 2011, 02:30 am
por Novlucker
leer de consola
Programación C/C++
farlaine23 1 1,807 Último mensaje 28 Noviembre 2011, 19:55 pm
por Littlehorse
rar 3.80 consola AES128
Software
beatriz92 1 1,311 Último mensaje 3 Diciembre 2013, 18:28 pm
por Eleкtro
picked up _java_options xmx512m en la consola
Java
n1sen 0 2,533 Último mensaje 2 Octubre 2017, 18:09 pm
por n1sen
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines