🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.folklore.computers
6 messages
6 total messages Started by Lindsay.... Lindsay F. Marshall Mon, 05 Feb 1990 10:20
Re: Cryptic comments (was re: non-volatile memory)
#1263
Author: Lindsay.... Lindsay F. Marshall
Date: Mon, 05 Feb 1990 10:20
17 lines
1209 bytes
The program "cyntax" on 8th Edition UNIX had been run through a
wonderful program (which was not distributed!!) that systematically
renamed all the files in a directory as c1.c, c2.c etc. and also the
variable names used in the program which were rewritten with long
words which were, I suspect, chosen at random from /usr/dict/words.
The whole effect was to make the program *completely* unreadable and
unmaintainable.

Lindsay




--
MAIL : Lindsay....@newcastle.ac.uk (UUCP: s/\(.*\)/...!ukc!\1/)
POST : Computing Laboratory, The University, Newcastle upon Tyne, UK NE1 7RU
VOICE: +44-91-222-8267 		FAX: +44-91-222-8232
Re: Cryptic comments (was re: non-volatile memory)
#1264
Author: zma... Diomidis Spinellis
Date: Tue, 06 Feb 1990 14:00
64 lines
2925 bytes
In article <1990Feb5.1...@newcastle.ac.uk> Lindsay....@newcastle.ac.uk (Lindsay F. Marshall) writes:
>The program "cyntax" on 8th Edition UNIX had been run through a
>wonderful program (which was not distributed!!) that systematically
>renamed all the files in a directory as c1.c, c2.c etc. and also the
>variable names used in the program which were rewritten with long
>words which were, I suspect, chosen at random from /usr/dict/words.

The following shell script will substitute all the files 
in a directory given as its first argument with words from
the dictionary, starting with a, AAA, AAAS, AArhus, Aaron,
ABA, Ababa, aback etc.  It is supposed to create a script that 
will reverse this effect in /tmp/r.something.  Due to a bug in
tail -r this script will not be complete for big directories.
USE THIS AT YOUR OWN RISK.

#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	trashdir
# This archive created: Mon Feb  5 20:51:08 1990
export PATH; PATH=/bin:$PATH
echo shar: extracting "'trashdir'" '(383 characters)'
if test -f 'trashdir'
then
	echo shar: will not over-write existing file "'trashdir'"
else
sed 's/^	X//' << \SHAR_EOF > 'trashdir'
	X#!/bin/sh
	XTMP=/tmp
	XDIR=$1
	XFILES=$TMP/f.$$
	XWORDS=$TMP/w.$$
	XCMD=$TMP/c.$$
	XREV=$TMP/r.$$
	Xtrap '' 0 1 2 3 15
	Xfind $DIR -depth -print >$FILES
	Xhead -`wc -l <$FILES|sed 's/[ 	]*//'` /usr/dict/words >$WORDS
	Xpaste $FILES $WORDS |
	Xsed -e '
	X/^\.	/d
	Xs/\(.*\)\/\(.*\)	\(.*\)/mv \1\/\2 \1\/\3/
	X' >$CMD
	Xrm $FILES $WORDS
	Xtail -r $CMD |
	Xsed -e '
	Xs/mv \(.*\) \(.*\)/mv \2 \1/
	X' >$REV
	Xsh <$CMD
	Xrm $CMD
SHAR_EOF
if test 383 -ne "`wc -c < 'trashdir'`"
then
	echo shar: error transmitting "'trashdir'" '(should have been 383 characters)'
fi
fi # end of overwriting check
#	End of shell archive
exit 0
--
Diomidis Spinellis                  Internet:                 d...@cc.ic.ac.uk
Department of Computing             BITNET:                   d...@cc.ic.ac.uk
Imperial College                    UUCP:   ...!cernvax!cc.imperial.ac.uk!dds
London SW7 2BZ                      JANET:                    d...@uk.ac.ic.cc
Re: Cryptic comments (was re: non-volatile memory)
#1265
Author: al... Stanier A
Date: Tue, 13 Feb 1990 11:33
35 lines
2776 bytes
In article <1990Feb5.1...@newcastle.ac.uk> Lindsay....@newcastle.ac.uk (Lindsay F. Marshall) writes:
}The program "cyntax" on 8th Edition UNIX had been run through a
}wonderful program (which was not distributed!!) that systematically
}renamed all the files in a directory as c1.c, c2.c etc. and also the
}variable names used in the program which were rewritten with long
}words which were, I suspect, chosen at random from /usr/dict/words.
}The whole effect was to make the program *completely* unreadable and
}unmaintainable.

  I did something like that to the program I wrote as part of my PhD in
the early 70s. The program occupied 120k (WOW!). During the day, users
could only run programs up to 35k. I went nocturnal for a few months,
but this played havoc with my sex life, so I wrote my own memory
management package (in Pop-2 - which had none of the facilities usually
needed to mangage memory), to run 120k programs in 35k core.
  The package was entertainingly baroque. Subroutine entry set an in-use
flag. I trapped the out-of-core error, and went round a circular list
of routines, overwriting some that weren't flagged as in-use with a small
routine. Then a garbage-collection would recover the old routine code,
and the program limped on until the next out-of-core error. When the
small routine was called, it would re-compile the original routine
from disc, and call it.
  So routines might be compiled many times in a typical run of the
program. To optimize (if one can optimize such a crock) the compilation
time, I wrote a program which took ALL unnecessary characters from my
code, so lexical analysis went as fast as possible. All variables were
replaced by a b c ... etc, and any redundant spaces or newlines were
deleted. The resulting code was a one-line program without comments,
that complied in 70% of the the time the original did.

--
  Alan M Stanier    | My New Year Resolution for 1990: Give up the rigorous
tel +44 206-872153  |    asceticism that has marked my life so far, and
fax +44 206-860585  |       devote myself instead to a life of sloth,
email al...@sx.ac.uk |         gluttony, lust, and riotous hedonism.
Re: Cryptic comments (was re: non-volatile memory)
#1266
Author: l... Larry Rosenstein
Date: Wed, 14 Feb 1990 02:52
21 lines
1406 bytes
In article <1990Feb5.1...@newcastle.ac.uk> Lindsay....@newcastle.ac.uk (Lindsay F. Marshall) writes:
>wonderful program (which was not distributed!!) that systematically
...
>variable names used in the program which were rewritten with long
...
>The whole effect was to make the program *completely* unreadable and
>unmaintainable.

I just saw an advertisement for a product that did the same thing.  It's
called the C Shroud and it's published by Gimpel Software.  

It features a list of "obfuscation features" such as identifier
translation, replacement of if, for, ... by more primitive control
structures, string constants expanded to octal equivalents, and more.


-- 
		 Larry Rosenstein,  Object Specialist
 Apple Computer, Inc.  20525 Mariani Ave, MS 46-B  Cupertino, CA 95014
	    AppleLink:Rosenstein1    domai...@Apple.COM
		UUCP:{sun,voder,nsc,decwrl}!apple!lsr
Cryptic Code (was Re: Cryptic comments )
#1267
Author: B... Scott Dickson
Date: Wed, 14 Feb 1990 23:11
25 lines
1726 bytes
In article <66...@internal.Apple.COM>, l...@Apple.COM (Larry Rosenstein) says:
>
>In article <1990Feb5.1...@newcastle.ac.uk>
>Lindsay....@newcastle.ac.uk (Lindsay F. Marshall) writes:
>>wonderful program (which was not distributed!!) that systematically
>...
>>variable names used in the program which were rewritten with long
>...
>>The whole effect was to make the program *completely* unreadable and
>>unmaintainable.
>
>I just saw an advertisement for a product that did the same thing.  It's
>called the C Shroud and it's published by Gimpel Software.
>

Source code from Precision Visuals for some of their graphics products,
such as DI-3000 for IBM mainframes is pretty unreadable fortran.

They have a filter that removes all comments except for the copyright.
Then all lines are left justified and all blanks removed.
And then, to add insult to injury, all of the variable names are
changed to strings consisting only of the characters I,O,1, and 0.

And this is supposed to be usable source?  It compiles, but it takes
a braver person than I to change it without a lot of studying.
Shrouding and the inverse
#1268
Author: p... Per Lindberg
Date: Wed, 14 Feb 1990 23:37
24 lines
1576 bytes
In article <66...@internal.Apple.COM> l...@Apple.COM (Larry Rosenstein) writes:
>> [...]
>I just saw an advertisement for a product that did the same thing.  It's
>called the C Shroud and it's published by Gimpel Software.  
>
>It features a list of "obfuscation features" such as identifier
>translation, replacement of if, for, ... by more primitive control
>structures, string constants expanded to octal equivalents, and more.

All right, guys! Who writes the first/best un-shrouder? (Nuder?)

- String constant regeneration is a piece of cake.
- Identifier replacement: well, some of us are used to BASIC programs
  where identfiers are named A, B, C... Could be a useful name scheme.
- Control structure translations: a bit harder, requires parsing. Dust
  off your Red Dragon.

As long as there is a list of what the shrouder does, that can be used
against it.

-- 
Per Lindberg (The Mad Programmer)  !      __!__
Front Capital Systems              !  _____(_)_____  How to get high for real
Linneg 5, 11447 Stockholm, Sweden  !     !  !  !
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads