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

A. Sobre o MC Extractor
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.
A1. Características do MC Extractor
- Suporta todos os Microcódigos atuais e legados desde 1995 em diante
- Verifica todos os microcódigos Intel, AMD, VIA & Freescale numa única execução
- Verifica a integridade de todos os microcódigos extraídos através de Checksums
- Verifica se todos os microcódigos Intel, AMD & VIA são os Mais Recentes ou Desatualizados
- Pesquisa sob demanda por todos os microcódigos com base no CPUID
- Mostra estruturas e detalhes do Cabeçalho do microcódigo sob demanda
- Ignora a maioria dos falsos positivos com base em verificações de sanidade
- Suporta microcódigos especiais, corrigidos ou modificados conhecidos
- Capacidade de extrair automaticamente microcódigos Extended da Intel
- Capacidade de extrair automaticamente Contentores Intel (dat, inc, txt, h)
- Capacidade de adicionar rapidamente novas entradas de microcódigo à base de dados
- Capacidade de detetar a tag de Lançamento Produção/Pré-Produção da Intel
- Capacidade de verificar atualizações do MC Extractor e/ou da BD sob demanda
- Capacidade de analisar múltiplos ficheiros por arrastar e soltar ou por caminho de entrada
- Capacidade de ignorar duplicados extraídos com base no nome e conteúdo
- Capacidade de verificar automaticamente versões mais recentes do MC Extractor e da Base de Dados
- Reporta todos os microcódigos que não são encontrados nos Repositórios de Microcódigo
- Possui parâmetros de linha de comandos para melhorar a funcionalidade e auxiliar a pesquisa
- Apresenta mensagens amigáveis ao utilizador e tratamento adequado de erros inesperados de código
- Mostra resultados em tabelas bonitas com texto colorido para significar ênfase
- Projeto Open Source sob licença permissiva, código com comentários auxiliares
A2. Base de Dados do Repositório 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.
A3. Fontes e Inspiração
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.
B. Como usar o MC Extractor
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.
B1. Script do MC Extractor
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.
B2. Parâmetros do MC Extractor
Existem vários parâmetros que melhoram ou modificam o comportamento padrão do MC Extractor:
- -? : Exibe ecrã de ajuda e utilização
- -skip : Ignora ecrã de boas-vindas e opções
- -exit : Ignora a solicitação "Prima Enter para sair"
- -mass : Analisa todos os ficheiros de um determinado diretório
- -info : Exibe informações da estrutura do microcódigo
- -add : Adiciona microcódigo de entrada à BD, se novo
- -dbn : Renomeia o ficheiro de entrada com base no nome único da BD
- -duc : Desativa a verificação automática de atualizações do MCE e BD
- -search : Pesquisa microcódigos com base no CPUID/Modelo
- -last : Mostra o estado "Último" com base na entrada do utilizador
- -repo : Constrói repositórios de microcódigo a partir da entrada
- -blob : Constrói um Microcode Blob (MCB) a partir da entrada
B3. Microcode Blob (MCB) 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.
B4. Controlo de Fluxo do MC Extractor
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.
C. Descarregar o MC Extractor
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".
C1. Compatibilidade
O MC Extractor deve funcionar em todos os sistemas operativos Windows, Linux ou macOS que tenham suporte para Python >= 3.7.
C2. Pré-requisitos
Para executar o MC Extractor, precisa de instalar Python >= 3.7, seguido destes módulos Python de terceiros:
pip3 install colorama pltable
D. Imagens
Nota: Algumas imagens podem estar desatualizadas e representar versões mais antigas do MC Extractor.


















