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: