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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] [AYUDA] Problema ejecutando comando en XP 32bits
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C] [AYUDA] Problema ejecutando comando en XP 32bits  (Leído 2,232 veces)
DrKillador

Desconectado Desconectado

Mensajes: 56



Ver Perfil
[C] [AYUDA] Problema ejecutando comando en XP 32bits
« en: 22 Febrero 2013, 10:44 am »

Hi! Les comento un problema a ver si pueden ayudarme.

He programado una shell en C para Win, que me permite ejecutar comandos. Para ello utilizo las 2 siguientes funciones:

Código
  1. char* ReadAndHandleOutput(HANDLE hPipeRead)
  2. {
  3.    char lpBuffer[256]="";
  4.    DWORD nBytesRead;
  5.    char *partialResult;
  6.    char result[10000]="";
  7.    while(1)
  8.    {
  9.        if (!ReadFile(hPipeRead,lpBuffer,sizeof(lpBuffer),&nBytesRead,NULL) || !nBytesRead)
  10.        {
  11.            if (GetLastError() == ERROR_BROKEN_PIPE)
  12.                break; // pipe done - normal exit path.
  13.        }
  14.        partialResult = (char *) malloc(10000);
  15.        strncpy(partialResult,lpBuffer,nBytesRead);
  16.        sprintf(result,"%s%s",result,partialResult);
  17.    }
  18.    return result;
  19. }
  20.  
  21. char* executeCommand(char *argument)
  22. {
  23.    SECURITY_ATTRIBUTES sa;
  24.    STARTUPINFO si;
  25.    PROCESS_INFORMATION pi;
  26.  
  27.    void * leer;
  28.    void * escribir;
  29.  
  30.    ZeroMemory(&sa,sizeof(&sa));
  31.  
  32.    sa.nLength = sizeof(SECURITY_ATTRIBUTES);
  33.    sa.bInheritHandle = TRUE;
  34.    sa.lpSecurityDescriptor = NULL;
  35.  
  36.    CreatePipe(&leer,&escribir,&sa,0);
  37.  
  38.    GetStartupInfoA(&si);
  39.  
  40.    si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;
  41.    si.wShowWindow = SW_HIDE;
  42.    si.hStdOutput = escribir;
  43.    si.hStdError  = escribir;
  44.    si.hStdInput = leer;
  45.  
  46.    CreateProcess(0,argument,0,0,TRUE,0,NULL,NULL,&si,&pi);
  47.  
  48.    CloseHandle(escribir);
  49.  
  50.    return ReadAndHandleOutput(leer);
  51. }

La shell me funciona perfectamente en Windows Vista y 7 (tanto en 32 como en 64bits), pero en XP (32bits) el programa se me queda pillado en la siguiente instrucción:

Código
  1. if (!ReadFile(hPipeRead,lpBuffer,sizeof(lpBuffer),&nBytesRead,NULL) || !nBytesRead)

No consigo dar con el error por el que en XP se queda pillado en ese punto del código, porque el programa no se para, sigue funcionando sin hacer nada...

Por si les sirve el dato, he probado a escribir en un fichero un dato justo antes del IF ese que da el problema y despues, y el fichero lo deja pillado, porque no llega a la instruccion de cierre (logicamente).

La lectura la hago sincrona, poniendo la ultima variable de la llamada a ReadFile a NULL, asi que no veo donde puede estar el problema :/

Cualquier ayuda se la agradezco, que ando perdiendo mucho tiempo con esto

saludoss


« Última modificación: 22 Febrero 2013, 19:21 pm por DrKillador » En línea

Python <3 Python
DrKillador

Desconectado Desconectado

Mensajes: 56



Ver Perfil
Re: [C] [AYUDA] Problema ejecutando comando en XP 32bits
« Respuesta #1 en: 23 Febrero 2013, 02:10 am »

El problema parece que viene por el handle, pq sí le pongo una cadena a pelo en la cabecera de la llamada a ReadAndHandleOutput()  sí q avanza...

Ideas?


En línea

Python <3 Python
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[PROBLEMA] VirtualDub 32Bits
Multimedia
KZN 3 7,787 Último mensaje 19 Enero 2017, 21:07 pm
por KZN
[AYUDA] Problema ejecutando shellter en Kali Linux 2.0
Dudas Generales
Simbi0nte 0 2,168 Último mensaje 11 Julio 2016, 17:03 pm
por Simbi0nte
[python]abrir varias consolas de comandos ejecutando un comando.
Scripting
dimineko 3 4,934 Último mensaje 7 Diciembre 2017, 01:00 am
por n1sen
Ayuda Exekey++ hkey-w32.dll y win10 32bits
Ingeniería Inversa
soretito 2 3,545 Último mensaje 29 Enero 2019, 00:18 am
por soretito
Error ejecutando comando en meterpreter
Dudas Generales
THE_GEORGE 1006 0 3,131 Último mensaje 26 Noviembre 2019, 23:44 pm
por THE_GEORGE 1006
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines