viernes, 12 de noviembre de 2010

Un compresor único y casero !by the face!

Por muchos ya es sabido el poder de compresión de UPX, conociendo incluso que este software corre bajo licencia GNU de código abierto y con versiones soportadas para sistemas Windows, Linux y Altari. Algunos manitas y no tan manitas entre los que me incluyo, consiguen hacerse un compresor único y personal con tan solo modificar la cabecera de la aplicación.




El método es tan simple como abrir el ejecutable desde un editor hexadecimal o un Editor PE, con el que llegar a la tabla de secciones del archivo y cambiarlas.

El ejecutable original de UPX viene comprimido sobre si mismo, así que lo primero será hacer una copia y quitarle el packer. En el ejemplo lo llamaremos ano.exe, así le damos un toque personal de mi parte.




Para editarlo, en mi caso elijo a HexWorkshop, así no perderé las viejas costumbres que me dio el foro de indetectables, con este buscaremos el nombre de las secciones que quedan impresas sobre los archivos que protege, las cuales son llamadas con los nombre UPX0 y UPX1. Una vez encontradas, reemplazamos todas las que se muestren en el archivo y lo guardamos, pues ya fueron probadas con anterioridad por el tema de la posible inestabilidad del EXE generado.




Le pegaremos duro con el nuevo cambio de look que le dimos a UPX, ahora renombrado a ano.exe, seguido del comando --ultra-brute para comprimir al máximo posible al putty.exe, ¿Por qué uso el cliente Putty para la prueba? Porque es el primero que encontré detrás de la marabunta de iconos con la que tengo tupido mi escritorio con un peso razonable.




Como muestra la imagen anterior, el archivo se empaqueta sin errores, para ver su cabecera modificada, nos bastará con volver a abrir cualquiera de las dos aplicaciones de edición de ejecutables que nombré al principio de la entrada y ver los cambios.




Podemos comprobar que el cambio en la tabla de secciones, afecta a la descompresión del archivo resultante, hasta tal punto en que un UPX sin modificaciones idénticas, no podrá ejercer la conversión a su estado anterior.




Con versiones de UPX anteriores a la 3.03 se podía descomprimir de nuevo el archivo protegido, pero eso ya les dejo a ustedes que prueben hasta la saciedad y ver que combinaciones consiguen.

Hasta hace un par de años, bastaba con comprimir con UPX el servidor de un troyano para saltarse las firmas de los antivirus más importantes, si ha eso le sumábamos una reconstrucción de la cabecera y un cambio de icono, desaparecían por arte de magia 20 antivirus de golpe de las listas de virustotal. Actualmente esto no ocurre o bien recemos por que no se vean este tipo de fallos con softwares tan públicos como lo es UPX.

Un Saludo!

4 comentarios:

  1. Aunque me lo sabía de un viejo loco(?),muchas gracias por compartirlo.

    Sigue(con todo)che!.... :p

    ResponderEliminar
  2. muy grande 4n0! no conocia este truco.. simple pero efectivo! gracias por comparti!

    ResponderEliminar
  3. exelente post y blog, le veo buen futuro, ya te agregue en mis afiliados.
    saludos

    ResponderEliminar
  4. Muchas gracias hermano! veamos con que salgo para la próxima entrada!

    Un Saludo a todos!

    ResponderEliminar