Output of file : THDDOC.TXT contained in archive : THDPRO10.ZIP
Page i
THD ProScan Version 10.0
Documentation

Index

Topic - Subtopic................................................. Page No.

Introduction .................................................... 02
- The Product ............................................... 02
- Overview .................................................. 02
- Registration / Donations .................................. 03
- History ................................................... 03
The Author ...................................................... 05
- History ................................................... 05
- How to contact me ......................................... 05
Product Support ................................................. 06
- Commentary (THD vs other Archive Processors) .............. 06
- Thanks to... (Credits) .................................... 08

THDINSTL.EXE .................................................... 09
- Command line syntax ....................................... 09
- ? .................................................... 09
- /F (Full installation)................................ 09
- {Path to old THDPRO.EXE} ............................. 09
- /NET (network compatible mode) ....................... 09
- Function .................................................. 09
- conditions for running successfully ....................... 10
- selection screens ......................................... 10
- final screens ............................................. 16
- final screen one ..................................... 16
- final screen two ..................................... 16
- final screen three ................................... 16

THDPRO.EXE ...................................................... 18
- command line syntax ....................................... 18
- ? .................................................... 18
- /NODESC (NO DESCription).............................. 18
- CRC (CRC Mode)........................................ 18
- /CO (Convert Only).................................... 18
- /KO (Keep Original)................................... 18
- /LA (Log All)......................................... 18
- /ADD (ADD description to FDB)......................... 19
- {COMPORT} ............................................ 19
- /60 /120 /250 /450 /750 /1500 ........................ 19
- {CONVERT INDICATORS} ................................. 19
- Requirements .............................................. 19
- Function .................................................. 20
- Features .................................................. 21
- Basic operation ........................................... 26
- CRC mode .................................................. 26
- Conversion and Convert-Only mode .......................... 27
- Test mode ................................................. 31
- Frequently asked Questions................................. 32

Page ii

THDPLUS.EXE ..................................................... 36
- command line syntax ....................................... 36
- ? .................................................... 36
- /ALL (process ALL).................................... 36
- /REMOVE (mark to REMOVE).............................. 36
- Requirements .............................................. 36
- Operation ............................................ 36

TESTINFO.DAT .................................................... 37
- What is it? ............................................... 37
- Why is it? ................................................ 37
- How does THDPRO use it? ................................... 38
- How can others use it? .................................... 38

THDTERM.EXE ..................................................... 39
- General Information ....................................... 39
- command line syntax ....................................... 39
- {Comport} ............................................ 39
- /S (Source directory) ................................ 40
- /C (Configure) ....................................... 40
- Requirements .............................................. 40
- Function .................................................. 40
- Features .................................................. 41
- Basic Operation ........................................... 41
- THDTERM and Filedoor ...................................... 41

THDDEMO.COM ..................................................... 42
- Purpose ................................................... 42
- ANSI Files ................................................ 42
- THDPRO.AN? files ..................................... 43
- PAINSOFT.AN? files ................................... 44
- PAINSOFT.ANS ......................................... 46

- THD ProScan's custom / configurable comment control ....... 47
- Randomly selected comments ................................ 47
- Comment by area ...................................... 47
- Keyword replacement / customization ....................... 49
- keywords ............................................. 49

ENVIRONMENT VARIABLES ........................................... 53
- THDZIP .................................................... 53
- THDARJ .................................................... 53
- THDOPT .................................................... 54

SECURE MODE ..................................................... 55
- THDPRO.EXE /SEC ........................................... 56
- THDPRO.EXE /SECTEST ....................................... 56

NETWORK NOTES ................................................... 57

Page iii

- PREFACE -

THD ProScan is a collective effort by myself and a number of others.
While most of the time you associate only myself with the various releases,
I feel that I need to take a moment to acknowledge that were it not for the
great users and fantastic beta testers, this product might have long since
been history.
Since the inception of THDscan (about 6 years ago) there have been
many people who have helped to find problems and offered assistance in many
other ways. This version of THD ProScan is dedicated to all of those people.
Without regard for how great or how small their contribution, these are the
people who have made it possible for you to receive this version.
Please take a moment to read the credit section of this documentation.
Although only a few are specifically listed in that area, it is worth noting
that there are in fact many other contributors. Some who have made donations
or incurred costs, or perhaps even simply made a comment or suggestion are
still deserving of a mention.
Among those rarely ever mentioned, I would like to thank the makers of
the products that THD was designed to replace. While I would never recommend
some of the products that fall into that category, I can't help but remember
that had it not been for those inferior products, THD might never even have
made the drawing board.
The early creators of file processors missed a great many details now
considered standard, however without their original ideas, this product and
many others may not ever have come into existence.
And to my competitors, without whom this product might be only a shadow
of what it is today. Some have been friendly and other have downright
destructive, but all have helped in the creation of various versions.
While no implementation in THD has ever been taken directly from another
product, many of the "toys" are based on suggestions from users who had seen
similar options in other products. As I'm sure on occasion users of other
products have made suggestions based on things they have seen in THD.

I could never hope to mention everyone who has made a relevant
suggestion for the improvement of THD. Nor could I hope to recall all the
people who have made a significant difference in it's development. What I
can do is to thank them all here for their contributions, whether
intentionally or by circumstance.

So, to all the testers, users, non-users, nay-sayers, praisers, critics
and competitors...
Thanks for your contributions, no matter how great or how small...

This one is dedicated to you.

Page 01
-------------
-------------

The following copyright covers THD ProScan and all of it's
parts, including (but not limited to), THDPRO, THDINSTL,
THDPLUS, THDTERM, THDDOC and THDDEMO. The TESTINFO.DAT format
is covered by a separate copyright. Please see TESTINFO.INC
for details.

These programs and all of their associated names, files,
logos and makeup are Copyright 1992 - 1994 by PainSoft.
Absolutely no duplication in whole or in part is allowed.
With the exception of duplication of the entire archived set
of files for distribution to those in need of it's services.
None of the copyrighted material may be changed in any way,
except by the author. Changes made by the author's original,
unmodified installation program will be considered to have
been made by the author for the purpose of this copyright.
The files may be rearchived in ANY fashion which requires
them to be restored to their original condition before use.
(Portions are Copyright Borland International). The Author
accepts no responsibility for the actions of this program.
It is FREEWARE and NO charge may be made for distribution.
It is NOT a commercial product and the ONLY acceptable
charge for it will be "actual, physical cost of duplication".

Other products mentioned are copyrighted by their respective
owners and include their own restrictions for use. Please
be sure to register those products if requested by the

Page 02
----------------
- INTRODUCTION -
----------------

- The Product -
---------------

- Overview -

THD ProScan is an File Processor. It was conceived as a security
conscious method for testing the integrity of archived files and has
evolved from a 50 line batch file to what you see now.

The general purpose of an file processor is to perform a series of
tests on a given file (usually an archive) and report the passing or failing
of the various tests. The types and number of tests done will vary with the
program being used, but the one test viewed as the most important is the
Virus Scan. Others tests are (or are not) performed depending on the
software being used. Normally things like CRC testing and commenting of
archives are standard procedure.
These products are known by many names, almost all of which are a
contraction of one of FILE, ARCHIVE, or UPLOAD and TESTER, PROCESSOR or
CHECKER. Whatever they call themselves, their usual goal is to offer some
assurance that the files have been reasonably tested for integrity.

The difference between this and many other upload testers is one of
priorities. Most upload/file testers regard the testing of the file as the
single most important factor. THD ProScan, on the other hand, has a
different view.
THD ProScan is designed with security as the single most important
factor in a file tester. It is with this in mind that THD ProScan has been
programmed from day one. This is also the reason why some things that you
might "like" to see are not present. You cannot change a number of things
which others allow. The reason being that the options used in this tester
are the ones most likely to stop people from gaining access to your
computer. Simple things like not allowing user definable commands to be run
and insisting that full paths be supplied, help to ensure that the sysop
without a full working knowledge can get as much benefit from this tester as
the seasoned pro.
By the same token, THD ProScan also attempts to compete and defeat the
so called "competitors". It attempts to do as many things as could be
realistically asked of an upload tester, while maintaining the security that
prompted its creation as well as being generic enough to be used by as many
BBS programs as possible.
I think you will find that the number and types of options available in
this tester rival or exceed those available with a number of other testers.

If you need an upload tester...
-------------------------------
---- YOU NEED THD PROSCAN -----
-------------------------------

Page 03
- Registration / Donations -
----------------------------

While THD ProScan is a FREEWARE product, the author (that's me) does
gladly accept donations. There is no "set" amount or for that matter it
doesn't even have to be cash.
Since my main concern is to upgrade my current computer (an XT), I will
also accept hardware in the hopes that it will assist me in building my new
computer.
Details are available in DONATE.PLS and the address is found in the
author section of this documentation.

- History -
-----------

Long, long, ago and far, far, away.. I used to call about 40 BBS'es a
day. I became concerned one day when I uploaded a file and it failed
something called an "upload test".
I quickly downloaded the program which failed my file and was amazed at
what it was attempting to do. (cool I thought). However upon looking closely
into what it was doing and how it was being done, I became VERY concerned.
This program could give a user COMPLETE control of the sysop's computer if
they created just the right archive.
Being the conscientious little co-sysop that I was, I went searching
for a similar program without the flaws present in this one. Believe it or
not, I couldn't find one (I did find some 15 other programs, none of which
addressed all of my concerns). I decided instead that I would create a
"secure" batch file for this sysop to process his uploads. I made one that
worked on my system, then I made it configurable (so that the sysop could
customize it for his system).
And such was born a 4DOS dependant batch file called THDScan. (are you
still with me?). Others of course called and saw the "neat" screen output
and inquired as to where they could get a copy and so on.. Many were amazed
at what could be accomplished through batch processing and began to use it.
As is normal, problems began to arise and improvements were requested. And
so development of THDScan continued.
This development saw many changes and additions to THDScan through the
two years it was being improved. But alas, as is always the case, some
spoilsports refused to use it because it was a batch file (not to mention it
needed 4DOS or NDOS to properly run). And so Development of an executable
version of THDScan began.
No-one was willing to "program" it my way, so I started to learn Turbo
Pascal in the hope of creating it myself.
And after much hair pulling, on August 20, 1992, the world was
introduced to THD ProScan Version 1.0. (more like about 45 local systems).
Things continued on with bug reports and so on (what can I say, I never
programmed anything before). And so began the upgrading of THD ProScan.
Somewhere around version 6.0, I was surprised to receive a netmail from
Ireland making inquiries about my program (whoa.. all the way from Ireland).
I asked this person for explanations, what I could do etc. and he was most
helpful in showing me what he wanted added/changed to support his particular
use.

Page 04

Soon thereafter netmail started coming from everywhere (okay .. almost
everywhere). THD had somehow become a popular program. From that point onward
THD has been treated by me as a major endeavour.
The Version 10 being released today, is the result of many such
communications and many, many hours of work. None of which I have ever
regretted.
For those of you who are dying to know, THD actually stands for
"The Head Doctor" (the alias of the sysop for whom the original pre-version
1.0 THDScan Batch file was created). I have long since lost contact with
him, and many of the people whom I knew at that time. But I suppose I ought
to thank him for lending me his monogram.
So there it is.. everything you never wanted to know about THD ProScan.

Page 05
--------------
- THE AUTHOR -
--------------

- History -
-----------

Who am I?

Hi. I'm David Muir, born in the winter of 1962. I was introduced to
computers about 8 years ago by a friend. BBSing at that time was something
that I hadn't even considered.
Not too long after that I got my first IBM compatible computer. I
played games, made notes, and used it to keep my company records. It was a
tool. After scooping some neat toys from a friend, I began to inquire how he
came about getting them, he explained about modems and BBS'es. I soon after
purchased a neat 2400 bps modem and got a few numbers off of him.
In no time flat I was a BBS junkie. Calling up to 40 BBSes at a time
and trying my best to help people out. I eventually got to co-sysop on about
15 of those boards and was quite in demand as a co-sysop (due mainly to my
security conscious approach). But time took it's toll, and eventually I had
to lessen my outgoing calls. Somewhere in there THDScan was born and later
THD ProScan.
So now I'm a 32 year old computer junky, who loves nothing more than to
get netmail from places I've never been and help people with problems I
don't have.
THD ProScan is my way of helping. And a pretty good reason to talk to
people from distant places. I still use that same computer (an XT compatible
that cost darned near as much as my car). Generally I'm a pretty boring
kinda guy who's more than willing to lend a hand when I can.

- How to contact me -
---------------------

I can be reached via Netmail at Tim Strike's BBS

The Forbidden Knights
1:259/423.0 (fidonet)
(905) 820-7273
Mississauga, Ontario
User name- David Muir
Alias - Pain

Home is...

David Muir
198 Leyton Ave
Scarborough, Ontario

I'm also available in numerous other nets (look for Tim's BBS) as well
as following many of the public echos which relate to BBS support.

Page 06

-------------------
- PRODUCT SUPPORT -
-------------------

Product support is available directly from the author according to the
information above. However, you might find that many people in the public
echo areas are willing to help as well.
Most of the sysops listed as distribution sites will be happy to try to
assist you and if unable to do so, will generally forward questions and
Questions regarding interaction with your particular BBS type are
generally best answered by those who use the same BBS software as yourself.
If however you're stuck and no-one seems to know the answers, please give me
a shout, either by mail or via netmail (or possibly in the public echos if
you happen to spot me).

- Commentary (THD vs other Archive Processors) -
------------------------------------------------

In the last year or so, it seems that the Archive Processing field has
become VERY competitive. I have done my best to uphold my friendly
disposition in the face of numerous attacks, both on me personally as well
as on my product.
So people who don't want to know how I REALLY feel should not read
this.

Still with me? Okay...

THD ProScan is NOT a hobby. It's not something I do to rip the nice
sysops off for their money. It's not a pastime that I use to fill my empty
hours. It IS an obsession. THD is what I do. To attack it, is to attack me.
I do engage in employment as well, but that is something which I am paid to
do and do not do because I "desire" to do it.
In the past year, I have been called everything from a complete fraud
to a liar. I am neither. THD has been called ineffective, inefficient and
unreliable. It is none of those things.
What THD is, is quite simply my way of saying thank to the many sysops
out there who need something and may not know what. THD is built with
security in mind. To date NOT even ONE other archive processor has been able
to match THD in its efficiency and security. Now to be fair, there are some
that I have not tested. In those cases I have not come across them or have
found them not to run on my XT.

Page 07

I do not begrudge the other authors who believe that their product is as
good or as secure as my own (or those who believe that theirs is superior to
mine). But I can tell you, in all honesty, that with the singular exception
of THD ProScan there does not exist an upload tester (of which I am aware)
through which I cannot pass a KNOWN virus in a legitimately testable archived
file. This refers to a virus that will be recognized by McAfee's VirusScan if
all archives are expanded and all resulting files are tested. This does not
refer to any underhanded encryption technique or creation of the virus after
being tested. But an honest to goodness real virus in a file type which those
other do test.
Some of those other products can even be manipulated by an uploaded
archive to allow the remote user "FULL" access to the host system.
If it's any consolation, the last statement refers to fewer and fewer
products as time goes by. Most regularly updated processors do guard against
this particular instances.. BUT NOT all of them, so watch for these.
I specifically will not mention any of the people who have attacked
myself or my tester. But I will be honest, in saying that if I ever actually
tell you not to use a specific product (something I would rarely ever do), I
do have my reasons and they are never related to anything as petty as
revenge.
I stand behind my product. I believe what I tell you about it, and most
of all I make it for you.. not me. (I have no use for about 90% of what is
coded in there, 10% is coded for me the other 90% is coded for the people
who use it). Remember that I am not a sysop and most of the features in THD
are BBS related.
As a final note. Many of my competitors in the Archive processing field
are not described above. Many are very friendly and professional people who
have never said anything to belittle myself or my product (or anyone else's
product). Many of them are good intentioned hard working people, bringing
you what they believe is an excellent product. Please if you use one of
these other products and the author requests registration... be sure to
register the product. The amount of work that goes into these things is not
petty and those who request registration have worked long and hard to
produce that product for you. Be sure to remember that when you see them
Above all. Remember that I truly do believe that THD is a superior
product. (and I have tested enough of them to make a reasonable judgement)
If you feel that another product is better (or better suits your needs)
then use it with my blessing. The final consideration must be what you
believe you need and not what myself or another author thinks.
Thanks for reading my babblings...

David Muir... Author THD ProScan.

Page 08

- Thanks to... (Credits) -
--------------------------

The list of people who have aided in the Development of THD ProScan is
far too long for me to list here (and to be totally honest, I don't think I
could name them all).
The following is a list of people who's input has been extraordinary is
not necessarily all inclusive. I have tried to give credit where credit is
due. I have many people to thank that are not listed specifically in this
text.

Thanks to all the sysops who, at various stages, helped in the
betatesting of this product. Many helped me to find "minor" inconsistencies
and fix them before you got to see it.
A VERY special thanks to Eugene Chin for his great assistance in
betatesting the first releases and making valuable suggestions about the
program.. Many of which were implemented, And of course some which were
not.. But all of his suggestions and comments were considered.
A special thanks as well to "Eternal Darkness" for his contribution of
the "user side ansi screen". He willingly gave me a number of "ansi" drawings
with permission to modify them as was necessary to suit my purpose. The ansi
your users see is only very slightly modified from the ansi I received and I
think he did an excellent job.
A thanks as well to David Luckie who reported the problem which Version
4 fixed. Without his inquiries the integrity of this program might have been
severely compromised.
And to Tim Strike for his assistance in too many aspects to list in this
document, including relaying David's concerns and replies so that I might be
able to fix the problem.
To Neil Dempster for his support and constant questioning (not to
mention the extra drives).
To Mark Kerr for his inquiries into the "move/rename" aspect of the
program. As well as making me aware of the number of RA supporters.
A VERY Special Thanks to Rudy Ramsey for rushing me the registration
key for VENDEDIT so that THD ProScan could be distributed with a valid
VENDINFO.DIZ. Persons with inquiries regarding the VENDINFO standard should
contact Rudy Ramsey as noted in the VENDINFO.DIZ included with this package.
To TurboPower Software for the use of their EXECSWAP program.

To all Beta sites, past and present. And to anyone who ever reported an
error so that I could endeavor to fix it or made a suggestion to improve it.

Page 09

----------------
- THDINSTL.EXE -
----------------

THDINSTL.EXE is the installation/configuration for THD ProScan.
THDINSTL accepts four (4) different parameters. (note that "/NOMOVE" is no
longer supported as a commandline parameter and must be toggled from the
final screen).

- command line syntax -
-----------------------

- ? -
Running THDINSTL.EXE ? will result in a quick display of the commandline
options available for running THDINSTL.EXE.

- /F -
Running THDINSTL /F will cause the installation to emulate an original
installation as if the file had never been configured before. Useful if you
have made major errors or wish to make major modifications to your
configuration.

- {PATH\TO\OLD\THDPRO.EXE} -
Running THDINSTL.EXE C:\OLDTHD\THDPRO.EXE will result in THDINSTL
reading the file who's name is supplied. If this file is found to be a valid
THDPRO.EXE from the version 6.0 or later than the configuration from that
file will be extracted for use in configuring the THDPRO.EXE in the current
directory. If it is not recognized as a valid THDPRO.EXE, it will default to
a full installation process.

- /NET -
Running THDINSTL.EXE /NET will run in "network compatible mode". This has
the effect of not including the drive letter specifications when files are
found. As well it changes drive selection to allow only the use of the current
drive for the creation of its temporary directories. This is exactly the same
as renaming THDINSTL.EXE to NETINSTL.EXE as explain under "Network Notes".
IF used, this parameter must be the last thing on the command line.

- Function -
------------

The sole purpose of THDINSTL.EXE is to configure THDPRO.EXE. If
THDPRO.EXE is not yet configured, you will be stepped through a series of
questions. Answer these questions appropriately by supplying paths etc,
until the final three screens, where you will be shown the results of your
input, and have the option to make changes prior to changing the
configuration inside THDPRO.EXE.
If THDPRO.EXE has been previously configured, THDINSTL will read that
configuration and skip directly to the final three screens, from which you
can opt to make changes.
At almost any time during the installation you can press function key

Page 10
- conditions for running successfully -
---------------------------------------

THDINSTL, insists that the THDPRO.EXE which is to be configured is
present in the current directory when it is run.
THDINSTL, requires approximately 150k of free memory to run (more or
less may be required depending on your use of the dos shell feature available
by pressing function key F2).
Changes will only be saved by hitting "enter" from the final screen.

- selection screens -
---------------------

THDINSTL will step you through numerous screens. This text will only
outline those screens which require more than a path to a file be supplied.
For those entries which are simply paths, you should supply a full drive
path and filename (complete with extension). The exception being that persons
running on networks should not supply drive letters and should also read the
section marked "NETWORK notes".

- The very first screen after product identification will show the following
prompt. I think it's pretty much self explanatory.

Please press "C" to continue.
Any other key will abort the installation.

- Next screen.. same idea...

PRESS ANY KEY TO START THE INSTALLATION...

- The Log size screen is basic I think as well. You have 5 choices. pick one
which corresponds to the appropriate log size for your needs.
A) 5,000
B) 10,000
C) 20,000
D) 30,000
A/B/C/D to set size or "ANY OTHER KEY" for 50,000---¯

- The option to reboot and drop carrier on virus uploaders are simple yes/no
choices. Both of these options use the fossil to perform these functions.
generally it's a good idea not to drop carrier on users. And rebooting your
system upon detection of a virus is generally not necessary.

Page 11

- The option to supply a maximum size to autotest files is simple. If for
some reason you do not wish to test large files, you can select to not test
files automatically if they are larger than the selected size.
Any files over this size will cause THDPRO.EXE to prompt the sysop for
5 seconds to press a key. If the sysop presses a key, then the file will be
tested. If no key is pressed, then the file is passed without testing and a
note is logged.

A) 1 Megabyte (1024576 bytes)
B) 2 Megabytes (2049152 bytes)
C) 3 Megabytes (3073728 bytes)
D) 4 Megabytes (4098304 bytes)
A/B/C/D to set size or "ANY OTHER KEY" to test all files ------¯

- Default comport. seemingly simple enough. This entry accepts a digit
between 0 and 8. If your BBS can pass a comport, then I recommend setting
this to "0" and let the BBS supply the comport when necessary.
If you run a single node BBS which can not pass the comport, then
setting this to the appropriate comport used by the BBS would be correct
entry. Note that this entry goes by the human definition of comport and not
by the fossils definition. (com 0 is local [no comport] and not port 1 as
would be determined by most fossil drivers).

- Local comport is a very specific setting for a very specific circumstance.
Almost everyone should set this to "0". If you think perhaps you need this
setting, then hit function key F1 from this screen for a description of who
does and does not need this.

- BBS name. This entry is limited to 39 characters (as are most of them
which require multiple character input). This entry MUST be made. if you
don't run a BBS enter your name or alias at this prompt. This is the name
which the user side will show THD as being "Registered to".

Please enter the full name of your Bulletin Board
ie. The Best Little Board in Texas

Input Name---¯:

- Log directory. This entry requires a path to a directory in which you
would like THD to keep it's log files. THD keeps a log for each file tested.
This entry is mandatory.

Please enter the FULL path to your LOG directory
ie. C:\BBS (No ending "\")

Input LOG Directory---¯:

- Reject directory. this is the directory to which THDPRO.EXE should move
failed files If the FAILED FILE MOVING is set to normal (from the final
screen of the installation). This entry must be valid. it will not be used
if failed file moving is turned off, but must be configured just in case.
Enter the path to a directory which THD should move such files.

Page 12

- BBS Type.

Which of the following BBS types are you running?
1- RemoteAccess (version 2.00 or compatible)
2- Telegard 2.7
3- Renegade (07-17-93 or compatible)
4- FILES.BBS (standard format)
5- FILES.BBS (SBBS extended format uses " >")
O- Other (Create TESTINFO.DAT file)
N- None (Do not create a data file)

If you use and want THD to update the file bases for one of these BBS
types. Select that BBS type. the installation may prompt you for a path or
other information if you select one.

Selecting "O" (for other) will tell THDPRO.EXE that you do not run one
of the supported BBS types, but that you wish it to create a TESTINFO.DAT
file for each file processed. This file can be used by external utilities to
update the file bases for types not supported by THDPLUS. This should only
be selected if the utility you are using specifically requests that this
file be created.

Selecting "N" (for none) Tells THDPRO.EXE that you are not using one of
the supported bbs types (or do not wish them to be updated) and that you do
not wish to have a TESTINFO.DAT file generated.

- Age/date limit. This option allows you to limit the acceptance of files
based on the dates of files included in the archives. If you wish to limit
file by age or date, you would be well advised to look into the online help
at this screen (F1).

- VENDINFO.DIZ file support. THD supports the Vendinfo.diz file standard
version 1.00 in a limited capacity. The capacity is limited to descriptions
(and Author name as well as Product name and version in comments only)
I strongly recommend using these descriptions if you use description
importation at all. These descriptions ARE supplied by the author and are
generally good descriptions. The file contains 6 distinctively different
descriptions (they are not just cut off at "x" number of lines)

0 - do not use VENDINFO descriptions.
1 - 60 character description.
2 - 120 character description.
3 - 250 character description (suitable for TG/RG/FILES.BBS).
4 - 450 character description (FILE_ID.DIZ size).
5 - 750 character description.
6 - 1500 character description.

Page 13

- Heuristic Failures
If you select to use a heuristic tester for virus scanning THDPRO.EXE
can be set to either fail those files which raise heuristic flags or to pass
them. If you use ONLY heuristic testers, this will default to fail
heuristically flagged files. If you use SCAN.EXE for detection you can
choose to only log instances of heuristic flagging.

-File comments. File comments are a very complex issue in THD ProScan. At
this screen your choice is simple. You can opt to enter a single path to a
file to be used as a file comment for every file (option 1) or supply the
path to a list of comments (option 2). For more information on the many
options available for file comments see the appropriate section in this
document.

1. You can supply the full path to a file
to add as an "archive comment"
OR
2. You can supply a full path and filename to
a list of such files to be chosen at random.

Press any other key to skip this entry

- Drive options. this selection refers to the drives THDPRO.EXE should
attempt to use when making it's temporary directory structure (temporary
workspace). THD automatically detects the drives present on the system and
displays the first three here. To access a drive not shown here remove one
or more drive letters by entering the letter of the drive to be removed.
For information or other options you should see the online help from
this screen (F1). The "0" option tells THDPRO.EXE to use ONLY the default
drive for it's workspace. This is HIGHLY recommended for Network operations
or other environments when drive specifications can cause confusion.

THD ProScan will use the following drives to test files.

Drive C:
Drive D:
Drive E:

If you do NOT wish one of these drives to be used for testing.
press the drive letter to "NOT" do testing on.
To access a drive not shown here, remove one or more of the above
drives, until the one you want is displayed.

To reverse the order showing press "1".
To Rotate the order press "2". For network comp. mode press "0".
[enter] accepts the configuration shown...

Page 14

- File removal is a relatively complex choice. Choices 1 and 2 are
relatively simple. for an explanation of CRC removal see the section on CRC
mode. The online help also gives a brief explanation (F1 from the
appropriate screen).

1. You may supply a few filenames to be removed.
2. You may supply a list of filenames to be removed.
3. You may choose to remove files by their CRC values.
4. You may remove files using by BOTH CRC and filenames.

Choosing to use both list types will remove files based
on their CRC values and then check the remaining files for
files to be removed by name only.

- The "files to add" option allows THDPRO.EXE to add files of your choice to
each archive tested (except protected archives). At this screen you can
supply a few file names or a path using wildcards indicating which files
should be added (hit enter for none).

- A feature of this tester is the ability to reject files from a list of
file names. This list must be a list of file names ONLY with no extension
with each name on a separate line. The HACKLIST "*.COL" files are compatible
with this format and "may" be used directly. The hacklist "IDX" files can
also be read directly by this tester.
At this point you can hit enter to skip this option or enter the full
path and filename of a list of files to be used as a hacklist. (See the
section on file formats for specific information on the acceptable format of
a hacklist)

- This Version of THD ProScan allows you to select "default" options. If you
choose to configure these options they will only be utilized if no options
are entered on the command line. Supplying any parameters on the command
line other than a file path and name will cancel these options.

Options which can be set by this configuration are...
The conversion type and level -
The /NODESC option -

The /CO feature -
The /KO feature -

Do you wish to set/modify defaults for any of these? [y/N]

Page 15

At this point if you select to have THDPRO.EXE assume default command line
options, you will be prompted as follows...

The default options are as follows...
These options are "toggles".
To change the setting of any given toggle simply enter
the corresponding letter.
* Note that some options are unavailable without a conversion type. *
Hit [ENTER] to accept the defaults as shown.

A-- Conversion "OFF" by default.
B-- Convert-only mode ("/CO") - FALSE
C-- Keep-Original mode ("/KO") - FALSE
D-- Convert indicator - None
E-- Use /NODESC option - FALSE

As you select options, the various values will change on the screen
indicating your choices. Hit enter when the choices match your desired
settings. (You might be best not to change these until you are familiar with
the command line options and what they do).

- THD ProScan has 3 user definable levels for archive conversions. You
should select to modify one or more of these options if the preconfigured
levels are not to your liking.

Do you wish to view and/or modify these settings? [y/N]

If you select YES you will see a screen like this..

Available options level4 level5 level6

Convert imbedded archives FALSE FALSE FALSE
Convert SFX main archives FALSE FALSE FALSE
Convert SFX imbedded archives FALSE FALSE FALSE
Convert odd name main archives FALSE FALSE FALSE
Convert odd name imbedded archives FALSE FALSE FALSE
Convert protected main archives FALSE FALSE FALSE
Convert protected imbedded archives FALSE FALSE FALSE
Convert archives of the same type FALSE FALSE FALSE

Arrow keys to move around.
[SPACE] key to toggle the highlighted value.
[ENTER] key to accept all values shown.
Press desired key ...

Change the values by following the instructions. To use these levels see the
section dealing with Conversion mode.

Page 16

- final screens -
-----------------

After answering the numerous prompts in the install you will be
presented three final screens. The options on these final screens are
shown below. Some options may not be seen prior to the final screens.

The options available on the final three screens are generally a recap
of information you have entered during the installation up to this point. To
change any of the entries type the letter which corresponds to the entry you
wish to change.

- Final Screen one - contains only selections which would have been
configured to this point.

- Final Screen two - contains only path to utilities which you would have
configured prior to this point.

- Final Screen three - has two option which you will not yet have seen
they are options "G" and "I"

- Option "G" deals with the timestamp of the file being tested. This
should be set to indicate what timestamp should be put on this file.
Hitting "G" from this screen will toggle between the following four
choices.

G-- File's Timestamp -- Use date of newest internal file.
This option uses the timestamp of the newest internal file for the
finished archive.

G-- File's Timestamp -- Update to current date and time.
This option uses the current time and date for the finished archive.

G-- File's Timestamp -- Use File's upload date and time.
This option uses the timestamp that the file had when it was uploaded.

G-- File's Timestamp -- "Best Guess" at original date and time.
This option uses a calculation based on a average of the 5 newest files
in the archive. Recommended only if you don't normally strip others BBS
ads from the archives.

- Option "I" is used to determine if THDPRO.EXE should move and/or rename
files which fail it's various tests.
IF your BBS handles the moving of files when they fail (like
RemoteAccess) then this should be set to inactive, so that the BBS can find
the files to move them.
If however your BBS does not handle moving of failed files (like
Telegard 2.7), you should set this to "normal" so that THD will move the
files as needed to avoid having the BBS delete them.

Page 17

- Option "M" is toggled to invoke SECURE mode. Secure mode is explained in
detail elsewhere in this document. You should set this to false until you
have completely reviewed the section on secure mode.

From this final screen hit [enter] to save the configuration into
THDPRO.EXE and you are done.
Remember that throughout this process pressing F1 will get you online
help, and F2 will provide a dos shell. For the record, the online help in
most cases offers a more complete description that is present in this
portion of the text.
At any prompt, configuration can be aborted by hitting CTRL-C.

Page 18

--------------
- THDPRO.EXE -
--------------

- Command line syntax -
-----------------------

- ? -

Running "THDPRO.EXE ?" will result in a help screen which gives a brief
description of the proper syntax, for the various modes.

- With the exception of the ? option, all other options require supplying
a filepath.

- /NODESC -

Running "THDPRO.EXE {drive:\path\filename.ext} /NODESC" will result in
normal running of the test mode of THDPRO.EXE while NOT importing the
descriptions into your file data bases. This switch is useful when you wish
THDPRO.EXE to update your data bases in regards to name changes but not in
regard to descriptions.

- CRC -
Running "THDPRO.EXE CRC {drive:\path\filename.ext}" will invoke
THDPRO.EXE in CRC mode. CRC mode is explained in detail later. This is the
only mode in which wildcards will be accepted.

- /CO -

Running "THDPRO.EXE {drive:\path\filename.ext} /CO [Convert Indicator]"
invokes THDPRO.EXE in Convert-Only mode. Using this switch will cause the
file to be converted to the type of the convert indicator which must also be
supplied (convert indicators are explained below).
No "testing" will be done in this mode.

- /KO -

When conversion mode is active (either Convert-Only mode or normal
test/convert mode), if this switch is supplied, THDPRO.EXE will not delete
the original file after conversion takes place. (Normally if conversion is
successful, the original file is deleted and replaced by the newly converted
file).

- /LA -
Using this switch (Log All), THDPRO.EXE will not exit immediately
following a failed virus scan. Instead, it will finish scanning with all
configured virus scanners before indicating a scan failure. This can be used
to record the log output of the three scanners into HEURIST.LOG. Note that
output from the SCAN 1.x.x series is not logged, but Scan 2.x.x as well as
F-Prot and TBSCAN are logged.

Page 19

Using this switch tells THDPRO.EXE to toggle the flag in the TESTINFO
record which indicates that the user wishes to have a record added to the
file database if one does not already exist. THDPLUS does not support this
option. It is included for users of third party utilities. This is identical
in function to "SET THDOPT=ADD".

- 0 (1,2,3,4,5,6,7,8) {COMPORT} -

Supplying a single digit of 0-8 on the command line will cause THDPRO.EXE
to ignore the internally configured comport and use the comport number
supplied on the command line. The use of "0" will cause no remote output to
take place (this forces local mode). Other comport numbers will supply remote
output to the comport supplied.

- /60 /120 /250 /450 /750 /1500 -

Use of any one of these switches will inform THDPRO.EXE that instead of
the comment size selected in installation, you prefer it use this "/xxx" size
for commenting files. Note that this size selection refers ONLY to
descriptions taken from a VENDINFO.DIZ and ONLY as used in file comments.
These switches were added to allow you to have 1500 charcater descriptions
in your File base but not be forced to have the same size comment in your
file comment (if you chose to use that option). These switches have no effect
when descriptions are taken from the other than VENDINFO.DIZ files.

- TOZIP (TOARJ,TOLHA,TOSQZ,TOUC2,TORAR) {CONVERT INDICATORS} -

These six labels are called Convert Indicators. Using these on the
command line will cause THDPRO.EXE to go into conversion mode. (note that
without the "/CO" switch testing will be performed as usual and conversion
will follow immediately thereafter).
Only one may be used on the command line. Detailed explanations of the
various convert indicators is given later in this document.

- Requirements -
----------------

This tester requires...

- PC/XT (or compatible)
- MS-DOS 3.3 (or higher)(other "DOS" systems MAY be acceptable)
- A FOSSIL DRIVER (user output will not be sent if no fossil is
found but the testing will still be done)
- At least one Harddisk (drive assignment C: - Y:)
- at least ONE of i) McAFEE's VIRUSSCAN (2.x.x supported by default)
(1.x.x support through THDOPT)
ii) F-Prot
iii) TBScan
- Enough free memory to run each of the utilities used by this
program (+3k). THDPRO.EXE requires about 225k itself to load, but
releases all but 3k of that to run external programs.

Page 20

The following utilities are required depending on which file types
you wish to test.

- ARJ.EXE for "ARJ" files (version 2.41a)
- GIFTEST for "GIF" files (version 4.xx)
- HYPER.EXE for "HYP" files
- LHA.EXE for "LZH" files
- PAK.EXE for "ARC" files
- PAK.EXE for "PAK" files
- PKARC/PKXARC for "ARC" files
- PKPAK/PKUNPAK for "ARC" files
- PKZIP/PKUNZIP for "ZIP" files (version 1.10 - 2.04g)
- RAR.EXE for "RAR" files (version 1.51)
- SQZ.EXE for "SQZ" files
- TDCHECK.EXE for "TD0" files
- UC.EXE for "UC2" files (revision 2)
(Where versions are specifically mentioned, it is believed that
versions other than those mentioned "may" not work as expected.)

- Function -
------------

WHAT WILL IT DO..
THD ProScan will ..
1) Check (and/or reject) files from a user supplied list of files
2) Strip the file comment
3) CRC test the file
4) FIND a drive with enough space to test the file
5) Create a directory called "THDTEMP.???" on that drive
6) Remove files (if configured) from the archive.
(Removal by name, by crc, or by both)
7) Check dates to reject old files (if selected).
8) Expand the archive into that directory while recreating
its internal path structure.
9) Extract and process VENDINFO.DIZ if configured.
10) It then selectively searches each of the subdirectories created
for testable archives. If found, it repeats the above process
until no more archives are found.
11) It will then scan each of the files in that directory and
all subdirectories below it.
12) THDPLUS will run if so configured.
14) It maintains a log in your BBS directory of all actions
performed.
15) Perform a complete accurate conversion (if selected).
17) It then proceeds to remove the temporary directory structure.
18) Updates all of the log files.
19) Reports the appropriate errorlevel to dos.

The full process is actually much more complex than this basic
outline, but the above gives a reasonable representation of what
happens.

Page 21
- Features -
------------

- Support for ARC/ARJ/GIF/HYP/LHA/PAK/RAR/SQZ/TD0/UC2/ZIP file formats.

- Two testing methods.
THDPRO.EXE starts out in default mode. In this mode THDPRO.EXE will
attempt to expand the main file and all of it's imbedded files prior to
beginning the virus scan. This method is designed for speed, but can
require a significant amount of disk space. If unable to expand one
of the embedded files, THDPRO.EXE will drop back to the "FALLBACK"
method.
The "FALLBACK" method, extracts and scans each imbedded archive
separately. This method may not require as much disk space (in some cases
it requires significantly less), but will take longer to run. This is the
method used by all previous versions of THD ProScan. The drop to the
FALLBACK method is automatic and only used when space prohibits the use
of the default method.

- Intelligent processing of LHA files.
The handling of LHA files is done in an "intelligent" manner. The file
type is diagnosed to see if it is expandable on a DOS based system. If it
cannot be expanded, it will be CRC tested only. If it can be expanded, it
will be checked for the use of the root directory. If it attempts to use
the root directory, a clone will be built which makes no attempt and the
clone will will be expanded and tested in its place.

- Complete logging of file testing.
All aspects of the test are logged in a file called THDPRO.LOG in
a directory which you configure in THDINSTL. The size of this log
is configurable, and it reports processes and failures.

- Logging of heuristic testing only when suspicious code is found.
It seemed unreasonable to log all heuristic testing, considering that
MOST of the time there are no infections. The logs kept for failures
or for suspicious code are generated by the virus scanners themselves.

- Sysop can opt to NOT test files if they are too large.
During the installation, you can choose to not test files over a given
size. If you choose this, you may pick from files over 1,2,3 or 4
megabytes (1048576 bytes per megabyte). If this option is enabled
and THD ProScan is asked to test a file larger than the "acceptable"
size, it will prompt the sysop for 5 seconds to press a key. (in this
way you can still test these files manually by pressing a key). If no
key is pressed, the file is passed without testing.

Page 22

- 100% share aware and compatible (share.exe is not a requirement)
Before any file is opened by THDPRO.EXE, the presence of share.exe
is determined. If SHARE is loaded, then the file is opened in a
shared mode, so that other processes may also use the files. If
share is not loaded, files are opened in standard mode.
If file access is denied, THD ProScan will wait for up to 30 seconds for
the file to be released. If the file is not released in 30 seconds,
the test is aborted and the file passed. Otherwise, if the file is
released, testing will resume without incident.

- File descriptions can be directly imported into the file data bases. Through
the use of THDPLUS, file comments can be added to the file bases
for users of REMOTEACCESS 2.00(+), Telegard 2.7, Renegade 07-17 and the
many FILE.BBS supported BBS'es. THDPRO.EXE will create a data file with
the necessary file information and then call THDPLUS to make changes.
VENDINFO.DIZ if found will be processed and used regardless of the
presence of the following files. Without a VENDINFO.DIZ these description
files will be prioritized in the following order.
i) FILE_ID.DIZ - if found it will be used.
ii) DESC.SDI - will be used in the absence of FILE_ID.DIZ.
iii) DESC.SDN - will be used if neither of the above are found.
In the event that no description files are in the archive, THD ProScan
will make no attempt to alter the user's description.

- Allows the sysop to use any combination of
SCAN.EXE / F-PROT.EXE / TBSCAN.EXE (1, 2, or all three)
SCAN.EXE is no longer required due to it's memory needs. Instead
you may opt to use any or all of the noted virus testers. Or any
combination of them. However note that at least ONE MUST be used.
Simply tell THDINSTL the full path and filename of the tester(s)
that you wish to use and all selected scanners will be run on
every file. Support for the SCAN 1.x.x series is available through the
proper use of the THDOPT environment variable (explained later).

- Supports "heuristic" testing for suspicious code using F-PROT.EXE
or TBSCAN.EXE.
When testing is done using F-Prot or TBScan, the tests are always
performed in "heuristic mode". This will enable these testers to
find some unknown viruses as well as the known viruses.

- Optionally pass or fail files which contains suspicious code found
by the heuristic testers.
You can choose to consider "suspicious" files as being virus infected
and thereby cause THD ProScan to consider them failed. Normally, I
recommend against this but there are many valid reasons to fail such
files. DO NOT fail these files if your BBS deletes failed files. This is
only optional if SCAN.EXE is used. in absence of SCAN.EXE heuristic
failures will be considered virus infected.

Page 23

- Optionally display a "changed" internal interface.
- Allows the sysop to supply up to 9 user side "interfaces" .
New in version 9.0 is the ability for the sysop to supply up to 9
user side interfaces and 9 replacement corners for the internal
interface. Giving a total of 21 possible remote screens to be
chosen at random during any one test run.
- The file after testing can be time stamped with one of four date
selections.
Original date - Choosing this option will date the finished file with the
same date and time it had at the start of the test.
Current Date - Choosing this option will date the finished file with the
time and date of the completion of the test.
Newest date - Choosing this option will date the finished file with the
time and date of the newest file included inside the archive.
Best Guess - Choosing this option will date the finished file with the
time and date of a calculation of the average date and time of the
five newest files internal to the archive.

- Identifies all archives by their internal signatures.
- Including self extracting archives.
All archive types are recognized by their archivers unique signatures.
Even the self extracting files are done by signature, so the name of
a file will have no bearing on whether or not it is tested. If it is an
archive type which you have configured for testing, it will be tested.
This may be limited by some bbs programs ability to tell THD ProScan
what to test, since some will only pass the file for testing based on
it's extension.

- Allows files to be rejected based on the dates of the files inside the
archives.
You can choose to limit the acceptance of files on your BBS based on the
actual date of the files inside the archive. OR you may choose to limit
them based by how old they are. The difference? You may choose to reject
files older than "3 months" (you choose the age) and thereafter never
update the limit as age is compared to the date of testing.
Or you may choose to not accept files created before "January 1 1990"
(again you choose the date), and files will be failed based on their
"date". Note that the dates referred to here are the date INTERNAL to
the archive and not the archive date.

- Can reject files by name using a "hack list" (HACK****.COL and IDX
files can be read directly).
You can choose not to test files which have specific names. This is
useful for avoiding testing of known viruses/hacks/pirated software.
You can create a list of file names to be rejected or use the
official "Hack Report" files. Or you can mix the two. Files rejected
by this method will be considered to have FAILED testing.

- Support for remote ansi or ASCII as determined by auto ansi detect.
The presence of ANSI on the remote side is automatically detected.
If ansi is found, it is used. Otherwise output is plain ASCII.

Page 24

- Suppression of remote output through the use of "comport 0".
- Suppression of remote output through the use of a user defined comport.
Remote output can be suppressed when run locally (to avoid sending
the ASCII output to an unsuspecting user). It can also be suppressed
when told to send to a "legitimate" comport. (Not recommended except
in some very odd circumstances)
- Protection for "ZIP" archives which have a valid "AV".
Zip files which contain a valid "AV" (Authenticity Verification)
will not be modified, since this would corrupt the "AV". These
files will be reported in your THDPRO.LOG so that you may see
if they have legitimate "AV"'s. All "testing" will be performed as
usual.

- Strips comments from all archives before any processing is done
Ansi bombs are avoided by stripping the comments of all archives
without allowing the comments to be displayed to the screen. This will
protect your system from ansi bombs while THDPRO is running.

- Recreates full directory structure "from" the temporary directory,
Although the process involved is very complex to explain, if an
imbedded archive exists in an archive it WILL be found and tested.
No matter how many subdirectories or other imbedded archives must
be searched in order to find it. This is limited by the types of
archives supported by your system. But if it can be found with
what is configured...IT WILL BE.

- Does not allow the "overwrite" option on any of the archive types.
(stops some forms of "hacking")
Some upload testers use the "overwrite" option to avoid having
the archivers prompt the sysop for input. THD ProScan does not allow
overwrites of any kind. The reason being that one of the most popular
methods to corrupt your system was to create archives which would
expand over your system files. THD ProScan will not allow this.

- Add loaders to the main archive.
THD ProScan can (if configured) add loaders (insert files into
an archive).

- Insert your file comment
- Insert a specific comment depending on the location of the file.
THD ProScan can add file comments in a number of ways. It can be told to
add a single comment to every file tested. OR it can select at random from
list of such comments. OR it can insert a comment based on the file's
location at the time of testing. The options are further explained in
the "COMMENT" portion of this document.

- Configurable file specific text in file comments.
Key words can be used in file comments to be replaced by file specific
information. Please see the section on Configurable comments later in this
documentation.

Page 25

- Will use one of as many as three drives to test files by searching in
order to find enough available space on one of them.
THD ProScan will search up to three drives (as selected in THDINSTL) to
find one which has enough free space to expand the archive to be tested.
Testing will only be done if sufficient space is found.

- "Intelligent" installation which will attempt to do as much of the
installation for you as is possible.
The installation tries to find any file which it prompts for by name.
If it finds a file by that name it will ask you if you want to use
it and optionally allow you to insert the path to a different file.
(in this way you are not limited as to the location of your utilities)

- Dos shell from the installation.
While running THDINSTL, online help is available by pressing F1, a dos
shell is available by pressing F2. and the installation can be aborted
by pressing "CTRL-C".

- The configuration of THDPRO.EXE (from ver 6 or higher) can be used
automatically.
THDINSTL can import the configuration of any previous version of
THDPRO.EXE (6.0 or later). You can then modify that configuration
to suit your needs with this version.

- Will Virus scan all file types regardless of types configured.
If THD ProScan is asked to test a non supported archive or a "normal"
file, it will simply virus scan the file. In this respect it is
a good idea to have all uploads tested by THD ProScan.

- Remove unwanted files from the archives tested (using name and/or CRC).
Files can be removed from archives based on their name, their CRC
or both. A more complete explanation is available under the heading
"CRC MODE".

- Option to hang up on users who upload viruses.
Sysops who are tired of users not virus scanning their software before
upload may choose to drop carrier on those offenders.

- Option to reboot after a viral detection.
You may also reboot after a viral detection. Although usually not
necessary, It does make some people feel better.

- THD ProScan also supports a "fall back" to the original processing
method. If an imbedded archive fails to expand for testing, THDPRO.EXE
will fall back to the old method which extracts and tests each
imbedded archive separately (thus requiring less space).

- No Known ways to "alter" the operation of your BBS through it's use.
As stated this tester is designed with security in mind. I have done
everything in my power to use the options best suited to that purpose.

Page 26

- basic operation -
-------------------

THD ProScan Version 10.0 has 3 distinct modes of operation. They are TEST
MODE, CRC MODE, CONVERT(-ONLY) MODE. Note also that conversion can be done on
the fly during testing, although this is currently only recommended for
persons running RA/TG/RG or FILES.BBS oriented BBS packages. (And only those
specific versions as listed below). Future versions and/or add-ons may add
the necessary functionality for other BBS'es to use this feature as well.
Each of the three modes is explained below.
There is no way to change the "way" this scanner operates (without
hacking it) for a good reason. Even some of the most noted upload testers
make a very serious flaw in the way they handle uploaded archives. By not
allowing the user to change these settings, I avoid someone opening one of
those "all too evasive" back doors and hacking into your system. So please
don't ask me to change the parameters that this program uses. They are that
way for a reason. (I will of course be happy to change any that prove to be
incorrect or cause "real" problems).

- CRC mode -
------------

"CRC MODE"
----------
Beginning with Version 9, THDPRO.EXE can also perform another function.
THDPRO.EXE can also create and/or update a CRC list (for use with the file
removal function). The proper syntax to invoke the CRC mode is...

C:\UTILS\THDPRO.EXE CRC D:\WHATEVER\*.*
{This would calculate the CRC values for all files in the
directory "C:\WHATEVER" and add them to THDPRO.CRC. Wildcards are
accepted in CRC mode only.}

The use of CRC mode is intended specifically for use by those wishing to
remove files from archives based on the file's CRC value. In order to use
this ability, you must have chosen to use the CRC method of file removal
during the installation.
To understand why you might choose to use CRC removal, you should
understand that a CRC is a calculation based on the "bytes" of a given file.
No matter what the file name is, the file will always have the same CRC.
(unless it is modified internally)
You can use this to your advantage. If you constantly get files from a
BBS which always adds the same file to each of it's archives but has used
different names to avoid having them "easily" stripped. You can have these
files removed by using their CRC value rather than their name.

Page 27

For example, Rose Media in Toronto adds files called "READ.ME" to each of
it's archives. If that file exist, it is added as "READ-ME.". For obvious
reasons you might see why you wouldn't want to remove these these files by
their name. By running "THDPRO.EXE CRC READ.ME" on those files, THD ProScan
will calculate the CRC of that file and add it to a list of CRC values
(THDPRO.CRC) and thereafter remove those files regardless of their name while
not risking the removal of legitimate "READ.ME" files.
You must (of course) have a copy of the file for THD ProScan to be able
to calculate its CRC value. The format of the list created is outlined in
detail in the section regarding file formats, later in this document. The
THDPRO.CRC file is generated and updated by THD ProScan through use of CRC
mode and never need be dealt with manually. This option is not active by
default and must be selected via the installation.

- Conversion and Convert-Only mode -
------------------------------------

THD ProScan Version 9.0 introduced a fully functional archive convertor.
This version can convert from any of the supported archive types to any of
ARJ/LHA/RAR/SQZ/UC2/ZIP file formats. It can be used interactively during
testing OR as a standalone conversion utility.
What makes this convertor better than every file convertor I have seen is
the simple ability to convert as well as THD ProScan tests. Quite simply,
this convertor will find archives that other convertors and testers simply
never see. In this respect it is the most complete archive convertor.
(*Note that some convertor with this ability may exist, but I have never seen
nor heard of it).
This conversion mode offers special features to users of ...

RemoteAccess 2.00 (or compatible)
Telegard 2.7 (or compatible)
Renegade 07-17-93 (or compatible)
FILES.BBS (normal and SBBS extended format)
-Note that compatible refers strictly to the file data base
structures for each BBS type and that future versions of these
BBS softwares are unlikely to remain compatible.

Renegade and Telegard sysops might wonder why they should use this
convertor to convert their archives, since their BBS already has provisions
for file conversions. The answer is simple. Flexibility and full conversions.
This convertor offers a number of conversion levels (as well as the ability
to create protected archives) and does the most complete conversion possible.
This is something these two BBS packages are unlikely to offer in the near
future.

Page 28

Version 9.1 adds a parameter for conversion mode which will stop THD from
deleting the original archive after conversion. The "/KO" switch (Keep
Original) will only be useful for BBS types which require the original
archive to be present at the end of conversion. TG/RG need this as they will
attempt to delete the original after a conversion and choke when it is not
there. Other BBS'es or processes may require similar measures.
Conversion mode is invoked by use of a "convert indicator". These
indicators are as follows.

TOARJ - TO CONVERT TO ARJ FORMAT
TOLHA - TO CONVERT TO LHA FORMAT
TORAR - TO CONVERT TO RAR FORMAT
TOSQZ - TO CONVERT TO SQZ FORMAT
TOUC2 - TO CONVERT TO UC2 FORMAT
TOZIP - TO CONVERT TO ZIP FORMAT

If any of these indicators are appended to THDPRO.EXE's command line,
then before a file comment is added, the file is converted to the type
specified. Conversion will of course only be done if the conversion type and
the original archive type are both configured in THDPRO.EXE for testing.

To use this as a stand-alone convertor, you must first configure
THDPRO.EXE (using THDINSTL.EXE) and when invoking the convert line include
the switch "/CO". So the command lines would be as follows...

THDPRO.EXE C:\TEST\TEST.ZIP TOARJ
- this would test "TEST.ZIP" and thereafter convert it to an ARJ
archive.

THDPRO.EXE C:\TEST\TEST.ZIP /CO TOARJ
- this would convert "TEST.ZIP" (without testing) to an ARJ archive.

The convert indicators have a few variants. any of the convert indicators
is capable of converting on 5 different levels.

The five levels of conversion are as follows..

default (no changes to the indicator)
- Using the default level files will be converted ONLY if they have
the correct extension for their archive type (lzh for LHA etc).

LEVEL 0 (add a "0" to the convert indicator { TOZIP0 })
- will convert ONLY the main archive (no imbedded conversions).

LEVEL 1 (add a "1" to the convert indicator { TOZIP1 })
- will convert ONLY files which have the correct extension for their
type AND are NOT the archive type to be converted to.
This level will not repack a zip when converting to zip.

LEVEL 2 (add a "2" to the convert indicator { TOZIP2 })
- Will convert files if the have the correct extension OR the
extension "EXE".

Page 29

LEVEL 3 (add a "3" to the convert indicator { TOZIP3 })
- will convert any testable archive type regardless of it's extension
or present archive type. This is also the ONLY level which will
convert "AV" protected "ZIP" files or "secure" "ARJ" packets.

** NOTE **
"TOZIP3" would be used to convert all supported archive types
to the ZIP format without regard for their extension, present archive
type, or AV protection.

"TOARJ2" would be used to convert any supported archive type with the
proper extension or an extension of "EXE" to the ARJ format.

"TOSQZ1" would be used to convert only archive types other than SQZ,
and ONLY if they have the correct extension for their current archive
type.

"TOZIP0" would be used to convert only the main archive while leaving
all imbedded archives in their original archive format (for compatibility
with some installation programs which will require a specific format to
install).

"TOLHA" would be used to convert ALL supported archive types to LHA
format only if they have the correct extension for their current type.

The above switches apply in both test mode and Convert-Only mode.
** end note **

When run in Convert-Only mode (/CO) THD ProScan will still strip the
comment and add your proprietary comment. This is done to ensure that ansi
bombs are not loaded during the conversion (note that when THD uses the
window effect, ansi is not supported. However on some machines this window
may not be supported and the standard console, which does support ansi, will
be used). This feature could be used to replace comments only by using level1
and converting to the same archive type as the original (since no conversion
would actually take place).
The conversion feature of THD ProScan will not cause THDPRO.EXE to exit
with a non-zero errorlevel (in test mode). If testing is passed and
conversion fails, the errorlevel returned will be "0".
In Convert-Only mode, THDPRO.EXE will return "0" for a successful
conversion and "1" for an failed conversion.

At the completion of a successful conversion, the original file is
deleted. IF you are running RemoteAccess 2.00 (or equivalent) and have
configured THDPRO.EXE to add file descriptions, then the name will be updated
THD ProScan can also update the names in the TG and RG and FILES.BBS
bases following a successful conversion. HOWEVER note that no name changes
will be done for TG/RG when the file is the result of a batch upload. It
cannot be done because the file name is not inserted into the BBS databases
until after a successful file test.

Page 30

If you are not running one of these BBS types then descriptions and
filenames will NOT be updated in your BBS program's data bases.
It is therefore suggested that unless you are running one of these BBS
types DO NOT CONVERT DURING TEST MODE. Instead, use the Convert-Only mode
(after testing) to convert your files. (This does not apply if you are using
the convertor to repack archives of the same type.)

As a side note, all conversions are done in maximum compression mode for
any archive types which support it.

Sysops of the supported BBS types should convert during testing ONLY if
they have configured THD ProScan to acknowledge that they are indeed running
one of the supported BBS'es. These sysops can use the following command line.
(Note that this only applies where the filename will be in the base to be
modified. THD does not add new entries to any of the supported types.)

THDPRO.EXE {drive:\path\filename.ext} {convert indicator}

The following command line is recommended for BBS type's which support
single stage conversions.

THDPRO.EXE {drive:\path\filename.ext} /CO {convert indicator}

For BBS programs which depend on 2 stage conversions, I suggest that
stage 1 run "THDPRO.EXE" with no parameters (this will return an errorlevel
of "0" allowing the program to move to the second stage). Then use the
command line above (for single stage conversions) for stage 2.

One final ability of "conversion mode" is the ability to create "SECURE"
packets with ARJ and/or "AV" packets with PKZIP. If you have a registered
copy of one (or both) of these programs, you can opt to have THD ProScan
create these "protected" archives.
This will be done through the use of environment variables.

For "AV" protected zip archives you must set an environment variable of

THDZIP=TRUE
or
THDZIP={drive:\path\to\your\AVEXTRA.TXT}
This entry will be required if you wish the AVEXTRA.TXT information
inserted into your finished archive.

If THD ProScan finds this variable defined as above it will send the
command line to create an "AV" protected ZIP file (you must also configure
THD ProScan to use the registered version of PKZIP)

Page 31

For "Secured" ARJ archives you must set an environment variable of

THDARJ={drive:\path\to\your\security.key}

DO NOT include ANY switches... JUST the path and filename of your
security key file. THDPRO.EXE will supply the necessary switches to use the
security key. Be sure to include the full drive path and filename in this
variable. (And THD ProScan must of course be using the registered ARJ).

- Test mode -
-------------

The operation of the scanner could not be simpler. You need simply run
THDPRO.EXE while supplying it with the FULL path and filename of the file to
be tested. I STRONGLY suggest that you also supply the full path and filename
to THDPRO.EXE as well (not necessary but it too can help to reduce hacking).
So the proper syntax would be as follows...

C:\UTILS\THDPRO.EXE D:\NEWUPS\TESTFILE.ZIP
{Where THDPRO is located in "C:\UTILS" and the file to be tested
is "TESTFILE.ZIP" which is located in "D:\NEWUPS"}

The tester optionally accepts a comport # as a parameter. That parameter
can be a single digit between 0 and 8. This parameter is the number of the
comport to be used for remote output and is only necessary if you wish output
to a comport other than the one specified during the install. Using "0" will
not send any remote output. Numbers between 1 and 8 will send to the comport
of the corresponding number. If run without parameters, It will simply
display the correct syntax. ERRORLEVEL 0 will be returned in any event where
a file is not tested (to avoid the BBS software deleting files due to

improper syntax).

While geared toward the testing of archived files, The tester will virus
scan any file type for which it is not configured. So having your BBS use
this tester to scan "EXE" and "COM" files is an excellent idea. (The addition
of "self extracting" testing makes this a good idea as well.) The passing or
failing of such files will be based solely on the result of the scan and no
other operations will be attempted on the file aside from the heuristic scan.
Any valid filename can be passed if you wish it to be "scanned". I suggest
that you configure your BBS to "test" all files with "executable" extensions
as well as any "OVL/OVR" files.
IF your BBS allows it, testing of all uploaded files is recommended.

Page 32

This tester will exit with one of 10 DOS errorlevels.
ERRORLEVEL 0 - All tests were passed satisfactorily.
- The scanner will also exit with this errorlevel under
a number of "odd" circumstances which will avoid having
a file fail due to some unforeseen difficulty.(This
includes failing to supply a proper path to the file to
be tested and a number of other small things)
ERRORLEVEL 1 - An imbedded archive failed the CRC test.
- In Convert-Only mode this indicates a failure to convert.
ERRORLEVEL 3 - The file has failed due to the date restriction.
ERRORLEVEL 4 - The file was failed for being on the Hack list.
ERRORLEVEL 5 - An imbedded archive failed the CRC test due to a disk
read error. (used by some BBS programs to determine if
the file is to be resumed later.)
ERRORLEVEL 10 - A virus was detected during the "scan" (or optionally,
the heuristic scan).
ERRORLEVEL 15 - The main archive failed the CRC test.
ERRORLEVEL 103 - File access was denied for longer than 30 seconds
resulting in a premature abortion of testing. (Share
supported but not required.)
ERRORLEVEL 233 - CRC testing was attempted on a nonexistent file (file
existed at start of testing and was deleted prior to
to the CRC calculation attempt - near impossible error)
ERRORLEVEL 255 - A security breach. This error will occur any time a
needed executable file fails the CRC test prior to
execution. This will occur only with secure mode active.

** note - The sysop view is NOT identical to the user view and does not
necessarily fully reflect what is seen on the user's side. It was deemed
unnecessary to provide "complete" compliance with the user view, given
the additional information available through the sysop view.

- Frequently asked Questions -
------------------------------

Q. How do I register this fine tester?
A. Registration in the traditional sense is not required. However, if you
really wish to do something for the author, The following is what I
would like to see. Make the file FREE on your BBS (No Points/No Ratio).
Make it FREQ'able if you are part of a net. If you are on a BBS that
doesn't have it available, upload it there (ESPECIALLY foreign
countries). If you have comments or suggestions, send them to me
through Fidonet at 1:259/423 (attention David Muir). And above all,
encourage people to use it.

Page 33

Q. Do You Accept Donations?
A. Beginning with Version 8, Yes. Prior to this version, I have fought off
the urge to ask for Donations. However, comments from many people
have made me reconsider. People wishing to donate to the...
"Dave Needs a New Computer Fund" or the "THD Deserves an AT Fund"
can send bank notes payable on a Canadian financial institution to...
David Muir, 198 Leyton Ave, Scarborough, Ontario, Canada M1L 3V6
Please note that any money sent will be considered a "GIFT" and
is not "registration". THD ProScan remains free.

Q. Why do all the files fail the SCAN?
A. As noted in another area, SCAN.EXE by McAfee is becoming more and more
memory intensive. As a result, persons who's BBS programs are not
swapping their memory are finding that SCAN won't run effectively.
If SCAN.EXE does not have sufficient memory to run, it returns an
error. THD interprets an error from SCAN as a viral infection. To
avoid this, either avoid using SCAN.EXE or make sure that your BBS
(and any other resident programs) are leaving enough memory to run it.
Usually having your BBS swap its memory, frees enough to run Scan.

Q. Why is the UC2 format not supported?
A. It was my intention to support the UC2 format. However, since UC2 does in
fact not work on my machine (at all), I am unable to properly test the
options from a security point of view. I'm also not terribly pleased with
it's use of batch files to perform various functions (while I suspect I
could work around these, it makes no difference if the archiver itself
does not run on my system). For those of you who think this is selfish,
I apologize, but I will not support a utility of which I cannot test the
security. If and when another release of UC2 is made, I will again try to
test it. Until then, the archiver will not be supported by THD ProScan.

Q. THD ProScan runs fine locally but doesn't send any remote output, why?
A. A common mistake for people is to not read the requirements of a given
program. In this case the likely solution is to install the required
Fossil driver and/or select the proper comport in the installation.

Q. Can I stop THD from Moving/Renaming files?
A. YES. With version 6 - 9, THDINSTL will accepted a parameter of "/NOMOVE"
and altered the THDPRO.EXE file to not perform the move/rename
operation. (In Version 10.0 this option must be toggled from the final
configuration screen, since /NOMOVE is no longer supported.)

Q. Why are the version numbers always ".0"?
A. I have decided to stick with whole numbers for each new release. The
"." is reserved for use in patch files as was the case with version
5.1. At least this way, when you see version 7 you will know that there
have not been 100 "point" versions before it. Also each version number
used is accounted for in the HISTORY.DOC, as are all the bugs found and
fixed to date.

Page 34

Q. Can I change the options used by SCAN.EXE or the archivers?
A. NO!

Q. Why not?
A. The reason for making this tester in the first place was because of the
way (literally all) other upload testers handled the options. Those
who left them configurable, handed the BBS user keys to your system, as
did most of those who did not let you configure them. The options I use
in THD Proscan are the ones I would use IF I ran a BBS. THD is the ONLY
tester I could not find a simple way to break into a BBS. If I allow
the options to be modified, Then I allow people who do not know the
methods used to break into BBSes a chance to turn my tester into a back
door.

Q. You always emphasize the "SAFE" aspect of this tester, Is it really
that safe?
A. I cannot say that there is no way to get past it. However, I can say
that I have not been able to do so and have never heard of anyone doing
so. I have however tested a number of other upload testers and been
successful in EVERY attempt at getting past them. I am not saying that
it is impenetrable, only that I don't know any way. But be warned...
"Locks are for honest people. Real thieves can break into almost
anything."

Q. Why do I even need an upload tester?
A. You don't... It is simply a convenient way to test files while the user
is online. If you wish to test all files manually that is your option.
If you wish to trust another tester, that too is your option. But if
you are at all unsure as to the security offered by other testers, use
this one. If you find a back door in my tester, tell me. I will fix it.
If I can't, I will stop programming it.

Q. What options DOES this tester use for the archives?
A. Basically it uses those options required to recreate all subdirectory
structures without allowing the use of the root directory. It does not
allow any overwrites.

Q. Why no overwrites?
A. Many testers allow overwrites as a way to stop archivers from prompting
the sysop, I simply create an environment where this will never occur.
Allowing overwrites could let a virus get past the tester by having two
files with the same name, My tester will expand both those files and
test both those files, while some other testers will let the virus free
file overwrite the infected file and lose the ability to detect the
virus in the first one.

Q. So no viruses get past this tester?
A. No viruses that can be detected by your version of McAfee's Virusscan.
Unknown viruses or viruses not yet detectable by your version of
SCAN.EXE may still get by, but they are few and far between. Also in
this version the heuristic testing can aid in detecting unknown
viruses.

Page 35

Q. The Ansi screen takes too long. Can it be aborted?
A. No. It is interactive and must complete in order for the indictors to
make any sense. Users not wishing to see it could disable their own
ansi, thus causing the ASCII output to occur.

Q. Sometimes my users don't get the ansi screen. Why?
A. The program allots a given amount of time to detect ansi on the remote
system. If the remote does not respond in that time, it is assumed that
they have no ansi capability. This detection time has been revised a
number of times but will never guarantee that the remote does or does
not have ansi active. If a user shells to use a protocol, then the
terminal cannot answer the detection sequence until it is again active.
In the meantime THD could timeout on the detection and send ASCII
instead. Work is still ongoing to optimize that time span to allow most
terminals to regain control.

Q. My multinode BBS can pass the NODE number but not the port number.
How do I get THD ProScan to understand which "PORT" to use?
A. The easiest way to do this is to run THDPRO.EXE from a batch file.
Have your BBS pass the "NODE" to the batch file and then have the batch
file call THDPRO.EXE with the appropriate PORT number for that node.
The following example would work for a BBS with node 1 using com2 and
node2 using com3.

@echo off
CTTY CON
IF "%2"=="1" C:\THD\THDPRO.EXE %1 2
IF "%2"=="2" C:\THD\THDPRO.EXE %1 3

^node number use comport^

Page 36

---------------
- THDPLUS.EXE -
---------------

THDPLUS is a file database interface which supports FILES.BBS (standard
and SBBS extended formats), Telegard 2.7, Renegade 07-17 and RemoteAccess 2.00
and 100% compatible file bases. It processes a record created by THD ProScan
Version 10.0 (or later) called TESTINFO.DAT.

- command line syntax -
-----------------------

- ? -
Running "THDPLUS ?" Will show an identification screen and instruct the
user to run without parameters.

THDPLUS.EXE
- process the last 5 entries normally (entries properly processed are
marked as "processed" in TESTINFO.DAT).

THDPLUS.EXE /ALL
- Process all entries normally (entries properly processed are
marked as "processed" in TESTINFO.DAT).

THDPLUS.EXE /REMOVE
- Process all entries normally, and mark all entries as "processed" in
TESTINFO.DAT, regardless of success or failure to import.

- Requirements -
----------------

TESTINFO.DAT must be located in the same directory as THDPLUS.EXE (which
is generally the case since THDPRO.EXE will create it in it's own directory
and it will only run THDPLUS if it too is that directory.)

- Operation -
-------------

When THD imports a file into the TG file bases it will check the first
character in the description. If the first character is a letter or number,
THD will enter the description as "normal". If however the first character is
not a letter or number, THDPLUS will indent the first line by 5 spaces. The
hope is that descriptions which use "box" figures etc will be aligned by this
process (to preserve the "box" appearance).
The exception is that the following characters are considered to be valid
"letters".
;:<>[email protected]
The reason these symbols are counted as "letters", is simply due to their
place in the ASCII table (they occur between the valid numbers and letters).
Given that few descriptions are likely to begin with these characters (and
almost none that do would likely be representative of "box" figures), it was
simply easier to ignore them than to make exception for them.

Page 37

A "logic" is used to determine the lines for each of the fields in TG/RG
description which "could" on occasion backfire, resulting in inappropriate
looking descriptions. (I haven't run into any problems using the current
logic, but this logic was based only on examples I have available to me).

The basic logic is that (for TG/RG) a file description containing CR/LF
will be considered to be a valid EndOfLine(EOL). Thus THDPLUS will strip any
CR/LF and end the line. If it does not encounter a CR/LF it will back up to
the nearest space character and end the line there. Where no space occurs in
the line, THDPLUS will split the line into 2 lines with the above conditions
(at 50 characters per line).
THDPLUS can be run from the commandline to process unprocessed
TESTINFO.DAT files. TG/RG for instance should use this where "THDPRO DIZ" had
previously been recommended. As a side note, to maintain compatibility with
earlier versions, "THDPRO DIZ" will still function, but it will do so by
calling THDPLUS thus rendering it actually slower than simply running
THDPLUS.EXE.
The only possible advantage to doing this is that THDPRO.EXE will verify
that it is running a PainSoft created version of THDPLUS where calling it from
a commandline does no such verification (in absence of a legitimate PainSoft
file THDPRO.EXE will do nothing more than show an opening screen and exit).
No special considerations are given to the other BBS types. They are
imported "as is" into the appropriate file bases.

Also TG sysops should be aware that THDPRO.DIZ will still work, but
simply running THDPLUS.EXE will be faster. All thdpro.diz files present on
TG systems should be processed prior to running this new system as the
THDPRO.DIZ file is no longer recognized or processed with this version.

- TESTINFO.DAT -
----------------

- What is it? -

TESTINFO.DAT is a new data file that will be created by THDPRO.EXE when
any BBS type (aside from "0") is selected during installation. The file
contains a multitude of information which can be used by third party
programmers who wish to interface THD with their own BBS. THDPLUS uses this
file to interact with the currently supported BBS types. The structures are
included in the archive for programmers who might wish to make use of it.

- Why is it? -

The format was created for two reasons. First it offered an opportunity
for me to remove the description code from the actual THDPRO.EXE file
(resulting in lower overhead for those whose BBS'es not yet supported).
Secondly it gives others a chance to interface THD with their BBS programs
via third party utils. The file is formatted so that these third party
utilities can get the information they need in a quick and efficient manner.
By moving these these structures out of THDPRO.EXE it also allows me to
create specific interfaces for other BBS types without needing to update the
entire THD package.

Page 38

- How does THDPRO use it? -

THD ProScan uses it by creating the file during it's running time,
and calling THDPLUS to process the file. THDPRO.EXE performs the maintenance
(removing processed records and or deleting unneeded files), while THDPLUS
records in the file when it has been processed. Under all normal
circumstances, THDPRO.EXE will run, process and remove the file, prior to the
completion of the test.
However with TG/RG where the file will not yet be present in the data
base, this file will be updated and left on the disk for processing on the
next run (or manually by running THDPLUS).

- How can others use it? -

The file itself is designed with third party programmers in mind (THD
makes use of only a very few fields). The information recorded in this data
file can be accessed by third party programmers by having the user set his BBS
Type to "O" (Other) in the installation. THD will then process the record and
the third party utilities can extract the needed information from that record
and perform file base updates based on that information. (sounds confusing,
but programmers who look at the structures ought to be able to figure it out
).
The file is designed with programmers in mind and does not contain data in
any form useable by non-programmers.

Page 39

---------------
- THDTERM.EXE -
---------------

- General Information -
-----------------------

This is an excellent tool for sysops as well as users. For a sysop, it
will allow them to use THD ProScan Version 5+ with their fossil active
without attempting to send output over the modem. Thus making it the perfect
tool for a sysop or user to test his/her downloads.
Compressing the executable is recommended for space purposes and has no
adverse affect on the operation. However, Note that it must be configured
before it is compressed and that it cannot be configured or reconfigured in
it's compressed state.
For users in general it provides the same security that many sysops have
become accustomed to.
Needless to say, THDPRO.EXE will need to be configured properly before
this program will be of any use.
Reasons for failure are not reported by this program, but all such
instances should be accounted for in your THDPRO.LOG created by THD ProScan.
With the exception of possible runtime errors, this program will ALWAYS
exit with errorlevel "0". The only indicators left by this program will be
the presence of the tested files in the Pass or fail directory. In keeping
with the tradition of THD ProScan, this program will NOT delete files for any
reason. Files are left for you to do with as you choose.

This program was outwardly inspired by THDPRO TERMINAL EXTENSION. A
program created for the same basic purpose as this one.

- command line syntax -
-----------------------

THDTERM accepts 3 parameters. Default is to run THDTERM with no
parameters to process "as configured".

- 0-8
A single digit from 0 to 8 which represents the comport to which it
should have THDPRO.EXE send it's output. the default is to use "0"
which will cause THDPRO.EXE to run in local mode. A comport is always
sent to THDPRO.EXE, even if none is supplied.

- /C (configure)
If run as THDTERM.EXE /C, This will cause THDTERM to enter
configuration mode. Configuration mode simply prompts you for 4
things and configures the executable file to use those values from
that point on. Configuration mode is the default the first time this
program is run, and this switch should be used if you wish to
reconfigure it at a later time.

Page 40

- /S (source directory)
Running THDTERM.EXE /S {drive:\source\dir\to\test} will cause
THDTERM to process the supplied directory instead of the internally
configured directory. Also, when run with the "/S" parameter, moving
of "passed" files is suppressed, and only those files which fail are
moved (to the fail directory).

- Requirements -
----------------

THDTERM requires a configured copy of THDPRO.EXE and about 2k of memory
above that which will be required by THDPRO.EXE. As well, since it runs
THDPRO.EXE, it also requires the same things required by that program. If you
can run THDPRO.EXE normally and have an extra 2k of memory, then you have met
the requirements.

- Configuration -
-----------------

The first time THDTERM.EXE is run it will automatically prompt you for 4
things. (no parameters need to be supplied on the first run)
You will be prompted for the following...

Path to THDPRO.EXE
Path to the directory containing the files to be tested.
Path to the directory for passed files.
Path to the directory for failed files.

ALL of these paths MUST exist prior to the configuration. As mentioned
above it can be reconfigured by running "THDTERM.EXE /C".

- Function -
------------

Functionally speaking THDTERM doesn't actually "do" a whole lot. It's
purpose is entirely single minded. It is designed to replace a simple dos
"for..in..do.." statement. Meaning that it runs THDPRO.EXE on each file in
the default directory (or alternately the supplied "source" directory).
The advantage to using THDTERM is singular. It runs THDPRO.EXE on each
file, and moves it (in default mode) to either the pass or fail directory,
depending on whether it passes or fails testing by THDPRO.EXE.
The singular advantage to this method is that it will never duplicate a
test as might be seen by a dos for..in..do.. statement and it provides a
little error checking prior to moving any files.
Basically it is a glorified batch file.

Page 41

- Features -
------------

None to speak of. It serves a very basic purpose in a very basic way.
This program should be used where you might like to use wildcards with
THDPRO.EXE but are unable to.

- Basic Operation -
-------------------

Basic operation is achieved by configuring the program and running
THDTERM.EXE. This will cause it to run THDPRO.EXE on each file in the default
(or alternately the "source") directory. Files will be "moved" to the
directories internally configured depending on whether THDPRO.EXE passes or
fails them.

- THDTERM and Filedoor -
------------------------

THDTERM now accepts a comport as a parameter. As with THDPRO.EXE, the
comport must be the last parameter and must be a number between 0 and 8. If
supplied with a comport, THDTERM will tell THDPRO.EXE to use that comport
instead of "0" which it uses by default.
This modification will allow Filedoor users to use THDTERM to run
THDPRO.EXE while still sending the remote output to the user. Those sysops
should have their exitafteruploads command as follows.

ExitAfterUpload1 C:\THDPRO\THDTERM.EXE /S $U$P $M$N

I also recommend that the "exitmask" not be defined and that THDPRO.EXE
be expected to test ALL uploads.
Note... I do not use Filedoor myself and have based the above strictly on
the documentation for that program. Some modification may be necessary.

Also note that, newer versions of filedoor may not work as described here
and may in fact be able to pass the filename as required by THDPRO.EXE.
Versions capable of passing the filename should use THDPRO.EXE for this
purpose and not THDTERM. Use THDTERM only in those instances where file names
cannot be supplied.

Page 42

---------------
- THDDEMO.COM -
---------------

- Purpose -
-----------

THDDEMO.COM serves two purposes. The first is to show you the user side
view of what THDPRO.EXE does from the remote perspective. This can be
accomplished by running THDDEMO with no parameters. When run, it will
randomly choose and display one of three internal screens along with an
"emulation" of how that screen changes from the remote point of view during
an actual test.
The second purpose is to give you a preview of what your custom ansi
screen will look like to the remote user. The makeup of custom screens is
discussed below in the section regarding THDPRO.AN? and PAINSOFT.AN? files.
THDDEMO.COM can be used to preview your ansi with the THD test screen.
Use this to see if your ansi will be displayed correctly to the remote users.
Typing "THDDEMO.COM" will show you the "traditional" THD Ansi screen. Typing
"THDDEMO.COM" followed by the path to YOUR ansi file will show you what your
ansi will look like to the remote user.
THDDEMO.COM is purposely crippled to not properly display ansi which
exceeds 70 characters per line. This is to ensure that your ansi will remain
compatible with the majority of user's systems. If your ansi looks fine
through the demo, it will almost definitely be fine on the remote end.

THDDEMO accepts a filename to be displayed as a remote user would see it
during operation. If the file is "PAINSOFT.AN?" (where the ? is any
character), the file will be displayed as a PAINSOFT formatted file. Any
other filename will be displayed as a THDPRO file.
The differences between the two formats are discussed in detail below.
When testing a PAINSOFT formatted file, THDDEMO accepts /C as a parameter
(optionally) which allows you to view the various the colour settings of the
THD header portion of the output. This option is better explained in the
PAINSOFT files category below.

- ANSI files -
--------------

THD ProScan has direct support for two types of sysop supplied ANSI.
The first is an ANSI CORNER. An ansi-corner for the purposes of this
program will be considered a non-interactive ansi which will be displayed
during testing to the remote user in the upper left corner of his/her screen.
It can be 35 characters wide and 16 characters high.
Files of this type will be named THDPRO.AN?, where the "?" represents a
number from 1 to 9.

Page 43

The second ANSI is a full screen interface. It may use the entire screen
EXCEPT for the top two lines which are reserved by THDPRO.EXE for self
identification purposes. This file is not a "true" ansi screen in that it
will contain an ansi image and a number of "interaction lines" to be sent as
required by THDPRO.EXE. These files will be called "PAINSOFT.AN?", where the
"?" represents a number from 1 to 9.

First, you must understand that THDPRO.EXE will search for these files in
numerical order and as soon as one is not found, it will be assumed that no
higher numbers exist. That is to say that if THDPRO.AN1 does not exist,
THDPRO.EXE will NOT search for other THDPRO.AN? files. If it finds THDPRO.AN1
and THDPRO.AN2 but not THDPRO.AN3, it will stop searching and assume there
are only the two "THDPRO.AN?" files to choose from. It will then begin a
search for the "PAINSOFT.AN?" files using the same rules.
Also, these "ANSI" files will ONLY be found IF they are located in the
same directory as THDPRO.EXE. (that is, the copy of THDPRO.EXE that is
actually performing the test). If they are not located in the same directory,
THDPRO.EXE will simply assume that they don't exist.
These (up to 18) additional files will be displayed at random along with
the 3 original screens internal to THD ProScan.

Ansi output (PAINSOFT.AN? and THDPRO.AN? files) should ALWAYS be tested
using THDDEMO.COM before being used. THDDEMO will show you EXACTLY what the
user will see and aid you in fine tuning your ansi files.

SAMPLES OF BOTH OF THESE TYPES OF SCREENS ARE INCLUDED IN
"THDANSI.ZIP"

- THDPRO.AN? files -

Your THDPRO style custom ansi's can use the top/right corner (a box 35
characters wide by 16 high). That portion of the screen will be left
untouched when the test portion of the ansi is displayed immediately
following. The acceptable co-ordinates for your ansi are bound by position
"1,1" and "16,35". The rest of the display will be used by THDPRO.EXE.
The ansi "line length" cannot exceed 70 characters per line, or they will
NOT be displayed. The total number of lines is not important.
Note that the "Registered to BBSname" message is NOT displayed to the
remote when a user defined ansi is used. This is done to free up that space
for your use. You should keep that in mind when designing your ansi corners.

Page 44

- PAINSOFT.AN? files -

First a note. The use of PAINSOFT.AN? is a delicate and involved process.
If you do not understand the workings of ansi drawing (and the code itself) I
suggest you not even attempt to use this file. This file will be a "complete"
ansi test screen and NOT an ansi corner. It will contain a main body ansi
screen, followed by a number of "data" ansi lines that will be displayed as
discussed below. The format for a usable ansi of this format will follow the
following conventions.
IT must not use the two top lines of the screen. These are reserved by
THDPRO.EXE and will be rewritten immediately following each section of ansi
from the user's file. In this way it will never be over written by the user's
ansi.
The first "section" of the ansi file should contain the basic screen
image which is to be sent to the user BEFORE testing begins (Usually a screen
with blanks to be filled as testing proceeds).
The second section will be marked by a line (immediately following the
"main" section) with only the text ENDANSI (IN CAPITAL LETTERS). This will
signal the next series of commands are for filling in the test prompts. The
next section will consist of 19 ansi strings each of which will indicate a
certain process occurring. An optional final line can define the foreground
and background colours of the THD identification header. in order, they are..

indicator clearing line 1
indicator clearing line 2
the CRC test is starting
the CRC test was passed
the CRC test was failed
the file is being expanded
the file expanded okay
the file did NOT expand okay
the file is being virus scanned
the file passed virus scanning
the file failed virus scanning
the work space is being cleared
clearing of workspace is complete.
expanding for conversion
passed expansion for conversion
failed expansion for conversion
rearchiving for conversion
passed rearchiving
failed rearchiving
foreground/background colour definition (optional)

None of these strings may exceed 70 characters.

Page 45

The first two lines are for clearing the "indicators". If you are using
"blocks" or other characters to display the testing, they should be "reset"
or cleared before the testing of imbedded archives begins. These first two
lines are for that purpose. These two lines could also be used to erase
"text" and start again. They will be displayed immediately before the CRC
test begins. There is no need to "clear" any of the "Fail" indicators as the
testing would stop if any fail occurs. (with the possible exception of the
SCAN failure which can be skipped if THDPRO.EXE is configured to pass
heuristic failures). If you are not sure how to use them... leave them as
empty lines.
The third string (The CRC test starting string) could also be used to
clear the "pass" indicators (if the 2 indicator clearing lines are not
enough). So they will be cleared as the testing of internal files begins.
IF any of those strings is to be unused, a blank line MUST be entered in
it's place. Imbedded testing will use the same indicators as the main file
testing. So only one set of indicators will be required. (Unlike the internal
ansi and ansi corners discussed above which have separate main and embedded
indicators).
The final configurable string is an optional colour configuration for the
THD identification header (shown at the top of the screen when using
PAINSOFT.AN? files). The format for this line is "EXACTLY"...

FOREGROUND=# BACKGROUND=#

where "#" - represents the colour number according to the following

0 = black
1 = red
2 = green
3 = yellow
4 = blue
5 = magenta
6 = cyan
7 = white

0 (black) may be used as a background colour ONLY. Foreground colours will
always be high intensity and background colours will always be low intensity.
Both colours MUST be defined or the display will default to YELLOW on RED.
(foreground must be specified first).
The "TESTING - FILENAME.EXT" will always be high intensity white in the
To "sample" the various headers available, THDDEMO now allows the use of
a parameter "/C". (This parameter must be "after" the filename on the command
line.) If this parameter follows the name of a PAINSOFT.AN? file it will
display the "main" ansi portion and sit. At this point you may scroll through
the various foreground and background colours by hitting either "F" or "B".
when you have decided on a combination that goes well with your main body
ansi, hit . THDDEMO will then exit, clear the screen, and report the
foreground and background colours that were displayed just before you exited.

Page 46

ie. THDDEMO PAINSOFT.AN4 /C
would display the PAINSOFT.AN4 ansi file with the THD ID header, from there
press "F" or "B" to change the foreground and/or background colours until you
find a combination that you like. Hit esc and it will display the correct
"colour definition line" to insert in the file to achieve the colours that
you have selected. (Note that this only works with PAINSOFT files since the
THDPRO files do not display the ID header).

- PAINSOFT.ANS -

PAINSOFT.ANS is a special case. If Found, PAINSOFT.ANS, will always be
used instead of ANY other ansi.
Painsoft.ans follows the same creation and viewing guidelines as
described above for PAINSOFT.AN? files. You may use this file to force the
same output on every file test. While boring, I'm sure some of you will find
it useful.
In English... If PAINSOFT.ANS exists in the same directory as THDPRO.EXE
then all random screen selection is bypassed and PAINSOFT.ANS is always sent
to the remote, regardless of the other ansi files present.

Page 47

------------
------------

- THD ProScan's custom / configurable comment control -
-------------------------------------------------------

THD ProScan offers what is likely the most configurable comment option
available in any upload tester. In some cases, this configurability comes at
a cost. Some of the options are very complex to set up and understand.
Notably commenting by area is not a simple task to set up for most
people. Random comments can be confusing. Keyword replacement however is
more or less relatively simple.

- Randomly selected comments -
------------------------------

THD ProScan can be configured to select a comment at random from a list
of comments. This option must be selected in THDINSTL and is not the default.
These comment files may have any legal dos filename and are simply to be
arranged in a list format of one filename per line followed immediately by a
carriage return/line feed (hitting enter in most editors accomplishes this).
Such a list might look like this...

- Comment by area -

- theory

This "random" list can also be used to cause files in certain areas to be
given a specific comment.
This will be useful for persons who wish to emphasize certain aspects of
their BBS. You could for instance cause all files in your "programming" area
to be marked with a comment file that tells people about your "Programming"
conference and guidelines. Or perhaps you allow free download of BBS
utilities and want to insert a comment in those archives to let people know
that BBS Utilities are free on your BBS. Whatever your reason.

Page 48

- setting it up

The method is as follows.

To cause THDPRO.EXE to insert a specific comment in a specific area, you
must select in THDINSTL to use a "list" of file comments. You must then
create that list. In our example the file will be called "COMMENT.LST".
A "specific" comment line in this file will consist of...

"IF" {QUALIFIER} {COMMENT}

[note that the entire line must be capital letters]

A "qualifier" is a string of text which will be looked for in the path to
the file being tested. It need not match the path exactly... But rather if
the "qualifier" is contained in the path then it will be considered a match.
As an example. "C:" as qualifier would match every file in every
directory on drive "C". (Since the text "C:" would be found in the path to
any file on that drive). "C:\BBS" as a qualifier would match any file found
in the "C:\BBS" directory or any of it's subdirectories.
And "C" as a qualifier would match EVERY path that has a "C" anywhere in
it.

A random comment will only be used when a matching qualifier is not
found. To use ONLY random comments, simply make a list of headers with no
"IF" or {QUALIFIER}.

Sample "COMMENT.LST" (using only specific area comments)

In the list above, the "IF"'s, qualifiers, and headers are separated in a
column arrangement so that you can better distinguish them. This is for your
benefit and is not required. They must be separated by at least a single
space (although a column arrangement as shown above will also be acceptable
as long as the entries are separated by "spaces", not by "tabs").
The "IF" statements must ALL be before the random selection list.
The lines without "IF" statements are comments which are to be chosen
from at random when there are no matching qualifiers.

When looking for a comment, THDPRO.EXE will look for the FIRST matching
"qualifier" (that is the text following the "IF" statement above). In this
regard a "match" is any qualifier which can be found in the path of the file
being tested.
If the qualifier is contained in the path to the file to be tested,
THDPRO.EXE will stop looking for a comment and use the first match.

Page 49

In the above example you will notice that "C:" (the qualifier for the
fourth line) is contained in each of the first four qualifiers. IF it were
put as the first line, then THDPRO.EXE would use "C:\HEADERS\BBSAD.TXT" for
every file on drive "C". Since "C:" would be found in any file in "C:\BBS".
So in this respect you must make sure that the order in which you place
the qualifiers will not conflict with any later qualifiers. That is, a
qualifier must NEVER fully contain a qualifier which appears before it in the
list. (ie. "C:\BBS\TEST" must appear before "C:\BBS" in the list).
IF THDPRO.EXE cannot find a matching qualifier it will chose at random a
comment from the entries appearing without "IF" statements.
IF the comment chosen does not exist. THDPRO.EXE will insert the comment
from the very first line in the list (even if it has an "IF" statement). IF
the comment from the first line does not exist, no comment will be added.
The list is considered complete if a blank line is found, so no blank
lines should be in the list. If there is a blank line in the list, all text
following the blank line will be ignored.
The best "simple" method I can give for ensuring the correct order of
"IF" statements is to put them in alphabetical order from BOTTOM TO TOP.
(that is... in reverse alphabetical order). Many word processors can do this
for you quickly and easily. And remember that the "IF" statements go first
and the order of the random comments is unimportant except that they be after
ALL "IF" statements.

GOOD LUCK.

- Keyword replacement / customization -
---------------------------------------

THD ProScan supports the use of some "key words" which it will search for
inside of file comments and replace with certain values prior to using the
comment. These keywords will be searched and replaced in all comments no
matter by what means the comment is chosen.

- keywords -

The list of valid keywords and their values is as follows

%THDVER% - The version of THD used. Format = "THD ProScan Version 10.0"
%TIME% - The Time (at which the comment is updated)
%DATE% - The Date (at which the comment is updated)
%NEWDATE% - The date of the newest file in the archive.
%OLDDATE% - The date of the oldest file in the archive.
%NEWFILE% - The name of the newest file in the archive.
%OLDFILE% - The name of the oldest file in the archive.
%DESC% - The description as used in the file bases update (if any)
%IFDESC% - Print this line ONLY if a description is used.
%P_NAME% - The Program name (according to Vendinfo.diz)
%P_VER% - The Program version (according to Vendinfo.diz/only numbers)
%A_NAME% - The Program's Author (according to Vendinfo.diz)

Page 50

The latter 3 options will only be translated IF a vendinfo.diz is found,
so they may safely be used in comments. However note, that if the information
is NOT found, the entire line will not be printed, so it would be best to
keep each of these entries on a separate line in any comment in which they
might be used.

ie.

%P_NAME% Version %P_VER% by %A_NAME%
is acceptable (since none of these values would be translated in the
absence of a Vendinfo.diz)

Program Name - %P_NAME%
Version - %P_VER%
Author - %A_NAME%
Acceptable (all 3 lines would be removed if no Vendinfo.diz found)

%P_NAME% test by %THDVER% on %DATE%
would not be acceptable since the whole line would be removed if no
vendinfo.diz were found (thus the date and THD Version would not be
entered since this line would not be printed unless a vendinfo.diz
were found.)

It is imperative that no other information be entered on the same line as
%DESC%. This entry will not print the line on which this is entered. Instead
this line is replaced by the description to be used in the File base update
(this is for those who wanted FILE_ID.DIZ in the comment). The size of this
description, if it is taken from a vendinfo.diz file is selectable in
THDINSTL.EXE (otherwise the full description contained in a valid
description file is used).
Lack of a description will result in no line at all (not even a blank
line).

The "%IFDESC%" is to be used on a line that you only wish to be print IF
a description is present.

reason being.. you might like to use something like this..

Description
-----------
%DESC%

Problem being that if no description is present the "Description" and
following underline would still be printed. To work around this it can be
entered in the comment file as ...

%IFDESC% Description
%IFDESC% -----------
%DESC%

Page 51

which would only print the "Description" and "-----------" if a
description were present. (The position of %IFDESC% on the line is not
important and it could just as easily be placed at the end of the line with
no difference in final output.)

For the sake of demonstration, the following would give the exact same
result as above... (although for simplicity. I recommend putting it at the
beginning or end of the line)

De%IFDESC%scription
------%IFDESC%-----
%DESC%

The following is a sample comment and what follows is how it would look
as an archive comment after processing by THD. (note in the following
examples I have used the 250 character description from the Vendinfo and not
the 450 character that would be used in most circumstances [or possibly
longer given some people's refusal to go by the standard]).

Original comment file prior to processing...
-------------------------------------------------
| This file successfully passed testing by |
| %THDVER% |
| on %DATE% at %TIME%. |
| |
| Program Name - %P_NAME% Version %P_VER% |
| Author - %A_NAME% |
| %IFDESC% |
| %IFDESC% ***************** |
| %IFDESC% ** Description ** |
| %IFDESC% ***************** |
| %IFDESC% |
| %DESC% |
-------------------------------------------------

** After processing with no desc or vendinfo.diz...
-------------------------------------------------
| This file successfully passed testing by |
| THD ProScan Version 10.0 |
| on 06/05/1994 at 3:49PM. |
| |
-------------------------------------------------

Page 52

** After processing with desc but no vendinfo.diz...
--------------------------------------------------
| This file successfully pass testing by |
| THD ProScan Version 10.0 |
| on 06/05/1994 at 3:49PM. |
| |
| |
| ***************** |
| ** Description ** |
| ***************** |
| |
| THD ProScan Version 10.0 Archive Processor. |
| File base updates for FILES.BBS, RG, TG and RA |
| formats. Multiple virus scans as well as many |
| configurable options. Allow user definable |
| conversions for supported archives. |
--------------------------------------------------

** After processing with vendinfo.diz (description is taken directly from
vendinfo.diz)...
--------------------------------------------------
| This file successfully pass testing by |
| THD ProScan Version 10.0 |
| on 06/05/1994 at 3:49PM. |
| |
| Program Name - THD ProScan Version 10.0 |
| Author - David Muir |
| |
| ***************** |
| ** Description ** |
| ***************** |
| |
| THD ProScan Version 10.0 Archive Processor. |
| File base updates for FILES.BBS, RG, TG and RA |
| formats. Multiple virus scans as well as many |
| configurable options. Allow user definable |
| conversions for supported archives. |
--------------------------------------------------

Page 53

-------------------------
- Environment variables -
-------------------------

THD ProScan supports three environment variables. They are...

THDZIP -
THDARJ -
THDOPT -

The first two environment variables are for use by persons who have
registered version of PKZip and/or ARJ. The latter of the variables can alter
a number of default actions of THDPRO.EXE.

- THDZIP -
----------

This variable accepts one of two settings. The first...

SET THDZIP=TRUE

This setting tells THDPRO.EXE that you are using a registered version of
PKZIP and would like to have the "AV" added when conversion to "ZIP" format
are performed.

SET THDZIP={drive:\path\to\your\AVEXTRA.TXT}

This setting tells THDPRO.EXE that you are using a registered version of
PKZIP and would like to have the "AV" and the AVEXTRA.TXT added when
conversion to "ZIP" format are performed. For information on AVEXTRA.TXT, you
should see your PKZIP users manual.

- THDARJ -
----------

This variable accepts only a single parameter.

SET THDARJ={drive:\path\to\your\SECURITY.KEY}

This setting tells THDPRO.EXE that you are using a registered version of
ARJ and would like to have the security envelope added when conversion to
"ARJ" format are performed.
Do not put any switches in this variable as THDPRO.EXE will supply the
necessary switches.

Page 54

- THDOPT -
----------

This variable is used to alter some default actions of THDPRO.EXE.
The available options are as follows...

THDOPT accepts six switches. "SOLID", "SC1", "ANSI", "ADD", "NFL" and
"NDx" where the "x" represents a drive letter to be used for expansion and
testing of the file.

SET THDOPT=SOLID will cause conversions to "RAR" format TO produce
"solid" archives. (Uses the -s switch to create RAR archives).

SET THDOPT=ANSI will force ansi to the remote.

SET THDOPT=NDF will force THDPRO.EXE to attempt to use drive "F" for the
file testing process before using the internally configured
drive(s).

SET THDOPT=SC1 tells THDPRO.EXE to run SCAN.EXE with a commandline
suitable for the 1.x.x series of scanners from McAfee.

SET THDOPT=NFL tells THDPRO.EXE to send the "/NOFLOPPY" switch to F-Prot.
Use this ONLY if F-PROT requires the "NOFLOPPY" switch to run.

SET THDOPT=ADD tells THDPRO.EXE to toggle the bit in the TESTINFO.DAT
record which indicates that the user wishes to have database
entries created when they do not already exist (not supported
by THDPLUS).

SET THDOPT=ANSI NDE SC1 SOLID ADD NFL
Force ANSI output, use drive "E" for the temporary drive
assignment, send a SCAN 1.x.x compatible commandline, use the
solid option when converting to RAR format, Set the "add" flag
in TESTINFO.DAT and use the "/NOFLOPPY" switch with F-PROT.

Note that only one alternate drive may be input using NDx. These
switches can be mixed and matched as necessary.

Contrary to popular opinion, there is no support for a "THDPRO"
environment variable. The purpose for which many programs use a similar
environment variable is not required by THDPRO.EXE as it finds this
information based on other factors.

SET THDPRO=XXXX
does absolutely nothing except waste your environment space.
DO NOT SET THIS VARIABLE unless you have a use for it yourself.
THD ProScan does not recognize it.

Page 55

---------------
- Secure Mode -
---------------

The theory behind providing a "secure mode" is to offer some limited
protection against THDPRO.EXE inadvertently helping to spread viruses by
running infected utilities.
THDPRO.EXE, when run in secure mode, will CRC check each executable file
prior to running it (including THDPRO.EXE itself, but this will of course be
checked after loading). If the file's CRC does not match the recorded value,
THDPRO.EXE will cease operation immediately following cleaning of any
temporary directories which it may have created. It will then exit with an
errorlevel of 255, indicating a security breach. In most cases this breach
will be logged in THDPRO.LOG.
The exception to the above is THDPLUS.EXE. If THDPLUS.EXE fails the CRC
check, it will be logged and the utility will not be run. Since THDPLUS.EXE
is not essential to any "test" operations, it was deemed that aborting
testing due to it's CRC failure was unnecessary. Instead running of THDPLUS
is skipped and logged.

**********************************************************************
** Please keep in mind that this method of "security" is not 100% **
** effective. This is being supplied as an additional step to virus **
** scanning these utilities and not as a replacement for it. These **
** utilities (as with all files) should be scanned for viruses and **
** tested on a regular basis to ensure that the files are intact. **
**********************************************************************

Secure mode is toggled from the final screen of THDINSTL. Once selected,
THDPRO.EXE will search for and evaluate the CRC's based on a file called
THDPRO.SEC. This file MUST exist in the same directory as THDPRO.EXE
(THDPRO.EXE will put it there). If the file does not exist THDPRO.EXE will
refuse to run (citing a security breach as the reason). Therefore you must
use THDPRO.EXE to generate the THDPRO.SEC file before it can be run in secure
mode.

The disadvantage to secure mode is twofold. First it will refuse to run
every time you upgrade a virus scanner or other utility (since the CRC's will
not match). Secondly it takes time to calculate the CRC values.

The first problem is easily solved by ensuring that you update your
THDPRO.SEC file any time you make changes (as outlined below). The second
instance is a necessary evil of the added security. The CRC values will be
checked prior to each run of a util (that is EVERY single time THDPRO.EXE is
told to run an external util, it will check the CRC first, even if it was run
only moments before and passed that CRC test).

Page 56

- THDPRO.EXE /SEC -
-------------------

To generate and/or update the THDPRO.SEC file (anytime a utility is
changed or THDINSTL is run), simply run THDPRO.EXE /SEC. This option will

cause THDPRO.EXE to perform it's "normal" self test and if that test is
passed, then it will create a THDPRO.SEC file using the configured
information.
This option will perform no comparison to previously recorded values, so
if you have suffered a security breach and are unsure as to what caused it,
then do not run this until after running the security test outlined below.

- THDPRO.EXE /SECTEST -
-----------------------

This option causes THDPRO.EXE to compare the current values in the
THDPRO.SEC files against the values of the files as they exist. It will
report only these files whose CRC values are different from those recorded in
the THDPRO.SEC file. This operation causes no changes to the THDPRO.SEC file,
and should be used to see which utility or utilities THDPRO.EXE believes have
changed. Failures will be reported as being "in breach of security". If no
file names are listed as being in breach of security, then the THDPRO.SEC
file is usable "as is".
An ideal test will report that it is checking and that it is done with
nothing in between.

In addition to the utilities, the THDPRO.SEC file is also CRC checked by
the above procedure as well as at run time by THDPRO.EXE. A change in that
file's CRC is considered to be a security breach just as any utility change
would be.

Upon exit from THDINSTL, if secure mode is selected, the user will be
reminded to run THDPRO.EXE /SEC to update the THDPRO.SEC listing, since in
almost all cases THDINSTL will change the CRC value of THDPRO.EXE, thus
rendering the THDPRO.SEC value invalid which will result in a security breach
each time THDPRO.EXE is run.

Page 57

-----------------
- NETWORK NOTES -
-----------------

***********************************************************
** THE FIRST THING YOU SHOULD DO IF INSTALLING THIS ON A **
** NETWORK, IS TO RENAME THDINSTL.EXE TO NETINSTL.EXE. **
***********************************************************

Alternately, you could also run THDINSTL.EXE /NET which has exactly
the same effect as renaming the file. However, for ease of use (odds are
good that you will only ever wish to run in NET mode), you will likely find
it easier to rename the installation file than to remember to constantly
supply the "/NET" parameter, although either method will work.

This will tell THDINSTL that you are attempting installation on a
networked system. This will simplify the installation by NOT putting drive
letters in front of the paths to the utilities that it finds. It will also
not prompt you for the "temporary" drive assignments and instead default to
"network compatible mode" which uses only the current drive for file testing.

In this and all documentation, THDINSTL refers to the file as
distributed. If renamed to NETINSTL.EXE, all references are still valid
except as noted above.

While THD ProScan is not "network aware", it can be run in a network
environment with some considerations.

The most important of these considerations, is that THD ProScan makes
extensive use of "drive" letters in it's normal operation. On a network
system, these drive letters are reassigned depending on the remote caller.
The sysop must therefore take into account that these drive letters might be
different from one remote to the next and account for this when running
THDINSTL.EXE.
When running THDINSTL, be sure not to specific a drive whenever the
installation will allow you to supply simply a file path (in other works
supply things like "\utils\pkzip.exe" instead of "c:\utils\pkzip.exe"). In
order to do this, THDINSTL must be run on the same drive as all of it's files
are located.
It is important to note that THDPRO.EXE will still assign all of these
paths with drive letters. But this will be done at run time with the current
drive letter in a case where one was not supplied during installation. If the
current drive is "C:" when THDPRO.EXE is invoked then a path entered in the
install as "\UTIL\PKZIP.EXE" will actually be called as "C:\UTIL\PKZIP.EXE".
Likewise if the current drive were "T:" at run time THDPRO.EXE would run
"T:\UTIL\PKZIP.EXE". At no time would THDPRO.EXE attempt to run simply
"\UTIL\PKZIP.EXE"

Page 58

It is therefore recommended that network users have THDPRO.EXE and all
the necessary files located on the same logical drive as all the files to be
tested and all of the utils to be used. In other words on a one drive system.
When THDINSTL prompts for the use of drives to use for testing, you
should enter "0" (new in version 10.0) to tell THD that you wish it to use
only it's current drive for file tests. Technically what this does is to tell
THD that all temporary drives are the same drive and that drive is the drive
on which the system was running when THDPRO.EXE was called. This option will
solve the majority of network problems suffered by some users who could not
get THD working properly for them previously.

Note that once configured, THDPRO.EXE could be moved to another drive and
would work if called correctly, since it determines it's own location at
runtime.
This is not a "requirement" as such. Certainly some network users can get
it working for them without this consideration. This should be used by those
who either find it easier than the method they used previously or who are
having difficulty getting it to run correctly under a network environment.

The THDOPT "NDx" environment variable can also be useful for network
users. If the remote system can define environment variables under your
particular network, you could have them set this particular variable to their
drive assignment (see the section on environment variables) and thereby cause
testing to occur on the correct drive from their point of view.

At least one Novell user has stated the need for "SHOWDOTS=TRUE" in his
configuration file. The symptom was that THD failed to remove it's temporary
directory when this was not present.

The THDOPT=NFL may be required on systems without floppy drives when
running F-PROT.EXE. Use this only if you have no floppies connected to the
system and F-PROT suggests that it be used.

Note that while I do my best to make THD as compliant with as many systems
as I possibly can, my knowledge of network software and how it works is nearly
non-existent. So if you have suggestions or other things in this matter that I
might consider, please feel free to let me know about them.

Again, if you select the "network mode" during THDINSTL, you should be
certain that you have not supplied drive letters to the utilities to be used
and that all such utilities are located on the same drive that THDPRO.EXE will
be called from. Failure to locate "all" files on the single drive will likely
cause THDPRO.EXE to react in an unreliable manner when unable to locate the
needed files on the current drive.

### 3 Responses to “Category : BBS Programs+Doors Archive   : THDPRO10.ZIPFilename : THDDOC.TXT”

1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/