Convertir Shell Scripts a Binarios

17 Mar

Programando algunos scripts para un juego que enseña cómo usar Bash, sucedía que dichos scripts verificaban ciertas condiciones que se debían cumplir para dar una pista al jugador, pero como son scripts de Bash, son archivos de texto que pueden ser leídos por el jugador, si quitábamos los permisos de lectura, entonces el script no se podía ejecutar (recuerdo haber leído algo al respecto, pero hace tanto tiempo que no sabía que se podía programar con los comandos que estaba aprendiendo). Lo primero que se nos vino a la mente fue convertir los scripts en binarios, y dimos con lo siguiente:

deporte-suplementos.es afortu-nados.es comprar anabolizantes roids247.xyz atletico-deporte.es laisladelapureza.es esteroides-anabolicos.co


Lo primero es ir a http://www.datsi.fi.upm.es/~frosal/ que es la página del escritor de la utilidad, y descargar el código fuente, acto seguido compilamos:

null   
wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
tar xf shc-3.8.7.tgz
cd shc-3.8.7/
make

Y listo, tenemos nuestra utilidad compilada, es el archivo binario llamado shc que es el resultado de la compilación; un mensaje nos invita a probar la utilidad con unos scripts de prueba que vienen por defecto, pero nosotros hemos decidido hacer nuestro propio script:

null   
#!/bin/bash
echo -n "Ingrese su nombre: "
read nombre
echo "Gracias por ejecutarme, $nombre"
exit 0

En la dirección http://www.datsi.fi.upm.es/~frosal/sources/shc.html encontramos la página del manual para la utilidad, y un claro ejemplo de cómo usarlo y lo que obtendríamos:

null   
./shc -v -r -T -f script.bash

La opción -v es para desplegar información en la pantalla acerca del proceso. La opción -r permite construir un binario ejecutable en diferentes sistemas con el mismo Sistema Operativo. -T permite que el binario pueda ser trazado con propósitos de debugging a través de herramientas como strace, ptrace, truss, etc. Finalmente, la opción -f siempre es necesaria pues es con la que indicamos el nombre del script.

El comando genera dos nuevos archivos, script.bash.x.c y script.bash.x, el primero es el código fuente y el segundo el ejecutable.

Acerca del autor

Christian Gutierrez ha escrito 22 publicaciones en este blog.

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why. – Anonymous Developer

4 Comentarios a “Convertir Shell Scripts a Binarios”

  1. DaPa 17 marzo, 2011 at 23:11 #

    Bastante útil esta herramienta. Claramente explicado.

    Gracias por compartirlo!

  2. Gabriel 18 marzo, 2011 at 21:01 #

    Interesante!!. Algun día lo usaré.

  3. Sebastián Múnera 2 abril, 2011 at 21:45 #

    Bastante bueno el programita, ojalá hubiera sabido de él antes.

  4. Martin Legaspi 7 agosto, 2015 at 20:01 #

    Muchísimas gracias. Es bastante práctico este script.

Deja un comentario