home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 18
/
aminetcdnumber181997.iso
/
Aminet
/
comm
/
news
/
DWdecode.lha
/
dwdecode
/
DWdecode.ReadMe
< prev
next >
Wrap
Text File
|
1997-01-02
|
11KB
|
251 lines
################################################################################
# #
# DWDecode #
# #
# Readme File #
# #
# Copyright ©1996 by Dick Whiting #
# #
#------------------------------------------------------------------------------#
# This is the LONG version of the ReadMe. Sorry, if it is not LONG enough. #
# I will happily answer questions via Email and may eventually do a FAQ, if #
# there appears to be a need. #
# #
# Also, make sure you read DWDECODE.DEFAULTS.DOC file for a complete #
# description of all of the options available. #
# #
# Standard Disclaimer: I wrote it, it works for me, I don't guarantee #
# that it will do anything productive for anyone else, etc. etc. ;-) #
# #
# HOWEVER, if you do find a use for it: I homeschool my kids and they would #
# love a postcard from where EVER you live. Instant Geography Lesson;) #
# #
# POSTCARDS: Dick Whiting #
# 28590 S. Beavercreek Rd. #
# Mulino, Oregon 97042 #
# USA #
# #
# #
#------------------------------------------------------------------------------#
# #
# Dick Whiting <dwhiting@europa.com> #
# 01 December 1996 #
# #
################################################################################
REQUIREMENTS:
-------------
You will need several programs/libraries from Aminet:
RexxArpLib by Willy Langeveld - util/rexx/ral3p3.lha
FlashFind by Frank Würkner - util/cli/FlashFind1.2.lha
A UUdecoder
e.g. UUout by Nicolas Dade - util/arc/uuOut114.lha
A Base64 decoder
e.g. Base64coders by Edmund Vermeulen - comm/mail/Base64coders.lha
And, of course, some Use Net files with encoded binaries;)
FILES INCLUDED IN THIS ARCHIVE:
DWdecode - the REAL program.
DWdecode.Base64.Types - means of identifying Base64 first lines
DWdecode.Binary.Types - means of identifying filenames in subject
DWdecode.Defaults.doc - documents ALL options & internal defaults
DWdecode.Encode.Types - MIME encoding types
DWdecode.Prefs - a starter preference file
DWdecode.ReadMe - this file
DWdecode.Section.Types - describes Section lines of UUencoded files
DWdecode.Skip.Froms - allows for filtering based on From: lines
DWdecode.Skip.Subjects - allows for filtering based on Subject: lines
Samples/.... - subdirectory with a few example scripts, etc.
arexxqsort.lha - handles sorting of stem variables.
by Willy Langeveld - originally found on Aminet
BASICS:
-------
This program does MASS decoding of Use Net files. It decodes ALL binaries
that it is able to recognize, which is most;) from the source directory
and optionally from ALL subdirectories as well.
WHAT IT DOES:
-------------
It uses information from MIME content lines, section lines, begin lines
and (if it must) the subject line to determine what kind of encoding is
used and which parts go together. It reports on files that have missing
parts and on ones that it is unable to obtain complete information for.
It handles either single directories or can handle COMPLETE directory trees.
It handles files with SINGLE & MULTIPLE UUencoded OR Base64 binaries
within them and Multipart UUencoded or Base64 files.
It handles files with APPLE/DOUBLE format. My logic uses the LAST file
of a given name within a SINGLE input file. This forces the APPLE portion
to be considered a duplicate and not processed.
It allows you to filenote the decoded binaries with a variety of
substitution values as well as literals.
It is quite 'smart' and generally can figure out most files.
It is highly configurable and using external files can 'learn'.
It should work with almost ANY Base64 and UU decoder.
See WARNING below about pathname removal.
It allows for filtering based on From: and/or Subject: lines.
It allows for deleting input files after decoding, deleting duplicates,
deleting input files based on From: &/or Subject: lines, deleting files
that have ONLY text in them, and deleting files based on their age.
Reporting can be tailored by setting/unsetting a variety of switches on the
command line or in the prefs file.
Probably other things ... but this IS enough.
WARNING!!:
I strip ALL pathing off of encoded filenames prior to envoking the Decoders.
I thought about making this an option, but decided not to. It would be TOO
easy for someone to overlay one of your system files.
For Base64 (using Base64Decode) the stripped filename is created in DEST
directory.
UUout uses WHATEVER it finds on the begin line and I can't override
it. For UUdecoding, assuming you use UUout, specify USEBASENAME as an option.
This will prevent an encoded file of S:Startup-Sequence (for example)
overlaying YOURS! I do not suggest using a decoder that does not have this
option!
LIMITATIONS:
------------
1) If someone REALLY tries to mislead this program; he CAN. I do alot of
matching logic to locate parts xx/yy and associate them with the correct
part 1/yy, but nothing is certain.
EXAMPLE OF HOW TO CONFUSE DWDECODE:
1) Multipart file with part 1 subject totally different from others
2) Multipart file with wrong xx/yy information, or swapped xx/yy
3) BASE64 file that has bad numbers in the subject. SOME people
use 1/2 to mean 'I sent TWO files and here is the FIRST one'. This
WILL show on the error report and you can hand edit the subject.
Just as a minor point, these would be ALMOST impossible to figure out
using your brain instead of a program. You would have to ASSUME too many
things to even have a chance of being able to assemble the parts,
or you could just try all of the combinations until one worked;)
2) Very few error conditions are returned from UUOUT or BASE64, so I am
able to catch very few. Generally I have found that even if I CAN detect
an error, there is really no way to fix it -- generally the input file
is corrupt. The only REAL exception is that UUOUT demands an 'end '
statement and you can go in and add one or fix the existing one (note
that 'end ' should have a blank after the 'd').
3) It DOES NOT handle:
a) Files that include both UUencoded AND Base64 encoded pieces within
the SAME file. (I have NEVER seen one, but you never know ...)
b) MultiPart files that include portions of more than 1 encoded binary.
(I know that wasn't clear, but ...) For example: You encoded 3
pictures and spread them across 6 files with no 1 file containing a
complete piece. Again, I haven't seen this, but ...
c) It will probably have problems with joining files with dozens of
parts because of the length of the command that is constructed.
This has never been a problem for me since I NEVER have gotten ALL
the necessary parts when I needed more than 4;) Actually, I SELDOM
end up with all 3 of a 3/3 file.
HOW TO GET STARTED:
-------------------
Unload the archive to somewhere (make sure the 'S' protection bit is set for
the program - DWdecode to make it easier to envoke)
Get any required programs from Aminet and install according to their
documentation. If you put them ALL in the SAME directory as DWdecode, then
you do not HAVE to modify the prefs file to get started.
Modify DWdecode.prefs to use YOUR decoding programs, etc.
See DWdecode.Defaults.doc for a complete description of all the possible
options, variables, etc. and how to specify them. Also look at the other
included files so that you will know how to add to them if necessary.
Run from a CLI or directory utility specifying a source directory and a
destination directory.
IF YOU INSTALL DIFFERENT PROGRAMS or LOCATE THEM ELSEWHERE:
change these in YOUR prefs file as necessary (these are MY values):
Base64cmd='AmiTCP:bin/Base64Decode %sf %df USEMINLEN > nil:'
B64cmdFail=20 #Return Code of 'DISK FULL' for Base64Decode
ScanProg='Utils:FlashFind'
UUcmd='AmiTCP:bin/UUout %sf BUFSIZE=150 IGNORETERMINATION USEBASENAME > nil:'
UUcmdFail=10 #Return Code of 'DISK FULL' for UUOUT
MISCELLANEOUS NOTES:
--------------------
I filenote all of the files in the SOURCE= directory(s). The filenote is in
the following format:
xyy SUBJET-LINE-FOUND-IN-THIS-FILE
where x='S' means the file was skipped due to a match on SKIPSUBJECT
x='F' means the file was skipped due to a match on SKIPFROM
x='O' means the file is older than the value for KEEPDAYS
x=' ' for all others.
where yy=' ' for text files
yy='UU' for UU encoded files
yy='64' for Base64 encoded files
This makes it fairly easy to check if files have been properly identified. I
suggest using Dopus (or another), sorting the files by comment and examining
them. This makes it easy to ensure that all 'text' files are really text. I
look for high byte counts and then check them. Usually I find that someone
has quoted the first 400 lines of an encoded file;) Doing this also makes it
easy to look at the subject lines and see if parts were properly put
together.
Needless to say, if you specify some of the DELETExxxx options, there will
be nothing to examine;)
BUGS:
-----
As of the date of uploading this program, I have stopped being able to break
it. This does not mean it is bug free. If you find any, please email me so
that I can correct it for others. Also, when you find NEW Section lines or
MIME encoding types, I would appreciate you emailing them on to me and I
will add them to future updates, changes, etc.
Thanks.
Dick Whiting
December 31, 1996