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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  El tamaño del ejecutable en memoria crece, crece y crece...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: El tamaño del ejecutable en memoria crece, crece y crece...  (Leído 5,831 veces)
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
El tamaño del ejecutable en memoria crece, crece y crece...
« en: 21 Marzo 2014, 05:26 am »

Hola!

Alguien sabe en que circunstancias se da que el ejecutable aumente su tamaño indefinidamente? Esta claro que aumentando una variable (en tamaño), un buffer o algo por el estilo, pero quizás en otras situaciones también..

Es que tengo esta función:

Código
  1. HINTERNET SendRequest(HINTERNET Session, char *data1, char *data2)
  2. {
  3. char B1[1024] = "\0", B2[1024] = "\0";
  4.        // Data1 Format
  5. sprintf_s(B1, sizeof(B1), HTTPTEXT, "form-data", "A", "text/plain");
  6. memcpy(B1 + strlen(B1), data1, strlen(data1));
  7. // Data2 Format
  8. sprintf_s(B2, sizeof(B2), HTTPTEXT, "form-data", "B", "text/plain");
  9. memcpy(B2 + strlen(B2), data2, strlen(data2));
  10.  
  11. char BUFFER[2048] = "\0";
  12.  
  13. memcpy(BUFFER, B1, strlen(B1));
  14. memcpy(BUFFER + strlen(BUFFER), "\r\n", 2);
  15. memcpy(BUFFER + strlen(BUFFER), B2, strlen(B2));
  16.  
  17. memcpy(BUFFER + strlen(BUFFER), HTTPENDS, strlen(HTTPENDS));
  18.  
  19. HINTERNET HIntRequest = HttpOpenRequest(Session, "POST", "php/core.php", 0, 0, 0, INTERNET_FLAG_RELOAD, 0);
  20.  
  21. if (HttpSendRequest(HIntRequest, HTTPHEAD, strlen(HTTPHEAD), BUFFER, strlen(BUFFER)))
  22. return HIntRequest;
  23. else
  24. return false;
  25. }

Yo a esta función la llamo cada 4 segundos, y cada vez que se invoca,, el ejecutable aumenta unos 4k en memoria.. debería preocuparme?
Y de paso, si alguien me ilumina como optimizarla mejor aun!!

Saludos!!


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: El tamaño del ejecutable en memoria crece, crece y crece...
« Respuesta #1 en: 21 Marzo 2014, 08:24 am »

Tal vez esto te aclare un poco los motivos:

http://support.microsoft.com/kb/959658


En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: El tamaño del ejecutable en memoria crece, crece y crece...
« Respuesta #2 en: 21 Marzo 2014, 18:19 pm »

Excelente,, jamas hubiera pensado eso..
Pero por lo que veo en ese boletín, la única solución seria corregir el problema en la maquina que experimente este problema,, esa no es solución para mi..

Si dejo el ejecutable así, es muy probable que se coma toda la ram,, no?
Y si Microsoft no tiene otra solución, lo mejor seria usar sockets,, no ?

Saludos!! Y Gracias!
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: El tamaño del ejecutable en memoria crece, crece y crece...
« Respuesta #3 en: 21 Marzo 2014, 18:41 pm »

¿Estas usando SSL?

Sino revisa un poco el codigo. ¿Que pasa si HttpOpenRequest funciona y HttpSendRequest no? Cuando SendRequest no devuelve false, mmm, llamas a InternetCloseHandle con su resultado?
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: El tamaño del ejecutable en memoria crece, crece y crece...
« Respuesta #4 en: 21 Marzo 2014, 18:52 pm »

Fua, no había leído o mejor dicho prestado atención al bruto cartel que dice:

Citar
Se produce un problema de pérdida de memoria cuando se ejecuta una aplicación que utiliza la función HttpSendRequest de la API de WinHTTP o de la API de WinINet para enviar solicitudes de Secure Sockets Layer en Windows XP Service Pack 3

Citar
Sino revisa un poco el codigo. ¿Que pasa si HttpOpenRequest funciona y HttpSendRequest no? Cuando SendRequest no devuelve false, mmm, llamas a InternetCloseHandle con su resultado?

Voy a revisar si.. a lo mejor me esta faltando (o sobrando) algo.. el código sigue bastante mas, puede ser eso,, o al llamar a la función...

Gracias! Saludos!
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: El tamaño del ejecutable en memoria crece, crece y crece...
« Respuesta #5 en: 21 Marzo 2014, 19:13 pm »

Fua, no había leído o mejor dicho prestado atención al bruto cartel que dice:

Ya me parecia raro que fuera eso  :silbar:

Voy a revisar si.. a lo mejor me esta faltando (o sobrando) algo.. el código sigue bastante mas, puede ser eso,, o al llamar a la función...

Ahi tenes un escenario de leak seguro, seria mejor que tuvieras en cuenta si HttpOpenRequest devuelve diferente de NULL para despues llamar a HttpSendRequest, y en el caso de que esta falle llamar inmediatamente a InternetCloseHandle (si seguis con la misma logica de devolver false en caso de que falle).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: El tamaño del ejecutable en memoria crece, crece y crece...
« Respuesta #6 en: 21 Marzo 2014, 19:26 pm »

Ta,, ya esta el problema.. al no llamar a InternetCloseHandle pasa eso.. O sea, todo eso que dijiste EI jeje

El código se puede mejorar mucho se, voy a meterle a eso ahora..

Gracias Genio!
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: El tamaño del ejecutable en memoria crece, crece y crece...
« Respuesta #7 en: 21 Marzo 2014, 19:35 pm »

De nadas  ::)
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: El tamaño del ejecutable en memoria crece, crece y crece...
« Respuesta #8 en: 22 Marzo 2014, 04:22 am »

Pero el problema de el enlace es debido a un mal diseño de Windows , no de la aplicación... sino, ya me estaria preocupando
yo también, por eso es mejor usar ws2_32, require más trabajo pero los bots quedan de lujo ^^
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: El tamaño del ejecutable en memoria crece, crece y crece...
« Respuesta #9 en: 22 Marzo 2014, 12:08 pm »

Pero el problema de el enlace es debido a un mal diseño de Windows , no de la aplicación... sino, ya me estaria preocupando
yo también, por eso es mejor usar ws2_32, require más trabajo pero los bots quedan de lujo ^^

Si, pero ese problema no tenia nada que ver con el de Vaagish.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
El español crece en internet « 1 2 »
Noticias
wolfbcn 17 6,192 Último mensaje 25 Noviembre 2010, 10:16 am
por Artikbot
Telefónica crece un 30% en 2010
Noticias
KarlosVid(ÊÇ) 0 1,532 Último mensaje 25 Febrero 2011, 21:41 pm
por KarlosVid(ÊÇ)
El 'sexting' juvenil crece
Noticias
wolfbcn 0 2,372 Último mensaje 6 Diciembre 2011, 13:36 pm
por wolfbcn
El spam de compra-venta de acciones crece con la crisis
Noticias
wolfbcn 0 1,170 Último mensaje 8 Abril 2014, 13:48 pm
por wolfbcn
Crece la demanda de monitores de mayor tamaño y resolución
Noticias
wolfbcn 0 1,679 Último mensaje 21 Diciembre 2014, 22:55 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines