
Ferramenta de Extração de Microcódigo Intel, AMD, VIA e Freescale
Intel, AMD, VIA & Freescale - Ferramenta de Extração de Microcódigo
Intel, AMD, VIA & Freescale CPU Microcode Repositories

O MC Extractor é uma ferramenta que analisa binários de microcódigo de processadores Intel, AMD, VIA e Freescale. Pode ser utilizado por utilizadores finais que procuram toda a informação relevante do microcódigo, como CPUID, Plataforma, Versão, Data, Lançamento, Tamanho, Checksum, etc. É capaz de converter contentores de microcódigo Intel (dat, inc, h, txt) em imagens binárias para integração na BIOS, detetar microcódigos novos/desconhecidos, verificar a integridade do microcódigo, estado Atualizado/Desatualizado e mais. O MC Extractor também pode ser usado como uma ferramenta de análise de pesquisa com múltiplas estruturas que permitem, entre outros, a análise completa e exibição de informações de todos os Cabeçalhos de microcódigo documentados ou não. Além disso, com a ajuda da sua extensa base de dados, o MC Extractor é capaz de categorizar de forma única todos os microcódigos suportados, bem como verificar se existem microcódigos que ainda não foram armazenados nos Repositórios de Microcódigo.
O MC Extractor permite que utilizadores finais e/ou investigadores extraiam, visualizem, convertam e reportem rapidamente novas versões de microcódigo sem o uso de ferramentas especiais ou Editores Hex. Para isso de forma eficaz, uma base de dados teve de ser construída. O Intel, AMD, VIA & Freescale CPU Microcode Repositories é uma coleção de todos os Microcódigos de CPU Intel, AMD & VIA Mais Recentes de Produção que encontrámos. A sua existência é muito importante para o MC Extractor, pois permite-nos continuar a fazer pesquisa, encontrar novos tipos de microcódigo, comparar lançamentos para semelhanças, verificar binários atualizados etc. Incluído com o MC Extractor está um ficheiro chamado MCE.db, que é necessário para o programa funcionar. Inclui entradas para todos os binários de Microcódigo que estão disponíveis para nós. Isto acomoda principalmente duas ações: a) Verificar se o microcódigo importado está atualizado e b) Ajudar a encontrar novos lançamentos de Microcódigo mais cedo, reportando-os no tópico de discussão Intel, AMD, VIA & Freescale CPU Microcode Repositories Discussion.
O MC Extractor foi inicialmente baseado numa fração da ferramenta UEFIStrip do Lordkag, por isso, antes de mais, agradeço-lhe por todo o seu trabalho que inspirou este projeto. Entre outros, ótimos locais para aprender sobre microcódigos são o próprio site de download da Intel e documentação oficial, Intel Microcode Patch Authentication, Coreboot (a,b,c), Microparse por Dominic Chen, Notas e Pesquisa de Ben Hawkes, Microdecode de Richard A Burton, Dumps CPUID AIDA64, Sandpile CPUID, Free Electrons (a, b), Freescale (a, b, c, d) e muitos outros que posso ter esquecido mas que estariam aqui caso contrário.
Existem duas formas de usar o MC Extractor, o script MCE e a linha de comandos. O script MCE permite-lhe inserir ou arrastar e soltar um ou mais firmwares e visualizá-los um a um ou analisar recursivamente diretórios inteiros. Para usar o MC Extractor manualmente, pode ser usada uma linha de comandos com -skip como parâmetro.
Para usar o MC Extractor, selecione um ou vários ficheiros e insira ou arraste e solte-os no seu script. Também pode inserir certos parâmetros opcionais executando o MCE diretamente ou soltando primeiro um ou mais ficheiros nele. Tenha em mente que, devido a limitações do sistema operativo, existe um limite de quantos ficheiros podem ser soltos de uma só vez. Se isso for um problema, pode sempre usar o parâmetro -mass para analisar recursivamente diretórios inteiros, conforme explicado abaixo.
Existem vários parâmetros que melhoram ou modificam o comportamento padrão do MC Extractor:
O MC Extractor pode construir o seu próprio formato Microcode Blob (MCB), que combina múltiplos binários de microcódigo Intel ou AMD num único ficheiro. Isto permite principalmente a extração rápida e automática do binário de microcódigo compatível mais recente com base no binário de microcódigo de entrada equivalente do utilizador. O MCB consiste num Cabeçalho identificável e numa Tabela de Consulta de Entradas (LUT) seguida pelos dados binários do Microcódigo propriamente ditos. O Cabeçalho inclui informações como Fornecedor do Microcódigo (Intel ou AMD), Número de Microcódigos, Revisão da BD MCE e um Checksum que cobre todo o blob. As entradas da LUT incluem detalhes para cada binário de microcódigo, como CPUID, Plataforma, Revisão, Data, Tamanho, Checksum e Deslocamento no blob.

Para construir um MCE Microcode Blob (MCB.bin), insira os binários de microcódigo Intel ou AMD desejados e use o parâmetro -blob. Pode usar os seus próprios microcódigos ou encontrar os Mais Recentes de Produção Intel e AMD no repositório Intel, AMD, VIA & Freescale CPU Microcodes. Para extrair o microcódigo mais recente de um MCB, insira um único binário de microcódigo e use os parâmetros -blob -search. O MC Extractor validará o MCB detetado, verificará se o microcódigo já está atualizado antes de extrair o mais recente e notificará adequadamente.
Durante a operação, o MC Extractor pode encontrar problemas que podem gerar Notas, Avisos e/ou Erros. As Notas (cor amarela/verde) fornecem informações úteis sobre uma característica deste firmware específico. Os Avisos (cor roxa) notificam o utilizador de possíveis problemas que podem causar instabilidade no sistema. Os Erros (cor vermelha) são mostrados quando algo inesperado ou problemático é encontrado.
O MC Extractor consiste em dois ficheiros, o script (MCE.py) e a sua base de dados (MCE.db). Descarregue a versão mais recente a partir do separador Releases, o título deve começar com "MC Extractor vX.Y.Z". Pode ser necessário rolar um pouco para baixo se houver lançamentos de BD no topo. Este último pode ser usado para atualizar a BD desatualizada que foi incluída com o lançamento mais recente "MC Extractor vX.Y.Z", o título deve começar com "DB rXY".
O MC Extractor deve funcionar em todos os sistemas operativos Windows, Linux ou macOS que tenham suporte para Python >= 3.7.
Para executar o MC Extractor, precisa de instalar Python >= 3.7, seguido destes módulos Python de terceiros:
pip3 install colorama pltable
Nota: Algumas imagens podem estar desatualizadas e representar versões mais antigas do MC Extractor.


















