¿Cómo asegurar un script por lotes con compilador (no compresor) en Windows?

-3

El script por lotes, a.k.a. bat o cmd , es bueno: fácil de aprender, fácil de codificar, fácil de usar, fácil de distrubuir. Sin embargo, permite que los programadores se detengan cuando necesitan lograr algo complejo en un script por lotes. Lo más importante es que encuentra un problema de seguridad cuando contiene información confidencial como el nombre de usuario para iniciar sesión, las contraseñas, los códigos de autenticación e incluso su código fuente.

Hice una pequeña investigación sobre la compilación de secuencias de comandos por lotes y el resultado es el siguiente:

  1. compilador por lotes
    • ¿Se puede compilar? Sí.
    • ¿Puede ejecutarse? No, incluso con Windows 95 de compatibilidad.
    • ¿Cómo compilar? Desconocido debido al problema anterior.
    • ¿Es seguro? Desconocido debido al problema anterior.
  2. compilador de archivos por lotes rápidos
    • ¿Se puede compilar? Sí.
    • ¿Puede ejecutarse? Sí.
    • ¿Cómo compilar? Borland Delphi 6.0 - 7.0
    • ¿Es seguro? No, escribirá un script de lote temporal en %temp% al que se puede acceder directamente.
  3. Conversor de BAT a EXE avanzado
    • ¿Se puede compilar? Sí.
    • ¿Puede ejecutarse? No, incluso con Windows 95 de compatibilidad.
    • ¿Cómo compilar? Desconocido debido al problema anterior.
    • ¿Es seguro? Desconocido debido al problema anterior.
  4. Convertidor Bat to Exe
    • ¿Se puede compilar? Sí.
    • ¿Puede ejecutarse? Sí.
    • ¿Cómo compilar? Microsoft Visual C ++ 6.0
    • ¿Es seguro? No, escribirá un script de lote temporal en %temp% al que se puede acceder directamente.

Conclusión:
Los cuatro compiladores anteriores parecen tener problemas con la compatibilidad y los métodos de compilación. No son fiables y seguros para compilar secuencias de comandos por lotes.

Mejora a realizar:
Mejor: para escribir el script temporal por lotes en RAM en lugar de %temp% .
Aún mejor: convierta el script por lotes al lenguaje de programación de bajo nivel.
Ideal: optimizar LLPL para la compatibilidad de diferentes Windows.

Por último, aquí está mi pregunta:
¿Hay alguna manera de compilar y asegurar un script por lotes que no esté utilizando el método del segundo y del cuarto software de arriba?

¡Gracias!

    
pregunta ll55 14.12.2016 - 21:39
fuente

1 respuesta

2

Compilarlo nunca resolverá los problemas con las contraseñas de texto sin formato o el código fuente con fugas.

Todo puede ser descompilado, sea lo que sea C, .NET, Powershell. Las contraseñas de texto sin formato se pueden revelar sin descompilar.

El problema sería bastante diferente: almacenamiento seguro de credenciales.

Un enfoque sería almacenar las credenciales en el archivo de configuración o en el almacén de credenciales de Windows: de esta manera, las contraseñas y los nombres de usuario no se encuentran en el script por lotes que se ejecuta en varios sistemas, pero utiliza un archivo de configuración diferente en cada sistema.

    
respondido por el Aria 14.12.2016 - 22:25
fuente

Lea otras preguntas en las etiquetas