Este equipo de trabajo ha estado por horas investigando para darle solución a tu interrogante, te brindamos la resolución por esto deseamos serte de mucha ayuda.
Solución:
Fondo
Ese mensaje es del encabezado básico que tiene cada ejecutable de Windows (formato PE). El mensaje (y el código que lo muestra) es técnicamente editable, pero todos los compiladores parecen emitir código que muestra lo mismo. string y luego sale. Es un código ejecutable de 16 bits (como un DOS .COM
archivo), destinado a mostrarse cuando intente ejecutar el programa en MS-DOS o sistemas similares anteriores a Windows. El cargador de programas de Windows generalmente lo omite.
Explicación
Sin embargo, hay un caso en el que Windows puede mostrar ese mensaje: cuando intenta ejecutar un PE compilado para una versión más avanzada de Windows que la que está usando, especialmente si el código del programa principal es para una arquitectura de CPU diferente. que el sistema operativo puede soportar. (Esto es similar a, por ejemplo, intentar ejecutar el código Win32 en DOS de 16 bits). Desde una GUI, obtendrá un error emergente, pero en la línea de comando, es posible que solo reciba ese mensaje.
El candidato obvio aquí es que está tratando de ejecutar código en Windows XP (espantosamente obsoleto) y dice que está usando “i686-w64-mingw32-gcc”. Si está compilando archivos binarios de 64 bits para Windows XP, es muy probable que no funcionen; mientras que técnicamente existe una compilación de XP de 64 bits (en realidad es una versión de kernel diferente, 5.2 frente a 5.1 , pero tiene la marca XP), nunca se usó mucho; la gran mayoría de las cajas XP son solo de 32 bits. Si desea una verificación rápida de 32 bits frente a 64 bits desde la línea de comandos, verifique la presencia de un WindowsSysWOW64
directorio (que contiene archivos binarios del sistema de 32 bits en máquinas de 64 bits); si no existe, se está ejecutando en un sistema operativo de 32 bits.
Recomendación
- A menos que A) necesite 64 bits para algo y B) sepa que su objetivo es 64 bits, solo use cargas útiles de 32 bits.
- Asegúrese de que su código y compilador estén dirigidos a XP (Vista y más tarde agregaron un montón de nuevas API que evitarán que un programa que las usa se ejecute en XP).
- Considere activar una máquina virtual XP para probar si sus cargas útiles se ejecutan localmente antes de probarlas en la máquina de destino.
Asegúrese de haber entregado la carga útil correctamente, tuve un problema similar al transferir accesschk.exe a través de ftp. FTP permite la transferencia en modo ASCII y binario, si lo transfiere en modo binario, debería funcionar.
El modo binario transfiere los archivos, bit a bit, tal como están en el servidor FTP. Sin embargo, el modo Ascii descargará el texto directamente. Puede escribir ascii o binario para cambiar entre los tipos.
Para hacer esto, conéctese al servicio ftp y escriba “binary”, debería obtener una respuesta que diga “200 Type set to I”
pon el archivo de nuevo y ejecuta el ejecutable.
valoraciones y reseñas
Si te mola la invitación, tienes el poder dejar una crónica acerca de qué le añadirías a esta crónica.