CHANGES 3.8.6 Fri Jul 7 15:54:39 CEST 2006 Thanks to George Danchev for: - License clarification about the rc4 implementation. 3.8.5 Fri Oct 21 13:11:36 CEST 2005 Thanks to Jukka A. Ukkonen for: - Fixed untraceable() problems on FreeBSD. 3.8.4 Tue Oct 4 16:52:15 CEST 2005 Thanks to Ron McOuat for: - Fixed sma11 -d option bug. 3.8.3 Tue Jun 28 21:29:06 CEST 2005 Thanks to Jacek Kalinski for: - Fixed bug: "vfork" fails on multiprocessor systems. 3.8.2 Thu Jun 16 17:15:59 CEST 2005 Thanks to Arjen Visser for: - Fixed bug: "rlax" used after encryption. Thanks to Nalneesh Gaur for: - Read permision of the script.x exposes it to disassembling. - Group and others read permision is now removed by default. 3.8 Thu Nov 4 20:33:52 CET 2004 Fixed incorrect implementation on rc4. Hidden all the binary executable symbols but one. Expiration date and most strings are encrypted too. All the encrypted payload is now randomized. 3.7 Wed Jun 18 16:32:26 CEST 2003 Thanks to Philipp Koller for: - Removed all strings in the compiled script. - Improved program output and error messages. - The -m option allows to define the *complete* expiration message. - Updated manpage shc.1. Thanks to Bryan for: - Fix wrong $0 on ksh. 3.6 Fri Feb 21 09:40:32 CET 2003 Two new options: -D switch on Debug exec calls. -T switch off unTraceable. Bash does not need -- after -c. 3.5 Mon Jan 20 19:08:43 CET 2003 Rewrite of large strings to silence the ISO C89 compiler warnings about strings larger than 509 characters. 3.4 Tue Apr 16 17:43:12 CEST 2002 Remove "bad alignment" problem on AIX and other systems. Where exists, use /proc//as in untraceable. 3.3 Thu Jan 24 21:27:07 CET 2002 Prevent to ptrace the process. 3.2 Tue Mar 9 19:03:54 CET 1999 Find ancient pclose that must be fclose. 3.1 Tue Feb 16 21:36:59 CET 1999 Fixed a misbehavior on scripts with a in-frist-line option equal to "end of options" (i.e. #!/bin/sh -- ) (Thanks to Bernard Blundell ) Stupid GCC "warning: return type of `main' is not `int'" removed. 3.0 Tue Oct 14 14:20:52 MET DST 1997 Added a new option "-r" to force a relaxed security and so make a redistributable binary. Modified expiration day format. Now is dd/mm/yyyy. 3.0b3 Fri Jun 6 22:09:05 WET DST 1997 Yet other few bugs fixed. Output format simplified. -pedantic compilation. 3.0b2 Tue Jun 3 17:51:51 GMT 1997 Some explicit type conversions removed. Fixed the bug "END_OF_FILE" when compiling the generated code. A flush is needed before a pclose. st_blksize and st_blocks struct stat fields does not exist on SCO, both not used now. 3.0b1 Wed Feb 26 14:27:22 WET 1997 The main difference with 2.4 is that in it the script was compressed an then shuffle around, now int 3.0 the script is encripted with an inline code, so not needend any external comand to work, and been faster at startup. Other related adventage is that the only information not encripted in .x.c is an stamp, expiration date and provider email address. Something equivalent to cheksums have been used to enforced at execution that the executing shell has not been modified from the time the script was compiled. If anybody tries to change the excuting shell, .x will refuse to execute. The generated .x.c source code is now readable.