¿Qué es un packer?

 

Upx packer compresorEn ocasiones hablo de reversing, packers, cracking en general, y doy por sabidos algunos conceptos que no todo el mundo conoce. Algunas herramientas, y para ello antes explicaré –a mi modo-, algunos aspectos previos.

La pregunta del título, dice ¿Qué es un packer?
Una herramienta, exactamente un programa, que permite entre otras cosas:

-Añadir, quitar, y/o modificar un código.
-Esconder o camuflar las partes del mismo.
-Comprimir o aumentar el tamaño del original
-Incluir gestión de licencias.
-Incluir liberáis y dependencias. Como un joiner.
-Y suele comportarse siempre de la misma manera*

¿Para qué utilizar un packer?
La utilidad principal es esconder el código. Un packer, tratará con mayor o menor éxito, camuflar el código de un programa, haciendo que la tarea de analizar, y comprender los procesos internos sea un posible fracaso.

¿Qué utilidad se le suele dar?
Los programadores, lo utilizan para evitar que los famosos y llamativos “Keygen”, “cracks”, etc. Sean fácilmente obtenibles, y a poder ser te rasques un poquito el bolsillo y compres la aplicación. –lo cual aprovecho para recomendarte encarecidamente, si te gusta. Paga por ello, si no quieres pagar busca otra aplicación-

En otras ocasiones lo utilizan para disminuir el tamaño del programa que han creado, o quizá para anexar las librerías que utilizan, de esta forma, similar a lo que ocurriría con un archivo comprimido, en un mismo ejecutable, transmiten todo lo necesario para hacerle funcionar.

Lo que era bueno para los programadores, se les ocurrió a los creadores de virus, realmente malware en general, que también podría ser bueno para ellos, por este motivo, cada vez más, puedes encontrar –en el siguiente post, explicaré como-, mucho malware que utiliza packers para esconderse.

¿Hay tipos de packer?
No lo llamaría tipos de packer, ya que en esencia, serán siempre “iguales”, tendrán mejores o peores sentencias de ofuscación, códigos destinados a comprimir el original, o técnicas anti-reversing. Pero esto son opciones que pueden llegar a tener, o no.

¿Una vez aplicado un packer, este se puede retirar?
Sí, una vez hemos localizado el packer que ha sido empleado –si hemos tenido suerte-, podemos buscar información sobre el mismo, o quizá existe un “unpacker”, público, que nos pueda facilitar la tarea. En caso contrario… Nos tocaría estudiar el código, y tratar de quitar a mano la protección. Algo que suele ser divertido y didáctico.

Más información:
Que es un packer (Muy completo)
Malware y packers (ESET)
¿Deben ser detectados los packers?