|
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.
|