¿Cuál es la relación entre ASLR y el error “El sistema no puede ejecutar el programa especificado” de mshta.exe?
Estoy teniendo un problema al ejecutar mshta.exe. Como puedes ver en la imagen de abajo, obtengo el siguiente error: “El sistema no puede ejecutar el programa especificado”.
He creado un archivo test.hta y tampoco se puede ejecutar. He probado las siguientes soluciones y ninguna de ellas ha funcionado:
- He desactivado App Locker.
- He desactivado el antivirus.
- He desactivado el firewall de Windows.
Sin embargo, ¡cuando activé ASLR funcionó!
He editado el valor del registro MoveImages a 1. Se encuentra bajo la clave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management. Desactivé ASLR antes porque a veces depuro DLLs.
Mi pregunta es: ¿Por qué funcionó esto? ¿Cómo puede ASLR ayudar con este problema?
Imagen relacionada: test hta file
davy.ai
Solución al error de ejecución de
mshta.exe
Si encuentra un error al ejecutar
mshta.exe
o cualquier archivo.hta
como el mensaje de errorEl sistema no puede ejecutar el programa especificado
, puede intentar las siguientes soluciones:Si ninguna de las soluciones anteriores funciona, puede intentar habilitar el Address Space Layout Randomization (ASLR, por sus siglas en inglés). ASLR es una característica de seguridad en Windows que ayuda a prevenir ataques de desbordamiento de búfer al aleatorizar las direcciones de memoria de un proceso.
Para habilitar ASLR, puede editar el valor del registro
MoveImages
a 1 en la claveHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
.A veces es necesario desactivar ASLR al depurar DLL, pero habilitarlo puede ayudar a resolver problemas al ejecutar archivos
.hta
en algunos casos.