Aprende a usar el comando shc para compilar scripts

shell bash

Extracto:

El comando shc permite ofuscar los scripts escritos en bash, lo que elimina uno de los grandes inconvenientes a  la hora de difundir nuestros scripts en modo texto: todo el mundo que tenga acceso al script tiene acceso a su código fuente. Shc es fácil de manejar y bastante intuitivo.

@pedroruizhidalg― Cuando creamos un script en bash, uno de sus pricipales inconvenientes es el acceso al código fuente en texto plano.

Descripción

$ shc --help
shc: invalid option -- '-'
shc parse: Unknown option
shc Version 3.8.9b, Generic Script Compiler
shc Copyright (c) 1994-2015 Francisco Rosales <frosal@fi.upm.es>
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script

    -e %s  Expiration date in dd/mm/yyyy format [none]
    -m %s  Message to display upon expiration ["Please contact your provider"]
    -f %s  File name of the script to compile
    -i %s  Inline option for the shell interpreter i.e: -e
    -x %s  eXec command, as a printf format i.e: exec('%s',@ARGV);
    -l %s  Last shell option i.e: --
    -r     Relax security. Make a redistributable binary
    -v     Verbose compilation
    -D     Switch ON debug exec calls [OFF]
    -T     Allow binary to be traceable [no]
    -C     Display license and exit
    -A     Display abstract and exit
    -h     Display help and exit

    Environment variables used:
    Name    Default  Usage
    CC      cc       C compiler command
    CFLAGS     C compiler flags

    Please consult the shc(1) man page.

$

Para muestra, un botón. Este es, así de simple, el help del comando shc con lo que podemos insertar fecha de caducidad al script, esto es especialmente útil cuando tengas que distribuir en tu equipo (hablo de personas) de trabajo un script que por sus características tengan fecha de caducidad, por cualquier causa. Mensaje cuando el archivo esté caducado. Así como otras opciones interesantes que os dejo descubrir a vosotros.

Es interesante saber que está en los repositorios Ubuntu. En la práctica significa que podemos descargarlo así:

$ sudo apt update
$ sudo apt install shc

Y con esto ya lo tenemos listo para ejecutar.

Ejecución

El comando shc generará dos archivos, uno con la extensión .x, que será el ejecutable, y otro .x.c que contendrá el código en c. Con el argumento -f indicamos el nombre del archivo shell a compilar. Me encontré un problema con la línea shebang porque según mi costumbre la escribo llamando a env, para que el suministre la dirección de bash. Lo hago así.

#!/usr/bin/env bash

Sin embargo para compilar hay que cambiarlo a:

#!/bin/bash

La sintaxis es simple, imaginemos que quiero compilar un archivo que se llama “buscar”, sería así.

$ shc -f buscar

Epílogo

Espero y deseo que este artículo haya sido de utilidad. Es muy importante para la continuación de trabajos de calidad recibir algún tipo de feedback por parte de los lectores: es decir, responde con comentarios, evalúa la calidad del trabajo con el sistema de estrellas, comparte con tus redes sociales, da me gusta, marca el blog como favorito. Son pequeños gestos que ayudan a mantener el trabajo de creación.

#aboutpedroruizhidalgo


♻ miotroblogsite ahorra papel
Anuncios

Un comentario

  1. […] seguridad dentro de mi propio equipo. Tengo mi ordenador preparado para ejecutar scripts propios, y también ejecuto el comando shc para poder “compilar” (sí, entre comillas) mis códigos bash, de forma que el código fuente fuente quede ofuscado. Por […]

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: