FreeMem

Por esas cosas que ocurren de vez en cuando, me he topado con FreeMem, un sencillo «desfragmentador de memoria RAM» escrito en Visual Basic Script (VBS).

La idea se me pasó por la cabeza en 2008, cuando con el auge de Windows XP y Vista, seguía habiendo multitud de usuarios que alababan los méritos de este tipo de herramientas, a pesar que no hace falta ser demasiado avispado como para detectar el fraude.

Quizás en núcleos de Windows 95, 98 o ME, el simple procedimiento de reservar un bloque grande de memoria, para forzar al sistema operativo a paginar en disco el contenido de la memoria, y luego liberar ese bloque, para que se recuperara el contenido de disco, daba ciertas ventajas en cuanto a fragmentación y más memoria libre.

Me sorprendía como proliferaron este tipo de herramientas, muchas de ellas de pago, y algunas caras, así que tras una conversación con un amigo, me propuse desarrollar lo mismo, pero de una forma tan inteligible, que quedara patente su obviedad.

El resultado es un VBS de apenas 6 Kb., que si bien «desfragmenta la memoria» con apenas 5 lineas de código, tiene algunas funcionalidades interesantes, como el parseo de la los parámetros, la ejecución de ProcessIdleTasks, el uso intensivo de WMI (Windows Management Instrumentation), y la ofuscación con screnc.

En resumen, un programa con una finalidad inútil, pero con una implementación que puede ser interesante.

Puedes descargar la versión ofuscada VBE (4 Kb. en formato ZIP), o bien los originales completos VBS y el difícil de encontrar Microsoft Script Encoder (44 Kb. en formato ZIP).



5 comentarios en “FreeMem”

  1. Por supuesto Manuel, si se reconoce el copyright del autor original, pueden hacerse tantos trabajos derivados, variaciones o mejoras como se considere necesario.

    No dudes en notificarme de cualquier cosa que hagas, ¡y así poderlo ver crecer en manos de otro!

  2. me gustaría pasarlo a vb.net para tener un programa en memoria liberando la misma cuando disminuya, este arrancará con el sistema, pero aun no se cuando pues ando algo ocupado. Tuve un blog pero me lo cerraron, en el expuse algunos de mis proyectos, cuando lo restablezca (espero el próximo año) te paso el link por si hay algo que te sirva 😉

  3. Algunas cosas cambian más deprisa que los propios usuarios. Recuerdo la época en la que empezaba a popularizarse Linux, y mucha gente que venía todavía con el chip del MS-DOS puesto, lanzaba cada 2×3 u comando «free» y se quejaba de que «el Linux se les comía toda la memoria». 😀

  4. Un proyecto muy interesante. No hay prisa, ya nos lo mostrarás cuando lo tengas.
    Si estudias el VBS de FreeMem, verás que la idea es sencilla. Se detecta la cantidad de memoria disponible, y se va reservando en bloques para forzar a que el SO la pagine, y por tanto cuando la vuelva a coger esté desfragmentada.

Deja un comentario