shc man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

shc(1)									shc(1)

NAME
       shc - Generic shell script compiler

SYNOPSIS
       shc [ -e date ] [ -m addr ] [ -i iopt ] [ -x cmnd ]
       [ -l lopt ] [ -ACDhTv ] -f script

DESCRIPTION
       shc  creates  a stripped binary executable version of the script speci‐
       fied with -f on the command line.

       The binary version will get a .x extension appended and will usually be
       a  bit larger in size than the original ascii code.  Generated C source
       code is saved in a file with the extension .x.c

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

       You  can compile any kind of shell script, but you need to supply valid
       -i, -x and -l options.

       The compiled binary will still be dependent on the shell	 specified  in
       the  first  line	 of the shell code (i.e. #!/bin/sh), thus shc does not
       create completely independent binaries.

       shc itself is not a compiler such as cc, it rather encodes and encrypts
       a  shell	 script	 and generates C source code with the added expiration
       capability. It then uses the system  compiler  to  compile  a  stripped
       binary  which behaves exactly like the original script. Upon execution,
       the compiled binary will decrypt and execute the code with the shell -c
       option.	 Unfortunatelly, it will not give you any speed improvement as
       a real C program would.

       shc's main purpose is to protect your shell scripts  from  modification
       or  inspection.	You  can use it if you wish to distribute your scripts
       but don't want them to be easily readable by other people.

OPTIONS
       The command line options are:

       -e date
	      Expiration date in dd/mm/yyyy format [none]

       -m message
	      message  to  display  upon  expiration  ["Please	contact	  your
	      provider"]

       -f script_name
	      File name of the script to compile

       -i inline_option
	      Inline option for the shell interpreter i.e: -e

       -x comand
	      eXec command, as a printf format i.e: exec(\\'%s\\',@ARGV);

       -l last_option
	      Last shell option i.e: --

       -r     Relax  security. Make a redistributable binary which executes on
	      different systems running the same operating system.

       -v     Verbose compilation

       -D     Switch on debug exec calls

       -T     Allow binary to be traceable (using strace, ptrace, truss, etc.)

       -C     Display license and exit

       -A     Display abstract and exit

       -h     Display help and exit

ENVIRONMENT VARIABLES
       CC     C compiler command [cc]

       CFLAGS C compiler flags [none]

EXAMPLES
       Compile a script which can be run  on  other  systems  with  the	 trace
       option enabled:

	 example% shc -v -r -T -f myscript

BUGS
       The  maximum size of the script that could be executed once compiled is
       limited by the operating	 system	 configuration	parameter  _SC_ARG_MAX
       (see sysconf(2))

AUTHOR
       Francisco Rosales <frosal@fi.upm.es>

REPORT BUGS TO
       the author.

4th Berkeley Distribution	 Jun 18, 2003				shc(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net