Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Vaagish en 21 Marzo 2014, 05:26 am



Título: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: Vaagish 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!!


Título: Re: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: eferion en 21 Marzo 2014, 08:24 am
Tal vez esto te aclare un poco los motivos:

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


Título: Re: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: Vaagish 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!


Título: Re: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: Eternal Idol 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?


Título: Re: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: Vaagish 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!


Título: Re: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: Eternal Idol 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).


Título: Re: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: Vaagish 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!


Título: Re: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: Eternal Idol en 21 Marzo 2014, 19:35 pm
De nadas  ::)


Título: Re: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: x64core 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 ^^


Título: Re: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: Eternal Idol 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.


Título: Re: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: Vaagish en 22 Marzo 2014, 17:41 pm
Citar
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 ^^

Citar
Si, pero ese problema no tenia nada que ver con el de Vaagish.

Las dos cosas son verdad..  ;D

@x64Core Que reconocimiento de malware! Jeje Si,, estoy haciendo la botnet.. el servidor me quedo excelente.. esta mal que lo diga yo,, pero me gusto mucho jeje despues pongo imagenes,, donde les parece que deberia postearlas?? Y con respecto a lo de usar sockets,, lo pense.. pero la verdad ya he intentado de todo para dejar los ejecutables mas livianos, mas rapidos, cifrados, en ASM y parece que cuanto mas me esfuerzo en dejarlos indetectables, mas me lo detectan los AV's,, ahora opte por programas un poco mas pesados,, incluyendo todas las librerias de forma "normal" y al parecer,, los AV's lo pasan por ejecutable legitimo..

Saludos!


Título: Re: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: x64core en 22 Marzo 2014, 20:08 pm
Si, pero ese problema no tenia nada que ver con el de Vaagish.
Sí, eso pense sr ^^

-

Pues si pensas publicar el código fuente, panel en la sección de malware :D
Sino, pues reservatelo, sólo te traera problemas, si alguien 'juackea' el servidor donde se encuentra tu panel y lo analiza con las muestras
de malware ya sabra quien es programador, suele pasar. respectoa a la detección yo siempre programo el malware como sin ninguna optimizacion
ni nada luego para ofuscar el código y saltarme los antivirus programo un ofuscador de código/Crypter.


Título: Re: El tamaño del ejecutable en memoria crece, crece y crece...
Publicado por: Vaagish en 22 Marzo 2014, 22:28 pm
Citar
luego para ofuscar el código y saltarme los antivirus programo un ofuscador de código/Crypter.

Yo no he echo ninguno (aun), se que hay un texto por el foro sobre "Como funciona un crypter" (o algo asi, muy parecido) puede que cuando termine el ejecutable, que pretendo dure un tiempo FUD, estudie el tema un poco.. igual, a mi no me preocupa demasiado, no pretendo infectar maquinas al azar, serian algunas contadas, tipo objetivos. (Me parece mucho mas proeza infectar objetivos puntuales, que al azar,, infectar al azar es relativamente sencillo). Y con respecto al servidor, puede que comparta el codigo.. o una variante, para no auto boicotearme jeje

Saludos!

EDIT: No voy a poder compartir el código, porque uso jqgrid, y recién me entero que el script vence! (Y muy probable que compre la licencia) ademas dice que no se permite el uso de jqgrid en nada que sea opensource.. así que no hay chance.. no quiero infringir mas la ley jaja

Bue,, ya se que esto no va aca.. pero son unas fotitos amistosas, para mostrar el server..  :laugh:

(http://i1366.photobucket.com/albums/r769/Vaagish1/One_zps3ec5f4f4.png) (http://s1366.photobucket.com/user/Vaagish1/media/One_zps3ec5f4f4.png.html)

Y se puede elegir el tema:

(http://i1366.photobucket.com/albums/r769/Vaagish1/TWO_zps1177f7b1.png) (http://s1366.photobucket.com/user/Vaagish1/media/TWO_zps1177f7b1.png.html)

Y asi se administran los archivos:

(http://i1366.photobucket.com/albums/r769/Vaagish1/THREE_zpsf4d8cafe.png) (http://s1366.photobucket.com/user/Vaagish1/media/THREE_zpsf4d8cafe.png.html)

PD: El titulo dice RAT-Client,, debería ser Server.. :p