▄ ▄ ▄▄▄ ▄▄▄ ▄ ▄ ▄▄▄ ▄▄▄ ▄ ▄
█ █ █▄█ █ █▄█ █▄ █ █▄▀ The Premium Upload Scanner
█▄█ █ █▄▄ █ █ █▄▄ █▄▄ █ █ Version 6.00
Copyrighted Pete Rocca & Multiboard Communications Centre, 1994-1995
All rights reserved
TABLE OF CONTENTS
═════════════════
Section Line
─────────────────────────────────────────────────────
FORWARD ········································ 60
What is it? ································· 60
Quick note ··································· 70
Overview ····································· 82
CONFIGURATION ·································· 122
System Information ··························· 140
Files Configuration ························· 170
Limits Setup ································· 267
Control Setup ······························· 332
Important Programs ··························· 475
Extended Options ····························· 509
Modify Statistics ···························· 692
Test Configuration ··························· 715
RUNNING ········································ 727
Command line parameters ····················· 752
Running under RemoteAccess 2.x ··············· 793
Running under TriBBS 5.0 ····················· 849
Running under SuperBBS 1.17+ ················· 884
Running under PCBoard ························ 902
Running under other BBS software ············· 959
The log file ································· 971
UTILITIES ······································ 1024
Command line parameters ····················· 1037
Sample batch files for automated tools ······· 1139
Advanced user tools ························· 1180
INFORMATION ···································· 1199
Scanning in text for descriptions ············ 1199
Running with TBAV ···························· 1237
Running with McAfee Scan Version 2.0 ········· 1272
License and disclaimer ······················· 1290
Registration ································· 1328
Support ····································· 1362
Common questions and answers ················· 1392
Errors ······································· 1463
Acknowledgments ······························ 1547
╓───────────────────────────────────────────────────────────────────────────╖
║ What is it? ║
╙───────────────────────────────────────────────────────────────────────────╜
A premium upload scanner, description handler and true duplicate CRC
detection built in. Also can write a message to the user, explaining
why the file failed, and/or to the Sysop with a warning or message
receipt. Fast and easy to use!
╓───────────────────────────────────────────────────────────────────────────╖
║ Quick Note ║
╙───────────────────────────────────────────────────────────────────────────╜
Although the docs aren't the shortest ones, I suggest you at least
skim through them in order to get your system set up correctly... If
you are confident that you can set up the program and you are really
impatient, then at least read the QUICK.DOC file for a quick guide.
Also, you can use the F1 key in UpSetup for online help. Remember
that 90% of all errors are caused by not reading the documentation.
╓───────────────────────────────────────────────────────────────────────────╖
║ Overview ║
╙───────────────────────────────────────────────────────────────────────────╜
UpCheck and it's companion utilities are more than any Sysop could
require in an upload file processing system...
UpCheck is a small and quick program that is capable of scanning an
upload for file integrity, duplications, as well as being able to
remove unwanted files, add files and then recompress the archive in
maximum compression mode.
You also have the ability to quickly insert the FILE_ID.DIZ,DESC.SDI
or DESC.SDN description into the file base description. If the file
does not contain a description, you can search text files, capture
logs and even other BBS lists for a matching description to insert.
If you are using a BBS package that supports the Hudson, JAM, or the
TriBBS 5.0 message base structures, then you can set UpCheck to send
a message to the user if a file should fail, as well as the option
to send yourself a receipt of the failure.
If you are using RemoteAccess 2.x, then you can also send online
messages to the user to detail why a file failed while they're still
online the system.
UpCheck comes with a program called UpUtils. This program can
perform such database features as creating duplicate file signatures
from your existing collection of files, insert the descriptions of
files into your file database, quickly comment all of your ZIP files
in your current hard drive collection, in order to bring them all up
to date. UpUtils can also set and return errorlevels depending on
the type of archive is being processed.
...in short, UpCheck does what all upload scanners do, and then adds
features not found in any other scanners. It combines many features
that are found in numerous other third party applications - all into
one extremely inexpensive and powerful package.
╓───────────────────────────────────────────────────────────────────────────╖
║ UpSetup - Configuration program ║
╙───────────────────────────────────────────────────────────────────────────╜
UpCheck is very easy to install.
1) First, unpack the contents of the archive into a directory
2) Run the UPSETUP program
Remember that the UPCHECK.CFG file that is created by UpSetup should
always be in the same directory as the *.EXE files. Also, the file
UPCHECK.PAC must also be in the same directory as these above files.
The database files that you setup in UPSETUP do not need to be in
any particular directory, but to keep things simple you may want to
specify that they be created in the same directory.
System Information
──────────────────────────────────────────────────────────────────
═══ System name
Here you enter your BBS name. Make sure that
if you are registered, that this is appears
EXACTLY the way shown in your key file. It's
case sensitive.
═══ Sysop name
Here you enter your name. It is also case
sensitive to your registration number.
═══ Serial number
Here you enter your serial number.
═══ Registration number
Here you enter your registration number,
when you receive your key.
Files Configuration
──────────────────────────────────────────────────────────────────
These files below can contain certain "metastrings".
You can put *N, *P or *B and the metastring will be
replaced with the current node number, com port or
baud rate. (respectively)
═══ Duplicate database
This is the file that contains all of the
file signatures that are required for
duplicate file detection. You should never
attempt to edit or alter this file.
═══ Badfiles database
This is the text file that contains the
names of all the files you want removed from
the uploaded file. For example the BBS
advertising files from other systems. You
can edit this file with any standard text
editor. Be sure that each file is on it's
own line and does not contain wildcards.(*?)
═══ Statistics file
This file contains a record of the number of
passing archives, failed archives and total
bytes read and written. To reset the totals
you can simply delete this file, or use the
'Modify Statistics' menu option in UpSetup.
═══ Log file
This file is written to every time a file is
uploaded. It contains a list of the person
who uploaded the file, the file name and the
status of the file.
═══ Advertising file
This is the file that you want copied into a
passing archive. Example - an advertisement
or such. If you do not wish a file added,
simply leave this field blank.
═══ Copy to {+}
This is the name that you want your added
file to be called in the archive. An example
would be that you wanted the file copied
from "C:\BBS\TEXT\BBS.AD" into the archive
and call it "CALLHERE.TXT". If the program
is unregistered, it will use the filename of
"CALLME.BBS" only.
═══ Comment file
This is the name of the file that you want
as your ZIP file comment, if you do not want
ZIP file commenting, then either leave this
blank or turn it off in the Control Menu.
═══ Description files
A great feature was added in version 5.30 of
UpUtils. This is the ability to search
standard text files for descriptions in case
the file does not have a FILE_ID.DIZ, or any
other self-description type files within it.
If the "/Y /I" parameters of UpUtils are on,
then it will scan these text files for a
description that matches the filename and
then insert it into the file database. This
is great for downloading files from other
systems, as you can insert descriptions from
capture logs, FILE_ID.1 type descriptions or
another BBS's filelist. Line noise and most
other nonsense is filtered out. Please note
that although this WILL save you much time
and effort, occasionally you may get a wrong
description. The reason for this is that
there might be a file called STAR.ZIP on one
system, that is a completely different file
than a STAR.ZIP on another system.
The file names entered in these five slots
will be the textfiles that UpUtils looks in
to search for a matching description. For
more information read the "Searching in text
for descriptions" section.
═══ UpUtils work drive
This is just the drive that should be used
when running UpUtils. This is needed for the
reason that when processing CDROMs, it's not
possible to create work space in the current
directory.
Limits Setup
──────────────────────────────────────────────────────────────────
═══ Maximum age of files in days
This is the maximum number of days old that
a file within an archive can be before being
considered too old.
═══ Maximum percent of old files
This is the percentage of files that can be
old and the archive still pass.
═══ Maximum percent of duplicate files
This is the percentage of files that can be
duplicates before the whole archive gets
failed. This is good at about 80% usually
as it allows room for advertising files that
you may not have marked in your bad files
file, and the next feature will usually do
the better test.
═══ Maximum percent of duplicate bytes
This is the percentage of bytes that can be
duplicate before the whole archive gets the
fail flag. This is good at a value around
25%. This is different over the other one
as it work like this...
JUNKY!.BBS 1000 bytes - dupe junk file
README.HA 1000 bytes - dupe junk file
MISSED.IT 1000 bytes - dupe junk file
VALUED.EXE 70000 bytes - real program
If this had been the contents of the archive
the percentage of files duped would have
been 75%, but the duped bytes only about 5%.
Has you can see, that with good setting for
both files and bytes, you can be sure that
rarely will you get a duplicate file passed,
nor fail an original one.
═══ Minimum size to record
Any files smaller that this size are not to
be included in any of the checks or the data
base of signatures. If this value is 1000,
then any files that smaller than 1000 bytes
will be skipped during processing. This is
used for people who have a large file system
and would rather save the space and time of
a smaller duplicate database then to concern
themselves with watching for small duplicate
files. This can also be set to a value near
2000 if you find that a lot of BBS ads get
passed you, and you don't want them to
effect the users chances of failing uploads.
In other words, play with this number as you
see fit. Leaving it at '0' has the same
effect as versions of UpCheck prior to 5.00
Control Setup
──────────────────────────────────────────────────────────────────
═══ Allow RIP emulation
When set to yes, UpCheck will auto-detect if
a user has RIP capabilities and display RIP
graphics to them.
═══ Scan embedded
When set to yes, UpCheck will extract the
embedded archives found within and process
them with date, duplicate and virus scanning
for each level found.
═══ Unsupported file types
When set to allow, any files that cannot be
determined as being an ARC/ARJ/LHA/LZH/PAK/
ZOO/ZIP/UC2/SQZ/GIF/JPG/SFX type file will
be passed, otherwise if set to fail, will be
failed. If set to GUS, then the GUS command
line will be executed to expand them.
═══ Recompression type
When this is not set to "Same", UpCheck will
recompress the file into this new type.
═══ Repack same type archives
If the file being processed is the same type
of archive as your 'recompression type' then
you can avoid it being repacked by selecting
"no" here. However, BBS advertisements will
not be removed if the file is not repacked.
═══ Recompress SFX files
When this is set to "Yes", UpCheck will then
repack the SFX file to the above mentioned
type.
═══ Allow unknown EXE types
When this is set to "No", UpCheck will then
consider an EXE which is not a SFX file to
be unsupported.
═══ Keep original name
When set to yes, UpCheck will not rename the
archive with the proper extension if the
original one is invalid (Example: a ZIP file
with the extension ZZZ would not be renamed
back to ZIP) Obviously this cannot be "yes"
when "Recompression Type" is not "Same" and
the UpSetup program will correct this.
═══ Define bad extensions {+}
Here you can specify extensions that you do
not want to be able to be uploaded. If a
file uploaded consists of nothing but these
types of files the archive will be failed,
however if a file contains a fair amount of
these files, it will be passed, but you can
specify in the "Extended Options" to warn
you of such a file. For example, if you
didn't want graphics files to be able to be
credited, you could set the extensions to
BMP/RLE/GIF/PCX/JPG/PIC and even if a user
uploaded these files archived, it would
detect them and take action accordingly.
═══ Swapping method
Here you can specify what type of media and
which order you want to use for swapping to
when loading external programs. This is to
increase the amount of conventional memory
that will be available to the virus scanner
and the archivers. XMS/EMS and your HDD are
all valid media types. If swapping to disk,
UpCheck will look for a TMP or TEMP enviro-
ment variable and use that path for its swap
file, otherwise the current path will be
used. Remember that your mode should always
include HDD (disk) support in case of a lack
of EMS/XMS available at the current time of
scanning.
═══ Insert ZIP file comment
If you choose, UpCheck will insert a file
comment into the headers of all processed
ZIP files.
═══ Minimum graphics resolution {+}
You can specify the minimum resolution that
an uploaded graphic can be. If the GIF/JPG
is not within the specified range, it will
fail.
═══ Maximum graphics resolution {+}
This is the same as above, but the maximum
resolution that will be excepted.
═══ Security to force pass {+}
If this is not set to zero (Off), then any
user who has this security level or higher
will always get credited for the file. If
for instance, your co-sysop and registered
users upload you something, even if it
fails the test, it will say "Thank you for
the upload" and let the BBS give them the
credit. If you specify, UpCheck will send
you a message, informing you of the fail.
═══ Flag to force pass {+}
This is similar to the security to force a
pass, but it uses the user's flag settings
instead. Remember that the only supported
drop file that supports the flag settings
is the RemoteAccess 2.x EXITINFO.BBS file.
═══ Minimum baud for ANSI
If you feel that the display of UpCheck is
too slow at low speeds, you can specify the
lowest possible baud rate that can get the
ANSI display. If you put 2401 here, only
users that are calling at speeds greater
than 2400 baud will be able to get the ANSI
screen, otherwise they'll get the ASCII
display. This is only effected if the user
is using ANSI emulation.
Important Programs
──────────────────────────────────────────────────────────────────
═══ Decompression (Option 1)
Options A through L are the full file names
and parameters to be executed for the
decompression of the related file type. To
disable any of these programs,specify "OFF"
(without the quotes) to do so. If a file is
in your path, then you do not need to enter
the path of the file, if you do not wish.
═══ Recompression (Option 2)
Options A through L are the full file names
and parameters to be executed for the
recompression of the related file type. To
disable any of these programs,specify "OFF"
(without the quotes) to do so. If a file is
in your path, then you do not need to enter
the path of the file, if you do not wish.
═══ Scanning (Option 3)
This is the full path and file name as well
as the parameters for your scanning program
If you specify "OFF" without the quotes and
in uppercase, UpCheck will bypass the virus
scanning. Again, if the file is in the
system path, you may omit the path from the
scanning program here.
Extended Options
──────────────────────────────────────────────────────────────────
═══ File base format
This is the type of file base that you wish
to use for inserting descriptions.
═══ Update file base
If you don't want UpCheck to write the files
information and description to the database
then select No.
═══ Configuration path (RemoteAccess 2.x)
This is the path to your FILES.RA or other
file configuration file. This is required to
locate the correct file database area to use
for the file being processed.
═══ File base path (RemoteAccess 2.x)
This is the path that points to the filebase
subdirectories. For example, this is usually
set to "C:\RA\FDB\" as the "TXT", "HDR" and
"IDX" subdirectories are usually in this
path.
═══ Use matchup file (non-RemoteAccess 2.x)
When specified to Yes, the programs will use
the textfile defined in "Matchup file name"
to locate the correct file listing to update
when inserting descriptions.
═══ Matchup file name (non-RemoteAccess 2.x)
This file is the file that is searched when
figuring what file listing to update. Below
is an example of the format that this file
is required to be in.
(Directory Comma Filelist)
C:\bbs\upload, C:\bbs\upload\files.bbs
C:\bbs\doors, C:\bbs\doors\files.bbs
.
. etc etc etc
.
E:\059a, C:\bbs\cdrom\cdlist.059
E:\060a, C:\bbs\cdrom\cdlist.060
In this example, if you were processing a
file in the directory "C:\BBS\UPLOADS", the
programs would update the file list called
"C:\BBS\UPLOADS\FILES.BBS" Each area that
might be processed should be in this list.
If UpCheck/UpUtils cannot match the file in
this list, it will NOT update any file lists
anywhere.
═══ Create file list
If you do not have any CDROM areas, and each
your file lists is in the same directory as
its listed files, you can place the name of
the file here. For example, if your BBS is
using the FILES.BBS method, and this file is
in each of your file directories, then put
"FILES.BBS" here. It will then search the
same directory as the archive that is being
processed and use that file list.
For example, if you picked FILES.BBS as your
create file list name, then processing the
file called C:\BBS\GAMES\GOODGAME.ZIP would
then update the file list that was called
C:\BBS\GAMES\FILES.BBS
Remember that to get the "Create file list"
option, you must have selected "No" to "Use
matchup file"
═══ Add uploader name
This when set to "Yes" will append the users
name to the file description in the file
database.
═══ Add archive info
This when set to Yes will put the number of
files within the archive and the range of
dates in the archive into the file database
description.
═══ Add graphics info
This when set to Yes will put the dimension
info from GIF and JPG files into the file
database description.
═══ Message format
This is the format of the message that you
want created. UpCheck supports Hudson, JAM
and TriBBS 5.0 message base structures.
═══ Message base path
This is the full path to your message base.
If you are using Hudson, then this should be
the path to the "MSGTXT.BBS", "MSGTOIDX.BBS"
"MSGIDX.BBS" and "MSGHDR.BBS" files, which
is normally "C:\RA\MSGBASE\". If using JAM
then it is the path to the JAM message files
(do not include the message area name). If
you are using TriBBS 5.0, it should be the
path to your MCONF.DAT file.
═══ Message board
This is the message board that the message
should be posted to. When using Hudson or
TriBBS this should be a number in the range
of 1-200. If using JAM, this should be the
name of the JAM area. (For example, if your
JAM area was "C:\RA\JAM\SYSOP" then "SYSOP"
is the board name and "C:\RA\JAM\" is your
path to the message base.
═══ User notify-fail {+}
This when set to Yes will generate a message
to the user if an upload failed. The message
will explain the reason for the failure.
═══ User notify-online {+}
This when set to other than "No" will send
the user an online message to the user that
explains why the file failed. If you are
using a semaphore directory for your online
messages, you can set an enviroment variable
"RASEM" to point to that directory..
For example: SET RASEM=E:\
Would cause the NODE.RA files to go into E:\
rather than the main RA directory.
═══ Sysop notify-fail {+}
This when set to Yes will generate a message
to the sysop, saying what file failed, why
and who uploaded it.
═══ Sysop notify-warn {+}
This when set to Yes will generate a message
to the sysop if a file triggers a warning
but still passes. Examples would be a file
that contains a great number of restricted
extensions, or if it was of an unsupported
type.
═══ Personal reply
This when set to Yes will use the Sysop/User
names for the sender name in messages rather
of "UpCheck 6.00+". This allows for ease of
making a reply that gets directed to the
correct person.
═══ Holding message
This should be set to Yes if you want the
message to include a statement along the
lines of: "The file is being held for Sysop
Review"
Modify Statistics
──────────────────────────────────────────────────────────────────
═══ Options A through G
You can change the current values of any of
the listed statistics. This section never
requires any changing, but however if for
some reason you need to change any of these
values, it is possible through this menu.
For example, maybe the virus scanner wasn't
setup properly and UpCheck recorded a bunch
of files to have virus infections. Maybe you
wouldn't want those effecting your stats and
change them here manually.
═══ Write the new statistics to disk
To reduce the chances of you accidentally
changing these values, they will not be
written to disk, unless select this.
Test Configuration
──────────────────────────────────────────────────────────────────
You can test your current configuration with this
option. It will check to see if all the files you
have defined either exist, or can be created if need
be. It also tests to make sure that it can call all
of the external programs needed. It also will check
to see if the file base settings, and message base
configurations are correct.
╓───────────────────────────────────────────────────────────────────────────╖
║ UpCheck - Upload scanning program ║
╙───────────────────────────────────────────────────────────────────────────╜
UpCheck, the executable itself, is the actual scanning program for
when a user uploads a file. It is run from your bulletin board in
a numerous number of ways. If the following setups do not work for
your system, I would suggest that you consult your BBS software
documentation for info on installation of an upload scanner.
Two things to keep in mind before running UpCheck. First, UpCheck
requires a fossil driver to display it's screens over the modem. If
you are using one already then you're set, othwerwise my suggestion
would be to try BNU or X00, which are two very good fossil drivers)
The second thing you should remember is that due to the memory hog-
ging programs this program must execute, you should have about 450k
conventional memory free to run this program. (The actual overhead
of the program is only around 5k when swapped out, but most scanners
eat up a lot of memory (sometimes almost 450k) This program will run
with the McAfee Scanner 9.21 V113 in 450k of memory without problem.
Running UpCheck 6.00
──────────────────────────────────────────────────────────────────
═══ Command line parameters
The program takes from one to three command
line parameters:
UPCHECK <filename>
UPCHECK [dropfile] <filename>
UPCHECK [dropfile] <filename> [node]
[dropfile] ... Optional
The path and name of the dropfile. Such
files are EXITINFO.BBS, DORINFO1.DEF and
DOOR.SYS. For example, if your dropfile
was located in C:\BBS then you would put
C:\BBS\DOOR.SYS for your parameter. If
for any reason the dropfile cannot be
located, UpCheck will simply run locally
without sending any output to the modem.
<filename> ... Required
The path and name of the uploaded file.
If you wanted to scan a file called
"GAME.ZIP" that was in your "C:\UPLOADS"
directory, you would put the parameter
"C:\UPLOADS\GAME.ZIP". Note that this
cannot contain wildcards (*,?)
[node] ... Optional
This is used to specify the current node
number that the user is using. If you
are using the DOOR.SYS dropfile, then
the users node number is already known,
otherwise you can specify it here. The
node number is only used when reporting
activity to the log file, and is not at
all important to the operation of the
program.
═══ Running under RemoteAccess 2.x
When running under RemoteAccess, the line
that you should enter in the...
Options -> Files -> Upload scan
...field should look something like this:
C:\UPCHECK\UPCHECK.EXE \RA\EXITINFO.BBS @ *N *M
Or if you are running a multinode system:
C:\UPCHECK\UPCHECK.EXE \RA\NODE*N\EXITINFO.BBS @ *N *M
Recall from your RemoteAccess documentation
that the *N is replaced with the node # and
the @ is replaced with the path/name of the
uploaded file, and that the *M means to use
the MemorySwap function of RemoteAccess.
Here's an example below...
═══════════════════════════════════════════════════════════════════════════
Scan online Yes
Failed scan /move to 58
Scan utility \RA\DOORS\UPCHECK\UPCHECK.EXE EXITINFO.BBS @ *N *M
═══════════════════════════════════════════════════════════════════════════
UpCheck doesn't care about the Failed Scan
action, as RemoteAccess will handle it when
it gets the Pass or Fail sign from UpCheck.
You might however, want to either delete it
or move it to another directory, as other-
wise it will still be available for users
to download.
UpCheck doesn't care about the Scan Online
either. If the dropfile is missing, it will
assume that there is no user online and
will surpress any output to the modem. Note
though, that if a dropfile cannot be found,
UpCheck can't figure out who is uploading
the file, therefore will not send mail to
anyone should a file fail.
Also remember to turn on upload scanning in
the area(s) that you permit uploads.
You might also want to change the language
prompt # 637 from "Failed Virus Scan" to
"Failed" as there are many reasons a file
can fail.
═══ Running under TriBBS 5.0
When running under TriBBS, turn the "Scan
Uploads" to "NO" in the setup. TriBBS looks
for a file called "UPLOAD.BAT" file in its
node directory, and runs it if it exists.
Therefore you should place a file called
"UPLOAD.BAT" that looks similar to this, in
_EACH_ of your node directories.
--- UPLOAD.BAT
@echo off
c:\upcheck\UPCHECK.EXE c:\tribbs\dorinfo1.def %1
if errorlevel 1 goto :fail
goto :end
:fail
rem *** actions to take on failed file ***
move %1 c:\badfiles
c:\upcheck\UPUTILS.EXE /E 1
:end
( Of course change the paths mentioned )
( here to paths that reflect your setup )
If you are running more than one node, then
copy the UPLOAD.BAT to each node directory,
and change the reference from node 1 to the
other nodes, for example: c:\tribbs to show
as c:\tribbs2, etc.
It seems that some TriBBS users have had a
problem when using the DOOR.SYS dropfile
when scanning, therefore I would suggest
using the DORINFOx.DEF file instead.
═══ Running under SuperBBS 1.17+
When running under SuperBBS, you should set
the CONFIG.EXE ══ Paths ══ Virus Scanner
to look something like this:
C:\UTIL\UPCHECK.EXE C:\SBBS\DORINFO1.DEF %1
( Where %1 is the drive\path\filename.ext )
Also CONFIG.EXE ══ Paths ══ Virus Check,
should be set to "Yes". If you require or
have a more complex setup, you can either
edit your BBS.BAT file, or call a batch
file for scanning, instead the actual EXE
file. Remember that UpUtils can be utilized
to change and report errorlevels as needed.
═══ Running under PCBoard
Running under PCBoard is a little different
then for most systems. You will need a
batch file that looks something like this:
---PCBTEST.BAT
@echo off
if not %2 == UPLOAD goto :not_upload
δ TYPE %3 >> c:\pcb\main\public
DEL %3
IF exists pcbfail.txt DEL pcbfail.txt
c:\upcheck\UPCHECK.EXE door.sys %1
IF errorlevel 1 ECHO. > pcbfail.txt
goto :end
REM --------------------------------------------
REM This is the part for non-upload testing...
REM Used from the original PCBTEST.BAT
REM --------------------------------------------
:not_upload
testfile %1 arc zip
if errorlevel == 98 goto end
if errorlevel == 2 goto zip
if errorlevel == 1 goto arc
goto end
:zip
echo ■ Testing ZIP file integrity
pkunzip -t %1 > pcbfail.txt
if errorlevel == 1 goto end
del pcbfail.txt
goto end
:arc
echo ■ Testing ARC file integrity
pkxarc -t %1 > pcbfail.txt
if errorlevel == 1 goto end
del pcbfail.txt
goto end
:end
δ In the above example the c:\pcb\mail\public
is the name of your upload directory.
Also, the file base format should be set to
"Custom text format" with the settings:
End size location = 21
Start date location = 24
Start description location = 34
Filler character = |
Filler location = 32
═══ Running under other BBS software
UpCheck can run under practically any type
of BBS software with few modifications or
troubles. The key things to remember are
that you should turn on the Upload Scanning
feature of your software, and for the file
name of the Upload Scanning Program, just
insert UPCHECK.EXE with the appropriate
parameters mentioned above.
╓───────────────────────────────────────────────────────────────────────────╖
║ UpCheck - The log file ║
╙───────────────────────────────────────────────────────────────────────────╜
The log file contains information about who uploaded what, and what
happened to the file. It has four possible entry types...
1) User: This is the user's name
2) File: This is the file that was processed
3) Code: This is a code to explain an error if one occurred
4) Stat: This is the status of the file
Below is a table that gives a reference to many of the possible
values that "Code" may return.
═════╤════════════════════════════════════════════════════════
Code │ Section = Program return codes
═════╪════════════════════════════════════════════════════════
0-x │ Every program has its own return code setup, consult
│ its documentation regarding the (x) return code
═════╤════════════════════════════════════════════════════════
Code │ Section = Swapping routines
═════╪════════════════════════════════════════════════════════
1-1 │ No space for swapping
1-2 │ Program is too low in memory
4-0 │ Error allocating environment
5-0 │ Error calling swap
5-1 │ Could not return from swap
5-2 │ Could not swap out
6-x │ Error caused during redirection
═════╤════════════════════════════════════════════════════════
Code │ Section = Program being called
═════╪════════════════════════════════════════════════════════
2-0 │ Not found
2-1 │ Invalid drive
2-2 │ Invalid path
2-3 │ Invalid name
2-4 │ Invalid drive letter
2-5 │ Path too long
2-6 │ Drive not ready
═════╤════════════════════════════════════════════════════════
Code │ Section = Dos error codes
═════╪════════════════════════════════════════════════════════
3-2 │ File not found
3-3 │ Path not found
3-5 │ Access denied
3-6 │ Invalid handle
3-8 │ Not enough memory
╓───────────────────────────────────────────────────────────────────────────╖
║ UpUtils - System Utilities ║
╙───────────────────────────────────────────────────────────────────────────╜
UpUtils is a supplementary program that is designed to simplify the
job of creating duplicate databases and making sure that all the
file descriptions are correct, as well as add support for third
party utilities. Wildcards are valid for UpUtils.
Running UpUtils
──────────────────────────────────────────────────────────────────
═══ Command line parameters
/A = Add the files signature into the bad
files listing. This is good for files
that stay the same except their name,
like randomly named BBS ads.
/I = Enable the insertion of descriptions
that are included inside some of the
files. This allows you to quickly
put your descriptions into the data
base.
/Y = Yank descriptions from text files.
This switch will extract descriptions
from other BBS lists, captured logs,
FILES.1 type files, in just about any
format. If the file does not contain
a FILE_ID.DIZ, DESC.SDI or DESC.SDN,
then UpUtils will attempt to locate
the file in the 'Description Files',
that are set in UpSetup. If found, it
will extract the description from the
text files and insert it into the FDB
The "/I" switch must be on for the
"/Y" switch to operate.
/D = Enable duplicate checking & building.
This allows you to build a dupe list
of all your files that are presently
on your system.
/K = Kill duplicate files. This switch
will cause all the files that are
checked and duplicates to be deleted.
**USE THIS WITH EXTREME CAUTION** You
could lose all your files if you do
not use this one properly. The "/D"
switch must be on for the "/K" switch
to operate.
/P = This is the same as the /K switch but
will prompt you for a decision before
deleting the file. The "/D" switch
must be on for the "/P" to operate.
/S = Scan subdirectories. This switch is
useful when doing all your files as
it allows the program to search the
specified directory and all of its
lower subdirectories also.
/Q = Query the database. This switch will
return the current statistics of the
database holding the information on
number of files processed, failed and
passed, etc.
/C = Comment ZIP files. This switch will
comment the ZIP files it comes in
contact with, with the ZIP comment
file as specified in UpSetup.
/Z = Purge the duplicate files database.
This command will remove signatures
of files that are smaller than the
'minimum size to store' setting. The
benefits of a smaller database is
mainly speed while checking for any
duplicate files. The drawback is the
chance of smaller files passing the
dupe check when they are duplicates.
(*This command will rarely be used*)
/E = Returns an errorlevel as specified.
This is only good when creating an
advanced batch file setup. Refer to
the next section for more info.
/R = Returns an errorlevel associated to
the type of file processed. Again,
this is for the advanced batch file
setups.
The UpUtils program also requires a file
specification for files to process. Wild
cards are valid. For example, if you want
to process all ZIP files, you would put
"*.ZIP" for your file specification.
Although UpCheck will handle multi-level
embedded archives, UpUtils only will seek
into the original archive. The reason for
this, is that any other way would make the
building of your database too incredibly
time consuming, and that the first level
is usually more then enough for testing.
If you require each file to be processed
fully, use UpCheck in local mode instead
of UpUtils.
Sample batch files for automated tools
──────────────────────────────────────────────────────────────────
═══ Batch Files
Download a lot of files but hate uploading
them locally or running UpCheck in local
mode? Well with UpUtils, you can use a
batch file like this...
@echo off
MOVE \downloads\*.* \bbs\uploads
UPUTILS /i /d /c \bbs\uploads\*.*
It's a fast way to add the signatures to
the duplicate base, comment your ZIP files
and insert the FILE_ID.DIZ.
If you need to perform full scanning, and
to add your BBS file to the archive, then
use a batch file like this...
@echo off
move \downloads\*.* \bbs\uploads
for %%c in (*.*) do UPCHECK %%c
This will perform the full scanning on the
files and add the archive comment, archive
file, recompress, delete all the unwanted
files, scan, etc.. and add the FILE_ID.DIZ
to the filebase description. Remember that
for both of these batch files, it's a good
idea that the "\bbs\uploads" directory be
empty before running this, as otherwise,
it will process the files that had already
been processed prior to running the batch
file. Also note, that you should replace
the "\bbs\uploads" and "\downloads" with
the appropriate paths for your own system.
╓───────────────────────────────────────────────────────────────────────────╖
║ Advanced User Tools ║
╙───────────────────────────────────────────────────────────────────────────╜
With the UpUtils utility you can build your own advanced batch file.
With a great batch file, you can make just about anything happen with
your archives.
The two functions /REPORT and /ERRORLEVEL allow for some great ways
to handle certain conditions.
The easiest way to show how you can use these is to look at the file
ADVANCED.BAT that is included in this archive.
Remember that UpCheck does not require that you make such a batch
file system and will run just fine in 99.99% of all situations. These
functions are to provide additional ways for you to implement third
party utilities.
╓───────────────────────────────────────────────────────────────────────────╖
║ Scanning in text for descriptions ║
╙───────────────────────────────────────────────────────────────────────────╜
With UpUtils, you can retrieve descriptions for files that do not
have a FILE_ID.DIZ, DESC.SDI or DESC.SDN in them. This is done by
setting up some "Description files" in the UpSetup program, and then
using the "/YANK" switch of UpUtils (with the "/INSERT" switch also)
What UpUtils will do is scan through these "description files" and
search for a matching filename. If one is found, it will grab the
description that is listed, and insert it into your filebase. The
files can be almost any text format, as UpUtils will synchronize the
descriptions itself. For example, if you called up a BBS, you could
turn on your 'capture' function of your terminal, then when you had
downloaded some files, you could use this capture file as a file to
search through in case the files didn't have a FILE_ID.DIZ type file
in them. This is what you can do:
1) Go into your terminal and start a capture file
2) Call a BBS and download some files, read mail, whatever
3) Repeat step 2 as many times as you wish
4) Exit the terminal
5) Run UpUtils with /INSERT /YANK /COMMENT and /DUPE turned
on, in order to insert all the descriptions (yanked or
embedded), comment the ZIP files with your logo, and add
the files data into the duplicate database.
With this you will never need to enter a description manually into
your file listings again!
Another use for this might be if setting up a new BBS, and you want
to add all the descriptions for the files you have. Well, you could
download a couple BBS lists from other systems, and use those for
description files to be yanked from. Also, if you ever lost your
descriptions, you could insert them back using your own BBS listing.
╓───────────────────────────────────────────────────────────────────────────╖
║ Running with TBAV ║
╙───────────────────────────────────────────────────────────────────────────╜
UpCheck will run with any scanning system created now or in the
future. UpCheck will handle multiple scanners, because it can call
any program you wish, including batch files. Here's an example file
that will use McAfee's scanning system, and then ThunderByte after.
@echo off
SCAN *.* /sub /nomem /nopause (for McAfee Scan v1.x)
SCAN *.* /sub /nomem (for McAfee Scan v2.x)
if errorlevel 1 goto :end
if exist *.exe goto :next
if exist *.com goto :next
if exist *.sys goto :next
goto :end
:next
TBSCAN nb nm nh ba lo ll=0 ap ol ln=c:\upcheck\upcheck.log
:end
To implement this, select UpSetup ═ Important Prgs ═ Scanning and
replace the "SCAN.EXE etc" with the name of the batch file you just
created. Now your system is setup to work with TBAV and McAfee.
Scanning Program: SCAN.BAT
( Provided SCAN.BAT is in your system path, otherwise )
( include the full path to the batch file you created. )
With the same principles, you can do any type of scanning, or other
modifications on archives for that matter, by replacing the standard
"Important Programs" with your own customized batch files.
╓───────────────────────────────────────────────────────────────────────────╖
║ Running with McAfee Scan 2.0 ║
╙───────────────────────────────────────────────────────────────────────────╜
Running UpCheck with McAfee Scan Version 2+ couldn't be simpler. All
you need to do is change the setting in UpSetup ═ Importand Prgs ═
Scanning and change the parameters to look something like this:
Scanning Program: SCAN.EXE /SUB /NOMEM *.*
By default, UpCheck sets up for compatibility with McAfee Scanners
Versions 0.90 through 1.x, however with 2.00 and higher, the old
parameter of /NOPAUSE is no longer needed. Of course these are just
defaults, and like almost everything in UpCheck, you can change them
to whatever you want. Please refer to SCAN's documentation for more
information on valid parameters.
╓───────────────────────────────────────────────────────────────────────────╖
║ License and Disclaimer ║
╙───────────────────────────────────────────────────────────────────────────╜
UpCheck is not free, it is being marketed under the "try before you
buy" or shareware concept. You are entitled to use UpCheck, UpSetup,
UpUtils and the companion utilities for a period up to forty-five
(45) days, after which you MUST register it or stop using it.
Registration entitles you to use UpCheck and its companion programs
as well as any future versions of the programs that may or may not
be released, subject to any new licensing arrangements. Registration
will also unlock all of the features that UpCheck is capable of. (In
other words, the {+} features)
By running any of the executable programs included, you agree that
Pete Rocca, nor any affiliates of Pete Rocca are responsible for
any damage ever experienced, however so created. If you cannot agree
to this, then your privilege to use any of these programs is revoked
and it becomes illegal for you to execute any programs included with
this documentation.
You may freely copy and distribute the shareware version of UpCheck
as long as its original archived contents are not modified in any
way. You may not distribute a registration key without the express
written consent of Pete Rocca at Multiboard Communications Centre.
You may not use a registration key that is not licensed to you by
Pete Rocca, the author of this program.
It is illegal to edit, alter, hack, reverse engineer and / or modify
any components of the UpCheck archive in any manner.
If dispute of any issues on legal grounds said above, then governing
law of Ontario, Canada will rule.
╓───────────────────────────────────────────────────────────────────────────╖
║ Registration ║
╙───────────────────────────────────────────────────────────────────────────╜
UpCheck is probably one of the most powerful utilities that you will
have running on your system. - It's probably also the lowest priced
piece of Shareware that does so much. Compare all it's features to
some programs that only perform one or two of it's functions and are
more expensive. If you continue to use this product, please support
it, and mail in your registration.
Commercial Systems
──────────────────────────────────────────────────────────────────────
If you are making or attempting to make a profit by providing services
including but not limited to the transferring of files or messages,and
will be using UpCheck in this environment, then you are subject to the
"Commercial License". In this case, please add $10.00 to the price of
registration as stated in the REGISTER.* forms that are included with
this package. Also state in the comments area that you are requesting
a commerical registration code.
Non-Commercial Systems
──────────────────────────────────────────────────────────────────────
Simply fill out the included REGISTER.* form that matches your region,
and then send it in with your fee to the nearest registration site.
REGISTER.CAN Registration from a Canadian Site
REGISTER.EUR Registration from Europe or for credit cards
REGISTER.USA Registration from the USA or for credit cards
REGISTER.FRM Registration from anywhere else in the world
╓───────────────────────────────────────────────────────────────────────────╖
║ Support ║
╙───────────────────────────────────────────────────────────────────────────╜
If you have any questions or comments, you can netmail me at FidoNet
address 1:2401/305 (XA,CM,V32,V42). Please poll back within 24 - 48
hours for a reply, or request that I route the message back to you.
Also you can contact me via the internet at "support@mcc.uti.com" You
can also find me in the RemoteAccess Utilities FidoNet area.
The latest version can always be FREQ'd from me with the magic name
of "UPCHECK" or from any of the support sites mentioned in the file
SUPPORT.TXT included with this archive.
╓───────────────────────────────────────────────────────────────────────────╖
║ Common questions and answers ║
╙───────────────────────────────────────────────────────────────────────────╜
Q: Can I run it with TBAV and F-PROT?
A: Yes, read the "Running with TBAV" section, and simply adjust the
batch file as need.
Q: My users don't get anything on their side when UpCheck is running?
A: Make sure that the dropfile (DOOR.SYS, DORINFOx.DEF, etc) is where
you have specified on the command line. If the dropfile is missing
UpCheck will run in local mode only.
Q: It seems to lockup during zipping or unzipping.
A: Try adding "-)" (without the quotes) to the end of the .ZIP de/
recompression lines. This disables the DPMI option of ZIP which is
not fully compatible with some DPMI servers.
Q: Do I have to put the files in my path?
A: No, nor do you need to set any environment variables. If you want
to be able to run these files from anywhere on your system, you
might want to make some batch files that are in your path, that
would simply look like this:
--- UPCHECK.BAT
@echo off
c:\upcheck\UPCHECK.EXE %1 %2 %3
--- UPUTILS.BAT
@echo off
c:\upcheck\UPUTILS.EXE %1 %2 %3 %4 %5 %6 %7 %8 %9
Q: Will UpCheck work properly on multinode systems if someone else is
uploading, or browsing the file areas?
A: Absolutely. UpCheck is able to fully scan files, check duplicates
update the filebase and post messages when other nodes are using
the same files. UpCheck is fully SHARE/Network locking aware.
Q: I noticed that with 2400 baud callers, sometimes the file starts
scanning before they have the updated screen?
A: Yes, UpCheck will dump the screen to the modem, and then start to
perform its tasks. This way, the user has less time to wait for
their upload to be processed.
Q: Can I disable virus scanning?
A: Yes, specify the scanning program as "OFF" (without the quotes)
Q: Does UpCheck work with OS/2?
A: Yes. This program has not had any reported bugs when running with
OS/2 2.0, 2.1 and 2.11 (service pack applied), as well as WinOS/2,
DESQview 2.40 through 2.62, DESQview/X 1.2 through 2.0 and MS-DOS
3.0 through 6.2
Q: I see this wierd blue square flashing in the top right corner of
my screen.
A: This is an indicator to you that file access has been denied from
UpCheck or UpUtils for more than a half a second. It will continue
for about 30 seconds or until the files are made available to it.
This is to let you know the current situation, so you do not think
that your system is 'frozen' or 'hung'. The square will never be
displayed to a remote caller.
Q: The file listings are not being updated!
A: There are a number of reasons this might be happening.
The most common are...
1) scanning files in a directory that is not defined in either
the FILES.RA (RemoteAccess 2.x) or in the matchup file for
non-RemoteAccess 2.x users.
2) the filebase was locked for more that 30 seconds
3) the filelist name in the matchup file is incorrect
╓───────────────────────────────────────────────────────────────────────────╖
║ Errors ║
╙───────────────────────────────────────────────────────────────────────────╜
If you ever get a runtime error, chances are pretty good that you have
incorrectly specified a path or file name, or you that the UPCHECK.CFG
or UPCHECK.DAT file is corrupted.
The most common error is an 'Error: (42) Report errorcode at ????' and
it is caused by the configuration being from an older version. If you
have upgraded from an earlier version, then run CONVERT.EXE which will
upgrade your configuration. If this problem still persists after you
have run the conversion program, then please report the errorcode to
one of the above listed support boards.
One other possible runtime error you could possibly get would be if a
user uploaded a file that had more then ten levels of embedded files
however in all my years of being a Sysop, I have never seen more than
four. If anyone uploads a file that contains more than 10 levels of
embedded archives, chances are that they are real idiots! When I say
levels, I don't mean files. UpCheck can handle an infinite number of
embedded archives, but a level is when a file is archived, then the
archive is rearchived (see below)
ORIGINAL.ZIP (uploaded)
LEVEL2.ZIP is located in ORIGINAL.ZIP
LEVEL3.ZIP is located in LEVEL2.ZIP
LEVEL4.ZIP is located in LEVEL3.ZIP
LEVEL5.ZIP is located in LEVEL4.ZIP
... etc ...
If you feel that this could pose a problem, you can always disable the
embedded archive searching.
In any case, if you ever get a runtime error, the only thing that will
most likely happen is that the file will report failed. Any runtime
errors will NOT cause your system to 'hang'.
Any logical errors or runtime errors that you cannot seem to resolve
should be reported to 1:2401/305 for my evaluation, please include the
error number and location, the look of the screen and the current task
that the program was under and I will get back to you with a solution.
Example : Runtime error 103 at 05C3:3029
\ \
Number Location
Other neat stuff:
UpCheck avoids a large number of problems that other scanners seemed
to have over looked. The classic one is this:
a) a file called TEST.ARJ gets uploaded and rearchived to ZIP
format so now a file called TEST.ZIP exists
b) a different program called TEST.LZH gets uploaded and
rearchived to ZIP, the BBS allowed the upload because the
file TEST.LZH did not exist, but the scanner failed to
realize that another program already existed in the same
directory with the same name. The scanner would either
delete the first file, or add all of TEST.LZH's files into
the first file. Yuck!
UpCheck would have renamed the second file TEST.ZI0 and updated the
filebase accordingly. UpCheck will continue renaming from ZI0 to ZI9
to ZIA to ZIZ as files are duplicated.(Although the rarity of any of
this happening is so far fetched, it shows the detail and concern
that UpCheck exhibits)
Many other scanners will also not update the filebase with the new
size or type of the file once rearchived (and/or the garbage killed)
but UpCheck will always update the base.
Also, many scanners either abort or 'freeze' the system if a caller
hangs up during scanning.... not UpCheck.
Also, if the file doesn't exist in the FDB, some scanners will not
update it with the added information, or the FILE_ID.DIZ files.
If you find a problem, PLEASE let me know as soon as possible so I
can fix it and get you rolling again in no time flat!
╓───────────────────────────────────────────────────────────────────────────╖
║ Acknowledgments ║
╙───────────────────────────────────────────────────────────────────────────╜
This program has been tested on MS-DOS 3.3 through 6.22, DESQview
2.40 through 2.63, DESQView/X 1/2, Windows 3.x and OS/2 2.0 through
OS/2 2.11, other operating environments should work fine, but they
have not been fully tested yet.
Requires at least Dos 3.3 and about 450k free conventional memory.
(Can't do much about the memory problem, only 5k of that is mine,
the rest you can blame on McAfee and the author of SQZ.) SHARE.EXE
must also be loaded for Dos systems.
The JAM message base format is used in UpCheck and this is the JAM
license header... "JAM(mbp) - Copyright 1993 Joaquim Homrighausen,
Andrew Milner, Mats Birch, Mats Wallin. ALL RIGHTS RESERVED." The
RemoteAccess filebase format, RemoteAccess and RA are (C) Copyright
Andrew Milner and Wantree Development, 1993. All rights reserved.
The TriBBS message base format is Copyright 1993 Mark D. Goodwin.
SuperBBS Bulletin Board Software is Copyright (C) 1990-1993, Risto
Virkkala and Aki Antman. The PCBoard software is Copyright (C)1993
by Clark Development Company, Inc.
PKZIP/UNZIP,PKARC/PKXARC, Copyright PKWARE; ARJ, Copyright Robert K
Jung; LZH/LHA, Copyright Haruyasu Yoshizaki; PAK, Copyright NoGate
Consulting; UC2, Copyright Ad Infinitum Programs; SQZ, Copyright J
I. Hammarberg; SCAN, Copyright by McAfee Associates; TBSCAN/TBAV,
Copyright Thunderbyte B.V; X00, Copyright Ray Gwinn; BNU, Copyright
David Nugent & Unique Computing; DESQview, Copyright by Quarterdeck
Software; MS-DOS, MS-Windows, Copyright by Microsoft Corporation;
OS/2, Copyright International Business Machines Corporation. Thanks
to the public domain swapping utilities that required very little
in the way of tweaking, by Thomas Wagner. GIF(tm) is a trademark of
CompuServe. JPG is maintained by an ISO WorkGroup and ANSI.
Thanks to a major beta tester, David Gee, who does every possible
thing to crash my program :) I'd also like to thank him for all the
suggestions on improving UpCheck and lastly for being the first
registered user of the program. Also thanks to Tom Stoltz and Gary
Hammer for their suggestions and also for becoming the first two
support boards for UpCheck. Also thanks to Rod Aubertin, another
support board, for helping me out when my mail hub went down.
Also, a BIG THANKS, to my wife Laurie, who hates me being on 'this
damn machine', but still finds the way to support me. Thank you.
Thanks to you, the user, for actually reading to the end of the
documentation, and remember, please register, it's cheap!
Documentation End / January 1st, 1995