Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
26/06/1995
< Artimanhas >

Semana passada recebi um FAX do Mestre Ricardo AG, velho amigo e colega de BBS. FAX que estava na redação a minha espera desde o dia treze desse mês.

Nele, dizia o amigo Ricardo: "Como você está sem modem ainda, presumo, está perdendo o reboliço causado pela nota da Cora na edição de ontem sobre o Registration do Win 95. O que muita gente não sabe é que a Microsoft é reincidente. Sim, amigo, no beta do Windows 3.1 também existia uma armadilha para o usuário que, não fora a curiosidade dos hackers, talvez estivesse até hoje fazendo das suas".

(para quem não sabe do que se trata: a nota da Cora mencionava os rumores que grassam na Internet dando conta de que tão logo o usuário da versão beta do Windows 95 faça sua primeira conexão para se registrar na MS Network - sobre a qual ainda falaremos aqui - um retrato do conteúdo de sua máquina será enviado para a MS sem que ele seja avisado). Anexo ao FAX vinha um artigo da Dr. Dobbs de setembro de 93, assinado por nosso velho conhecido Andrew Schulman. Um artigo que dá conta de mais uma das artimanhas da Microsoft e que será resumido adiante.

O artigo trata de um curiosíssimo trecho de código incluido nas versões beta de Windows 3.1. Um código que gera uma incompreensível mensagem de erro (citada adiante). Mensagens semelhantes, relatando o mesmo erro porém com identificadores numéricos diferentes, eram geradas pelos drivers Himem.Sys e Smartdrv.Exe e pelo programa de diagnóstico MSD incluídos com Windows. Sempre em produtos da Microsoft liberados em 91/92.

Mas o que aconteceu em 1991? Bem, na liça dos sistemas operacionais, sem dúvida o evento mais importante foi o lançamento do MS-DOS 5.0 que, na opinião da maioria dos analistas, foi a mais revolucionária versão do DOS da MS. Que veio substituir justamente o MS-DOS 4.x, provavelmente o pior de todos os DOS da MS.

Se você usa micro há mais de cinco anos deve se lembrar que os principais (e enormes) avanços do MS-DOS 5.0 sobre o 4.x já existiam há mais de ano no DR-DOS 5.0 que até então passara quase despercebido. Era tão pouco conhecido que a maioria dos usuários o chamava de "Doutor DOS", ignorando que aquele DR eram as iniciais de Digital Reseach, a softhouse que o desenvolvia. Um DOS tão melhor que o MS-DOS 4.x que, pela primeira vez na história, ameaçou a hegemonia da MS no campo dos sistemas operacionais e obrigou-a a adotar despudoradamente na nova versão de seu próprio DOS os mesmos avanços. Portanto, na época de que trata o artigo, a principal concorrente da MS no setor dos sistemas operacionais era a DR. Uma adversária de respeito que já havia demonstrado do que era capaz.

Pois bem: ao se carregar a versão beta de Win 3.1 sobre o DR-DOS, surgia na tela uma mensagem mais ou menos assim: "Detectado erro não-fatal: erro nr. 4053. Favor contactar o suporte técnico. Tecle ENTER para continuar". Teclava-se ENTER, a carga prosseguia e Win rodava sem problemas. A única anormalidade era a mensagem de erro em si mesma. E ela somente aparecia quando se estava usando o DR-DOS.

Andrew Schulman estranhou a mensagem e resolveu descobrir o que a causava e de que erro se tratava. O saborosíssimo artigo relata justamente os percalços que enfrentou na faina de desassemblar o código de Windows. Não dá para descer a detalhes, evidentemente: a coisa ficaria demasiadamente pesada e técnica. Mas dá para resumir. Diz Schulman que todos os esforços foram feitos para impedir que o código fosse desassemblado com sucesso. Esforços que iam desde apontar interrupções para endereços inválidos até criar artificialmente "breakponts" para bloquear o programa desassemblador. E, finalmente, criptografar a maior parte do código. Em suma: o programador fez todo o esforço possível para proteger seu código de olhares indiscretos. Mas o que continha esse código tão bem protegido?

De útil, nada. Ou melhor: praticamente nada. Na verdade sua única função era, apoiando-se fortemente em funções não documentadas do próprio MS-DOS, verificar se de fato existiam determinadas estruturas peculiares do DOS da MS. Por exemplo: se certos ponteiros foram criados, se apontavam para limites de parágrafos (offset zero), coisas desse tipo. Detalhes absolutamente irrelevantes do ponto de vista funcional que só serviam para verificar idiosincrasias de cada sistema procurando identificar sem sombra de dúvida qual sistema operacional estava rodando. Mais nada.

E, depois de identificado o sistema operacional, o que acontecia? Bem, se fosse o DR-DOS, era emitida a mensagem relatando o "erro". Senão, não. Schulman testou diversas versões do MS-DOS, PC-DOS e Compaq DOS. Todas "passaram". Mas qualquer versão do DR-DOS, mesmo suportando perfeitamente a versão beta de Win e rodando todos os aplicativos sem problemas, disparava a mensagem de "erro não-fatal". Em suma, a única função do código era originar uma mensagem de erro ao encontrar uma versão do DR-DOS e só do DR-DOS. Mais nada.

Mas, afinal, para que serviria isso? Bem, do ponto de vista técnico, Schulman não encontrou serventia alguma. Mas do ponto de vista prático, sim: "os resultados são suficientemente claros. Nos locais onde se testavam as versões beta de Windows que usavam DR-DOS em vez de MS-DOS pode ter sido semeado o medo de usar o DR-DOS. 'Doutor, toda a vez que eu faço isso eu recebo uma mensagem de erro'. 'Então pare de fazer". Em suma: o artigo deixa claro que Andrew Schulman não encontrou qualquer finalidade naquele código tão importante a ponto de ter sido criptografado senão disseminar o medo de rodar Windows sobre o DR-DOS. Pois fatal ou não fatal, a mensagem era clara: havia um "erro". E quem se sente seguro nessas condições?

É bom lembrar que Win 3.1 representou um marco, a versão que vinha depois da 3.0. Na época, havia grande expectativa (fortemente incentivada pela MS) em relação a ela: Win 3.0 fora um enorme sucesso de mercado e todos ansiavam por conhecer a nova versão. Todo mundo se preparava para ela com profundo interesse.

De lá para cá as coisas evoluiram. Windows 3.1, de fato, vendeu feito bolinho quente. E foi seguido pela versão 3.11, ainda melhor e mais bem sucedida. Hoje estima-se que Windows aninhe-se nos corações de mais de sessenta milhões de micros.

E o excelente DR-DOS? Bem, depois da versão 5.0 de 90/91, que disputou mercado com o MS-DOS ao alcançar mais de 20% das vendas, nunca mais se aprumou. Há dois anos foi comprado pela Novell. Que desistiu dele ano passado e retirou-o do mercado.

Pois é isso. Como sabe qualquer estudante de administração, uma das maneiras de liquidar um concorrente é fazer um produto melhor que o dele. Mas não é a única.

B. Piropo