Tenho trabalhado em um computador antigo com Windows XP. Este PC está conectado a uma máquina Biesse, que é operada por um software que só roda em Windows XP.
No arquivo boot.ini (localizado em c:) deste PC, há um /execute
comando. Acho que o /execute
comando é algo necessário para o software da máquina, mas pensei que alguém pudesse me dar uma luz.
O arquivo boot.ini completo é:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /execute /fastdetect
Isso /execute
não está listado nas especificações do Microsoft boot.ini, como pode ser visto no link: https://learn.microsoft.com/en-us/troubleshoot/windows-server/performance/switch-options-for-boot-files
Então, o que isso significa /execute
no arquivo boot.ini do Windows XP?
Desativa o DEP (Data Execution Prevention), ou seja, o uso do bit NX para proteção de execução de memória.
Em sistemas WinXP de 32 bits, adicionar
/noexecute
uma CPU compatível com PAE ativa o suporte do Windows para o bit NX, marcando páginas de memória como não executáveis no nível de hardware se elas não devem armazenar código executável.Em sistemas WinXP/2003 de 64 bits (para CPUs Intel/AMD) ocorre o oposto, o recurso DEP é básico no modo de 64 bits e o Windows o utiliza por padrão, então
/execute
desativa essa proteção.Não parece que a opção /execute tenha algum significado no XP de 32 bits, e a ausência dela
/noexecute
teria o mesmo efeito.O DEP dificulta o abuso de certos tipos de bugs em programas (principalmente: navegadores da web/visualizadores de documentos/imagens que podem ser convencidos a abrir um arquivo deliberadamente malformado) para executar código personalizado no sistema da vítima – em vez de a CPU executar alegremente o código fornecido pelo invasor, o programa será forçado a travar devido à violação do NX.
Programas escritos antes do uso do bit NX se tornar difundido podem ser incompatíveis com ele, se eles gerarem dinamicamente código de máquina – por exemplo, um Java Runtime que usa compilação just-in-time – e se eles esquecerem de informar ao sistema operacional que essas páginas devem ser marcadas como executáveis ("por que se preocupar se funciona no meu PC de qualquer maneira?").
Por isso, originalmente o Windows XP aplicava o NX apenas para programas que optavam por participar , mas o usuário podia alterá-lo para sempre aplicar, exceto para alguns programas que optavam por não participar (
/noexecute=optout
).Quanto a
/fastdetect
isso, ele basicamente diz ao Windows para evitar procurar por mouses de porta serial e mouses de barramento , sendo que o primeiro provavelmente demora um pouco para ser detectado (sem mencionar a perturbação de dispositivos sem mouse em uma porta serial) e o último está completamente obsoleto na época do WinXP.