Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Miseryk en 10 Septiembre 2011, 23:56 pm



Título: [Ayuda] CMD Echo
Publicado por: Miseryk en 10 Septiembre 2011, 23:56 pm
Hola, estoy queriendo enviar texto a una ventana MDOS/CMD/command prompt abierta, el texto que deseo enviar no es tipo sendkey o sendmessage o postmessage, sinó como un "echo hola", que se imprime un enter, luego el hola luego otro enter y aparece el directorio en el que estaba para poder seguir escribiendo comandos, con el IDA encontré _cmd_printf, pero la verdad que no quiero llegar al punto de injectar dlls para enviar un echo, lo pensé hacer en ASM inline pero me cuesta mucho, mientras tanto me gustaría alguna opinión de ustedes, desde ya muchas gracias.


Título: Re: [Ayuda] CMD Echo
Publicado por: BlackZeroX en 11 Septiembre 2011, 00:14 am
usa la cañeria de comunicacion entre procesos... PIPES

Dulces Lunas!¡.


Título: Re: [Ayuda] CMD Echo
Publicado por: raul338 en 11 Septiembre 2011, 00:23 am
Querés enviar instrucciones a una ventana de consola o querés llamar tu aplicación desde consola y que devuelva algún texto?

Sendkeys funciona perfectamente utilizándolo con FindWindow + SetForegroundWindow + DoEvents :P

Código
  1.  
  2. Private Declare Function FindWindowA Lib "user32" (ByVal sClassName As String, ByVal sWindowTitle As String) As Long
  3. Private Declare Function SetForegroundWindow Lib "user32" (ByVal lhWnd As Long) As Long
  4. Private Declare Function GetForegroundWindow Lib "user32" () As Long
  5. Const sCommand As String = "Echo ""Hola"""
  6.  
  7. Private Sub Form_Load()
  8.    Dim h As Long
  9.    h = FindWindowA("ConsoleWindowClass", vbNullString)
  10.  
  11.    If h = 0 Then Exit Sub
  12.    Call SetForegroundWindow(h)
  13.    DoEvents
  14.    Dim i As Long
  15.    For i = 1 To Len(sCommand)
  16.        If GetForegroundWindow() <> h Then Call SetForegroundWindow(h)
  17.        DoEvents
  18.        Call SendKeys(Mid$(sCommand, i, 1))
  19.        DoEvents
  20.    Next
  21.    If GetForegroundWindow() <> h Then Call SetForegroundWindow(h)
  22.    Call SendKeys("+{ENTER}")
  23.    DoEvents
  24.  
  25.    Call Unload(Me)
  26. End Sub
  27.  


Título: Re: [Ayuda] CMD Echo
Publicado por: Miseryk en 11 Septiembre 2011, 21:39 pm
En realidad no quiero que se envíe texto, solo que haga la función echo y que yo no vea texto escribiéndose, ej, hice un programa para consola y quiero que cuando lo ejecute me diga:
ej: tengo el cmd abierto:

y escribo

c:\>cleancookies

y que al hacer enter me diga:

Se ejecutó exitosamente.

y luego que parezca:
c:\> (o en el dir que estaba)

Resultado completo:


c:\>
c:\>cleancookies
Se ejecutó exitosamente.

c:\>


Título: Re: [Ayuda] CMD Echo
Publicado por: raul338 en 11 Septiembre 2011, 22:11 pm
Tu quieres hacer una aplicacion de consola, y no estoy seguro de que se pueda :P
A menos que quieras simular una consola para ejecutar otras aplicaciones :-\


Título: Re: [Ayuda] CMD Echo
Publicado por: Miseryk en 12 Septiembre 2011, 01:54 am
Ya hice una aplicación para la consola, tuve que modificar los headers, pero lo que quería hacer era que se ejecutara el comando echo o algo similar para mostrar un texto de respuesta desde una aplicación externa.

PD: lo que expliqué arriba es la aplicación a la cual hice la modificacion de headers, pero quiero obtener el mismo resultado desde una aplicación externa teniendo la ventana cmd abierta. (Y) : )