[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] compilar script de shell?



El mié, 29-08-2007 a las 12:08 -0500, user name escribió:
> Pues eso, como puedo "compilar" o generar un ejecutable a partir de un
> script de shell, esto a fin de que no vean el codigo fuente?

Perdona user name, se me fue al privado. Para todos los demás:

Si que se puede y como (casi) siempre, a un golpe de apt-get :)

apt-get install shc

[inigo][imac]:~ $ cat test.sh
#!/bin/bash

echo "Hola mundo"

[inigo][imac]:~ $ shc -f test.sh
[inigo][imac]:~ $ file test.sh*
test.sh:     Bourne-Again shell script text executable
test.sh.x:   ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
for GNU/Linux 2.4.1, dynamically linked (uses shared libs), for
GNU/Linux 2.4.1, stripped
test.sh.x.c: ASCII C program text

El .sh es el original
El .sh.x un binario (dinámico) que resulta ilegible
El .sh.c es el código fuente resultante en lenguaje C

Tiene más opciones interesantes, como por ejemplo:

 If you supply an expiration date with the -e option the compiled binary
will  refuse to run after the date specified.  The message "Please
contact your provider" will be displayed instead.   This  message  can
be changed with the -m option

  Y otras para poder usar debug, strace, ptrace, etc con el binario
resultante. Y una -r que dice que es para que el binario pueda correr en
una mayor cantidad de sistemas operativos.

El simple "hola mundo" en sh, se convierte en esto:

ELF0�4�4
(44�4����������0((�(���((�(�
 Q�td/lib/ld-linux.so.2GNU
      
               
 nW�q9�U$bY+�"�G��(� �!@��
$���|����z��� ��
�!�|N�g4uV��Ԕ ]       :             4      
__±└⎺┼_⎽├▒⎼├__ ┌␋␉␌.⎽⎺.6 ┬▒␋├⎻␋␍ ⎽├⎼␊⎼⎼⎺⎼ ±␊├␊┼┴ ±␊├⎻␋␍ ⎻␊⎼⎼⎺⎼ └▒┌┌⎺␌
⎻┤├␊┼┴ ␌▒┌┌⎺␌ °⎻⎼␋┼├° ┐␋┌┌ °⎺⎼┐ ⎽⎽␌▒┼° ⎽├⎼␍┤⎻ └␊└⎽␊├ ±␊├⎻⎻␋␍ ⎻├⎼▒␌␊ ├␋└␊
⎽⎻⎼␋┼├° ⎽├␍␊⎼⎼ __␊⎼⎼┼⎺_┌⎺␌▒├␋⎺┼ _IO_⎽├␍␋┼_┤⎽␊␍ _␊│␋├ __┌␋␉␌_⎽├▒⎼├_└▒␋┼
⎺⎻␊┼ ␊│␊␌┴⎻ ␌┌⎺⎽␊ __␊┼┴␋⎼⎺┼ __│⎽├▒├ GLIBC_2.0               
                  û       ð¥   ©  $©   ¦  ¦ ¦
                                        ¦  ¦  ¦  ¦     ¦   $¦
  (¦
  0¦4�8�<�@�D�H�L�P�T�X��`�d�U������<  Éà ÿ5ø¥ÿ%ü¥    ÿ%
¦␤    éàÿÿÿÿ%¦   éÐÿÿÿÿ¦␤   éÀÿÿÿÿ%
                            ¦␤   é°ÿÿÿÿ%¦␤    é ÿÿÿÿ%¦␤(   éÿÿÿÿ
%¦␤0   é€ÿÿÿÿ%¦␤8   é⎻ÿÿÿÿ% ¦␤@   é◆ÿÿÿÿ%$¦␤H   éPÿÿÿÿ%(¦␤P   é@ÿÿÿÿ
%,¦␤X   é0ÿÿÿÿ%0¦␤◆

y multiplica por 253 su tamaño. En la descripción del paquete, dice que
no penaliza la velocidad de ejecución.

Saludos



Reply to: