Bug misterioso do Word 97 desaparecia sempre que engenheiros tentavam investigá-lo
- Cyber Security Brazil
- há 15 minutos
- 2 min de leitura

Um dos bugs encontrados durante a fase final de desenvolvimento do Microsoft Word 97 colocou os engenheiros diante de um problema particularmente difícil: o software apresentava falhas nos testes, mas o erro simplesmente desaparecia quando alguém tentava investigá-lo usando um debugger. Décadas depois, o veterano da Microsoft Raymond Chen relembrou como a equipe descobriu que a causa estava relacionada a um problema específico de CPU.
O defeito surgiu próximo ao fim do ciclo de desenvolvimento do Word 97. Nos laboratórios da Microsoft, um script conseguia provocar o crash com relativa frequência. No entanto, assim que os desenvolvedores tentavam reproduzir a situação sob um debugger, o problema deixava de acontecer.
A situação preocupava a equipe porque uma falha que aparecia ocasionalmente nos testes poderia se tornar frequente quando o Word fosse instalado em milhões de computadores com diferentes configurações de hardware.
Sem conseguir reproduzir o comportamento durante a depuração convencional, os engenheiros chegaram a considerar o uso de um In-Circuit Emulator (ICE). Esse equipamento poderia assumir o papel do processador e permitir a inserção de breakpoints diretamente na CPU emulada, oferecendo uma maneira de acompanhar a execução sem alterar as condições que aparentemente faziam o bug desaparecer.
A investigação acabou apontando para computadores equipados com processadores de um fabricante específico. A partir daí, a Microsoft conseguiu relacionar o crash a um erratum da CPU — um defeito conhecido no comportamento do processador que poderia ser acionado por uma determinada sequência de instruções.
O compilador utilizado pela empresa já havia recebido uma atualização capaz de evitar a geração da sequência problemática. Trocar o compilador naquele estágio do projeto, entretanto, não era uma opção considerada segura.
O conjunto de ferramentas utilizado para compilar o Word 97 já estava congelado para o lançamento. Introduzir uma nova versão do compilador poderia alterar outras partes do programa e gerar bugs desconhecidos justamente quando o desenvolvimento estava chegando ao fim.
A equipe escolheu então uma solução muito mais cirúrgica: procurar diretamente nos arquivos binários do Word pelas sequências de código capazes de acionar o problema do processador.
A busca encontrou uma ocorrência. Em vez de recompilar todo o aplicativo, os engenheiros aplicaram um patch diretamente no binário e inseriram uma instrução NOP — abreviação de "no operation", uma instrução que não realiza uma operação efetiva — no trecho problemático. A pequena alteração foi suficiente para impedir que a CPU encontrasse a sequência responsável pelo crash.
A estratégia minimizava o risco de efeitos colaterais porque modificava somente o ponto necessário, sem introduzir as mudanças potencialmente geradas por uma nova versão do compilador.
O Word 97 acabou chegando ao mercado com novidades muito mais conhecidas, incluindo o assistente Clippy e o suporte ao Visual Basic for Applications (VBA). Nos bastidores, porém, uma única instrução adicionada diretamente ao binário ajudou a evitar que determinados computadores enfrentassem uma falha difícil até mesmo de observar durante a depuração.



