El Manual de BASH Scripting Básico para Principiantes/Compilar (ofuscar) BASH scripts con C - SHC

De Wikilibros, la colección de libros de texto de contenido libre.
← "Bachismos" y compartibilidad con POSIX Compilar (ofuscar) BASH scripts con C - SHC Combinando BASH con otros lenguajes de scripting →
El Manual de BASH Scripting Básico para Principiantes


Privacidad del código BASH[editar]

¿Alguna vez te has fastidiado por que no puedes proteger la intimidad de tu script? No te aflijas, que existe una genial utileria para todos aquellos que desean por alguna razón hacer algo de lo siguiente:

  • Proteger su código de ojos mirones
  • Evitar que alguien edite el script (útil para importantes scripts de sistema que por alguna razón alguien desee modificar de manera enfermiza)
  • Curiosear un poco

Usando SHC[editar]

Al grano; la dichosa utileria se llama SHC y es de la autoria de Francisco Javier Rosales García, un profesor de la Facultad de Informática en la Universidad Politécnica de Madrid.

Esta utileria no es en realidad un compilador, sino un "ofuscador" que encripta el código envolviéndolo en C, esto no hace al script mas rápido pero si sirve para 'ocultar' el codigo; después simplemente lo ejecuta y no es fácil hacer Ing. Inversa para obtener el código, sin embargo es posible.

Puedes descargar la utileria de http://www.datsi.fi.upm.es/~frosal/sources/ compilarla e instalarla tú mismo, algunas distribuciones de Linux la instalan o están dentro de su repositorio.

Breve instalación de SHC[editar]

Se compila con instrucciones genéricas, solo extraes el tarball y en ese directorio ejecutas 'make' y sigues las instrucciones.

O bien, puedes usar el siguiente método:

  #!/bin/bash  
  # SHC Install Script
  
  echo 'Este script necesita permisos de root, asegurate de tenerlos antes de ejecutarlo'
  echo 'Dime el numero de la ultima version de SHC (por ejemplo: 3.8.6). Puedes verificar cual es la ultima version entrando a http://www.datsi.fi.upm.es/~frosal/sources/'
  read shcversion
  startdir=(pwd)
  wget http://www.datsi.fi.upm.es/~frosal/sources/shc-$shcversion.tgz || ! echo 'Error al descargar las fuentes, saliendo...' | exit 2
  tar xfv shc-$shcversion.tgz  || ! echo 'Error al extraer las fuentes del tarball, saliendo...' | exit 3
  make  || ! echo 'Error al compilar, saliendo...' | exit 4
  install -D -s shc /usr/bin/shc  || ! echo 'Error al instalar, saliendo...' | exit 5
  install -D -m 644 shc.1 /usr/man/man1/shc.1  || ! echo 'Error al agregar pagina de man, saliendo...' | exit 6
  echo 'Instalacion exitosa, saliendo' | exit 0