Número 94, Terça 25/3/2003

Inicio

Noticias

Truques e dicas

Sobre iMàtica...

Introduza o seu endereço de correio electrónico e subscreva-se à lista de distribuição de iMàtica

  Subscrever
  Cancelar subscrição

Receberá a cada fim de semana as noticias do programa no seu endereço de correio electrónico.

O mais destacado das noticias

O mais destacado dos breves

  • Disponível para download Netscape 7.02 para Windows, Linux e Mac OS X. Incorpora uma nova máquina virtual Java e a última versão do plug-in de Flash. Mais informação e downloads
  • Google consegue obter a patente sobre o seu sistema de classificação de páginas web, o qual baseia-se em primar as páginas que tenham mais links dirigidos a elas
  • Microsoft faz pública a data do 29 de abril para por à venta o Windows Server 2003

NotePad.exe

Toda a gente, pelo menos uma vez ja precisou de abrir um documento de texto (.txt) com o NotePad. O NotePad é muito fácil de utilizar e muito eficiente no que diz respeito à velocidade. Ora esta facilidade torna-o convidativo para abrir documentos de texto pequenos e médios. Quando se tenta abrir um documento de texto um pouco maior o NotePad pára e pergunta se desejamos abrir o documento com o WordPad. Até aqui, nada de novo. Mas eu acho irritante o facto de ele estar sempre a fazer a mesma pergunta.

Uma maneira de evitar a pergunta é de obrigar o NotePad a abrir o WordPad sempre que ele não tem capacidade para o nosso documento de texto.

Antes de tudo, devemos fazer uma copia de segurança do nosso NotePad. Para esse efeito, basta copia-lo e dar-lhe o nome de NotePad2.exe.

Temos que abrir o NotePad com um editor de executáveis tais como o HexWorkShop e procurar esta cadeia de código:
-> FF15A8644000

Uma vez a cadeia de código encontrada, só nos resta trocar por esta nova cadeia de código:
-> EB0D90909090

Grava-se o programa NotePad.exe alterado, e já esta!

Agora sempre que se abrir um documento de texto médio ou grande, o NotePad abre automaticamente o WordPad.

Para mais explicações sobre a cadeia de código que mudamos, leia as linhas que se seguem.

Porção da listagem original do ficheiro NOTEPAD.EXE gerada pelo WinDasm:

* Referencia a Função API do KERNEL32 -> GetStartupInfoA
:0040339F FF1590634000 Call dword ptr [00406390]
:004033A5 6A24 push 00000024
:004033A7 A1B4504000 mov eax, dword ptr [004050B4]
-> Prepara o texto "Este ficheiro é muito grande..."
:004033AC 56 push esi
:004033AD 50 push eax
:004033AE FF7508 push [ebp+08]
-> Guarda o caminho e o nome do ficheiro que se vai abrir

* Referencia a Função API do USER32 -> MessageBoxA
:004033B1 FF15A8644000 Call dword ptr [004064A8]
-> Faz aparecer uma caixa de mensagem com o seguinte texto:
"Este ficheiro é muito grande"
"Quer abri-lo com o WordPad?"
:004033B7 83F806 cmp eax, 00000006
-> Verifica se o botão da caixa de mensagem premido foi o "Sim"
:004033BA 0F85A7000000 jne 00403467
-> Se foi outro botão, então retorna sem chamar o WordPad
:004033C0 6804010000 push 00000104
-> Se o programa chegou até aqui, então a escolha foi o botão "Sim"
-> O fluxo do programa continua e chama o WordPad com o nosso ficheiro.

Porção da listagem alterada do ficheiro NOTEPAD.EXE gerada pelo WinDasm:

* Referencia a Função API do KERNEL32 -> GetStartupInfoA
:0040339F FF1590634000 Call dword ptr [00406390]
:004033A5 6A24 push 00000024
:004033A7 A1B4504000 mov eax, dword ptr [004050B4]
-> Prepara o texto "Este ficheiro é muito grande..."
:004033AC 56 push esi
:004033AD 50 push eax
:004033AE FF7508 push [ebp+08]
-> Guarda o caminho e o nome do ficheiro que se vai abrir

:004033B1 EB0D jmp 004033C0
-> Salto incondicional para o endereço 4033C0 (push 00000104)
:004033B3 90 nop
:004033B3 90 nop
:004033B3 90 nop
:004033B3 90 nop
-> Esta serie de NOPs só serve para acertar os ciclos até a próxima instrução.
:004033B7 83F806 cmp eax, 00000006
-> Esta verificação nunca vai ser feita
:004033BA 0F85A7000000 jne 00403467
-> Este salto nunca vai ser executado
:004033C0 6804010000 push 00000104
-> O fluxo do programa vem directamente para aqui e executa automaticamente o WordPad.

Ultimas notas:
Este pequeno exercício, só pode ser executado por mera curiosidade. O NotePad faz parte integrante do Windows e é propriedade da MicroSoft. O NotePad não deve ser adulterado sem autorização expressa da MicroSoft.

iMàtica é uma produção de Habitación Phantasma S.L.

Pesquisas Internet


Pesquisar na WWW
Pesquisar na imatica.org

Panda ActiveScan