___        /  /\    
      /__/\      /  /::\   
      \__\:\    /  /:/\:\  
      /  /::\  /  /:/  \:\ 
   __/  /:/\/ /__/:/ \__\:\
  /__/\/:/~~  \  \:\ /  /:/
  \  \::/      \  \:\  /:/ 
   \  \:\       \  \:\/:/  
    \__\/        \  \::/   
                  \__\/    

Intel ME (Manageability engine) 6.x Huffman algorithm

Starting at version 6 the "firmware" for the Intel manageability engine uses a custom compression scheme. As explained in various publications by Igor Skochinsky. The details of the compression scheme however remained unknown until now. A lot of it though is only confirmed for ME 6.x and incomplete.

scheme details:

Getting 6.x firmwares:
- 6.2 : msi.com->support->qm57->im-qm57->bios -> 9882_114.zip
- 6.1 : supermicro.com -> support -> downloads -> c7sim-q -> Get Bios -> C7SIMQ1.C02.zip
- 6.0 : foxconnchannel.com -> support -> downloads -> keyword=Q57M -> bios file -> 997F1P03.zip


Dumping compressed bits:dumper.c
Note this code is intentionally buggy and limited, base your work directly on Igor Skochinsky's code and research.

Extracting:data code
These dictionaries are incomplete, and inaccurate. I estimate at least 95% of the entries are correct. More verification and expansion is needed. These extracters will halt when encountering the first unknown dictionary entry. Indispensable help by Igor Skochinsky, phcoder, ...

Feel free to send me corrections and additions.
--bla
Published 1 March 2014