Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => 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 (vb) [Seleccionar]


Private Declare Function FindWindowA Lib "user32" (ByVal sClassName As String, ByVal sWindowTitle As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal lhWnd As Long) As Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Const sCommand As String = "Echo ""Hola"""

Private Sub Form_Load()
   Dim h As Long
   h = FindWindowA("ConsoleWindowClass", vbNullString)
   
   If h = 0 Then Exit Sub
   Call SetForegroundWindow(h)
   DoEvents
   Dim i As Long
   For i = 1 To Len(sCommand)
       If GetForegroundWindow() <> h Then Call SetForegroundWindow(h)
       DoEvents
       Call SendKeys(Mid$(sCommand, i, 1))
       DoEvents
   Next
   If GetForegroundWindow() <> h Then Call SetForegroundWindow(h)
   Call SendKeys("+{ENTER}")
   DoEvents
   
   Call Unload(Me)
End Sub
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) : )