Mates aplicadas 7. Algoritmos de compresión

En el último post vimos como algunos troyanos empaquetaban su código como medida anti forense.


Mientras que los visores PE más básicos tan solo nos indicaban un empaquetamiento UPX...


...con programas comerciales se desempaquetaba automaticamente; pudiendo acceder en los volcados de memoria a las funciones importadas.

Como observamos en la primera imagen, el malware intenta conectar a Internet en la URL señalada; para descargar más accesorios o comunicar con un servidor C2 (Comando y Control).

Lo que más nos interesa en este caso es el proceso de descompresión:

15.05.2019 11:39:41 : UPX Unpacker Plug-in: File compressed with UPX

15.05.2019 11:39:41 : UPX Unpacker Plug-in: UPX version: 13
15.05.2019 11:39:41 : UPX Unpacker Plug-in: File type: win32/pe
15.05.2019 11:39:41 : UPX Unpacker Plug-in: Compression method: LZMA
15.05.2019 11:39:41 : UPX Unpacker Plug-in: Compression level: 8
15.05.2019 11:39:41 : UPX Unpacker Plug-in: Uncompressed size: 13129 bytes...

LZMA pertenece a la familia de algoritmos LZSS.
Estos algoritmos realizan compresión sin perdida, lo cual a primera vista parece alucinante.

Porque JPG o MP3 comprimen con pérdida; descartan aquellos que el ojo o el oido humanos, respectivamente,  no pueden captar.
¿Cómo se puede entonces comprimir algo sin que se pierda ninguna información?

Quien tenga interés en profundizar en este desafiante campo matemático puede leer una explicación en los enlaces superiores.
 

Comentarios

Entradas populares