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)
Author: Lindsay.... Lindsay F. Marshall
Date: Mon, 05 Feb 1990 10:20
Date: Mon, 05 Feb 1990 10:20
17 lines
1209 bytes
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)
Author: zma... Diomidis Spinellis
Date: Tue, 06 Feb 1990 14:00
Date: Tue, 06 Feb 1990 14:00
64 lines
2925 bytes
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)
Author: al... Stanier A
Date: Tue, 13 Feb 1990 11:33
Date: Tue, 13 Feb 1990 11:33
35 lines
2776 bytes
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)
Author: l... Larry Rosenstein
Date: Wed, 14 Feb 1990 02:52
Date: Wed, 14 Feb 1990 02:52
21 lines
1406 bytes
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 )
Author: B... Scott Dickson
Date: Wed, 14 Feb 1990 23:11
Date: Wed, 14 Feb 1990 23:11
25 lines
1726 bytes
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
Author: p... Per Lindberg
Date: Wed, 14 Feb 1990 23:37
Date: Wed, 14 Feb 1990 23:37
24 lines
1576 bytes
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