Sítio do Piropo

B. Piropo

O Globo
Volte
27/09/1999

MFX 2000: Um modo Engenhoso de lidar com o Bug do ano 2000


Enquanto a série sobre o bug do ano 2000 rolava na Trilha Zero, recebi uma mensagem da Y2K Brazil informando que dispunham de um programa para corrigir o bug. Estaria eu interessado em conhecer? Estava. Instalei e testei o programa. E achei a solução tão original e engenhosa que resolvi escrever à respeito.

O programa é o MFX 2000, desenvolvido pela australiana MFX Research. É composto por três módulos. O primeiro examina o BIOS e, se detecta incompatibilidade, instala um programa residente e adiciona a linha correspondente ao Autoexec.Bat. Nada de novo nem revolucionário, mas funciona.

O segundo inspeciona os arquivos do disco rígido em busca de "datas curtas" (que usam apenas dois algarismos para o ano) e emprega um espertíssimo algoritmo para determinar se é o caso de efetuar a correção, apresentando os resultados em relatórios detalhados. O que o torna especial é a forma como é feita a análise. Se uma data curta é encontrada em um arquivo gráfico, de áudio ou de ajuda, por exemplo, ela é ignorada. Mas se é encontrada em uma célula de planilha, o programa verifica se há alguma referência à célula (o que indica que a data foi usada como operando) e, se encontra, informa que deve ser efetuada a correção. Uma verificação semelhante é feita em arquivos executáveis em busca de variáveis que contenham datas. Os resultados da auditoria podem ser examinados sob a forma de diferentes relatórios, um dos quais agrupa os arquivos de acordo com os aplicativos a que pertencem.

Mas o melhor dos três módulos é o último, pela forma engenhosa que efetua a correção. Ao contrário dos similares, não usa qualquer banco de dados. Quando encontra no interior de um arquivo uma data curta que o programa de diagnóstico determinou que deve ser alterada, simplesmente altera o formato de dd/mm/aa para dia/mês/aaaa (usa quatro dígitos para o ano e apenas um byte para armazenar o dia e o mês). Como este é um formato viável e amplamente utilizado para data, o artifício funciona e o arquivo, antes e depois da modificação, tem exatamente o mesmo número de bytes (portanto, mantém inalterada a "checksum" e não é apontado pelos programas antivírus). A grande vantagem desta técnica é que não exige acesso ao código fonte, posto que a alteração é feita diretamente no código objeto, ou seja, no arquivo compilado. E funciona igualmente para arquivos executáveis, de sistema e bibliotecas de ligação dinâmica.

O MFX 2000 foi usado para diagnosticar e corrigir o drive C desta máquina que vos fala. O processo levou cerca de sete horas. Nos 16.082 arquivos examinados foram encontradas 1.571 datas curtas que não exigiram correção e 3.565 que exigiram mudanças nos 669 arquivos (executáveis, de sistema, dlls e de dados) que as continham. Comandei a criação de cópias de segurança (seguro morreu de velho) e a execução das alterações. O tamanho dos arquivos não se alterou, mas examinando-os com um editor de discos, as diferenças aparecem. E, até o momento, a máquina passa bem, obrigado.

A única desvantagem do programa é o preço, equivalente a US$ 150, um tanto salgado para o mercado nacional e definitivamente inviável para o usuário doméstico (se bem que, segundo informações do representante, uma versão simplificada de baixo custo para atender a este mercado estava em desenvolvimento). Fora isso, me pareceu a solução mais simples, engenhosa e eficaz para lidar com o bug do ano 2000. Maiores informações no sítio da Y2K Brazil, em [ http://www.y2000fix.com.br/ ].

.B. Piropo