home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / a / anti110.zip / ANTIAD.DOC < prev    next >
Text File  |  1993-03-07  |  27KB  |  610 lines

  1.  
  2.      ┌──────────┬───────────┐
  3.      │   BBS    ┼           │
  4.      │   ╓───╖  │ ╓         │                   AntiAd
  5.      │   ║   ║  ┼ ║         │
  6.      │   ╟───╢ ╓┼─║ ╓──     │                Version 1.10
  7.      ├┼──╫─┼─╫─╫■─╫─╨┼─╥───┼┤
  8.      │   ╙   ╙ ╙┼─╜ ───╜    │    (c) Copyright 1992-1993 - Stacy Smith
  9.      │          ┼           │
  10.      └──────────┴───────────┘
  11.  
  12.  
  13.                                 Courtesy of:
  14.  
  15.                         The Bloom Beacon-Picayune BBS
  16.           Node 1: (804) 525-9760 (USRobotics Courier Dual Standard)
  17.              Node 2: (804) 525-5372 (USRobotics Courier V.32bis)
  18.                               FidoNet 1:276/112
  19.                                   Intelec
  20.  
  21.                                 Stacy Smith
  22.                               Route 6 Box 189
  23.                            Forest, Virginia 24551
  24.  
  25.  
  26. ┌────────────────────┐
  27. │  1. Introduction:  │
  28. └────────────────────┘
  29.  
  30. AntiAd was developed due to recent developments in BBS ad files and their
  31. associated headaches.  The asinine sysops who insist on putting this excess
  32. baggage into archives at the expense of other sysops' disk space are getting
  33. more creative and annoying.
  34.  
  35. By slightly modifying their BBS ad file, perhaps adding spaces to the end of
  36. the file or stamping the time and date into the BBS ad, they were previously
  37. undetectable (until the BBS ad was added to a database). Not so with AntiAd.
  38.  
  39.  
  40. ┌──────────────────────────┐
  41. │  2. Features of AntiAd:  │
  42. └──────────────────────────┘
  43.  
  44.       ∙ Identifies BBS ads using conventional database algorithms for files
  45.         that are static (such as .EXE files created by TheDraw).  This method
  46.         of detection is extremely fast and 100% accurate.
  47.       ∙ Includes a BBS ads maintenance function so sysops can update their BBS
  48.         ads CRC database in real time.
  49.       ∙ Identifies BBS ads using a new keyword algorithm for files that are
  50.         constantly changing.  This method of detection is slower and can be
  51.         less accurate depending upon how well the keywords are selected by the
  52.         sysop.
  53.       ∙ Up to 100 keyword sets of 5 to 10 keywords each can be configured by
  54.         the user. (These are arbitrary limits and can be raised, if necessary;
  55.         they seemed like good starting points).
  56.       ∙ AntiAd can execute another program as a child process, allowing upload
  57.         processors that only execute 1 file checker (virus checker) to use
  58.         AntiAd *and* another file checker.
  59.       ∙ Runs as a file tester in any upload processing utility, such as ULP,
  60.         Ziplab, ExzTest, etc.
  61.       ∙ Detected BBS ads are removed from the files on disk before being
  62.         repacked by the upload processing utility. They may be stored in a
  63.         subdirectory for subsequent review by the user (user-selectable).
  64.       ∙ AntiAd can generate list files to be passed to an archiver, allowing
  65.         removal of BBS ad files without unpacking the archive. This requires
  66.         proper handling by the upload processing utility or batch file.
  67.       ∙ User-selectable process logging to a disk file.
  68.       ∙ Written completely in C for optimal speed, using Microsoft C/C++ 7.0.
  69.       ∙ Lifetime registration; pay ONCE and your registration number will work
  70.         on all future versions!
  71.  
  72.  
  73. ┌────────────────────────────────────────────────────────┐
  74. │  3. Files Included in the AntiAd Distribution Archive  │
  75. └────────────────────────────────────────────────────────┘
  76.  
  77.         ANTIAD.EXE      BBS ad detection and removal program.
  78.         ANTIAD.DB       BBS ads database file.
  79.         ANTIAD.DOC      This file.
  80.         ANTIAD.CFG      Sample configuration file.
  81.         HISTORY.TXT     AntiAd revision history in reverse order.
  82.         REGISTER.FRM    Registration form for AntiAd.
  83.         FILE_ID.DIZ     Internal description file.
  84.  
  85. When you unzip the distribution archive, you should see my PKZIP authenticity
  86. verification stamp, and a '-AV' after every file in the archive:
  87.  
  88.         # SSU301    The Bloom Beacon-Picayune BBS
  89.  
  90. If there are any files missing or added, or the -AV stamp is missing, the
  91. archive has been tampered with. It would be advisable to call my BBS (listed at
  92. the top of this document) for the latest version of AntiAd.
  93.  
  94.  
  95. ┌───────────────────────────┐
  96. │  4. Program Requirements  │
  97. └───────────────────────────┘
  98.  
  99. To the best of my knowledge, this program will run on most any machine capable
  100. of running a BBS package. My BBS setup is PCBoard 14.5a/10 running under
  101. DESQview on a LANtastic network, but other sysops that I have been in contact
  102. with have successfully implemented AntiAd on a wide variety of hardware.
  103.  
  104. AntiAd requires DOS 3.x or later, as it uses DOS SHARE-compatible file reads
  105. and writes.  AntiAd's memory requirements are very small (about 80K or so, plus
  106. the CRC database and keyword memory allocated).  A hard disk is required (and
  107. not very many BBSes don't have them) so it goes without saying (although I did
  108. anyway; someone is bound to ask... <g>).
  109.  
  110.  
  111. ┌───────────────────┐
  112. │  5. Registration  │
  113. └───────────────────┘
  114.  
  115. AntiAd is not free; nor is AntiAd is crippled to force registration. AntiAd is
  116. fully functional, and will always remain so. The only variation with the
  117. registered copies is no time delay and beg message.
  118.  
  119. Why register? Besides a clean conscience, you will get a registration code that
  120. will work for all future versions of AntiAd, and will remove the delay and
  121. message at the end of execution.
  122.  
  123. The registration fee for your unique code is $10 for non-commercial BBSes. The
  124. registration fee for commercial BBSes, defined if you run your BBS in the
  125. course of a commercial business or for profit, is $20. Other variations are
  126. available; refer to the file REGISTER.FRM for all registration options. Please
  127. print the file REGISTER.FRM and fill it out. You can print out the form by
  128. issuing the following command from the DOS prompt:
  129.  
  130.         TYPE REGISTER.FRM > PRN
  131.  
  132.  
  133. ┌───────────────────────────────────────┐
  134. │  6. License, Warranty and Disclaimer  │
  135. └───────────────────────────────────────┘
  136.  
  137. I'll keep this part short and sweet, and dispense with the legal-ese:
  138.  
  139.         License: You are allowed to use AntiAd for 30 days, after which you
  140.            must either register AntiAd or stop using it completely. AntiAd
  141.            registration is a license for your use of AntiAd; I retain
  142.            ownership of the software. A single registration applies to a single
  143.            BBS system, regardless of the number of computers used in the
  144.            system. If you run two or more distinct BBS systems on the same
  145.            computer (with different names), you require two or more AntiAd
  146.            registrations. Refer to the registration form for the currect
  147.            pricing structure.
  148.  
  149.         Warranty: There isn't one. The only thing I'll guarantee is that
  150.            AntiAd will take up disk space, and will disappear when deleted.
  151.  
  152.         Disclaimer: I'm not responsible for anything bad that happens. AntiAd
  153.            works here, but I cannot be held responsible for it not working on
  154.            your computer or doing any damage to hardware or software.
  155.  
  156. If these aren't agreeable with you, then the best thing to do is delete AntiAd
  157. right now. I'll do my best to help any user (registered or not) that wants to
  158. use AntiAd, and I'll act on bug reports quickly, but I simply cannot and will
  159. not be responsible for anything bad, like lost data, disk crashes, or whatever
  160. else you can think of.
  161.  
  162.  
  163. ┌───────────────────┐
  164. │  7. Installation  │
  165. └───────────────────┘
  166.  
  167. GENERAL INSTALLATION:
  168. ─────────────────────
  169. Make a subdirectory on your hard drive. For the purposes of this document,
  170. we'll call it "C:\ANTIAD". Unarchive the AntiAd distribution archive into this
  171. subdirectory. You've more than likely already made it this far, if you're
  172. reading this file. <grin>
  173.  
  174. The AntiAd system opens a few files at once for various reasons. I would
  175. recommend that you have a minimum of FILES=30 per node in your system
  176. CONFIG.SYS file for a single-node system, since AntiAd is run in conjunction
  177. with your BBS and upload processing software.
  178.  
  179. If you are running under a network or a multitasking operating system, you
  180. should already have DOS's SHARE.EXE loaded. You must have SHARE loaded in order
  181. to take advantage of the file sharing and locking methods used by the AntiAd
  182. programs to prevent data loss. (If you are running a single-node system without
  183. a multitasker, SHARE is not needed).
  184.  
  185. Edit the configuration file to suit your needs. Proper configuration will
  186. require you to refer to this section, the previous section and the section
  187. titled "Configuration", which has an in-depth explanation of each configuration
  188. parameter and its function. It would probably be wise to fire up your printer
  189. for this document.
  190.  
  191. Note that for the AntiAd program, you can obtain a limited program syntax
  192. screen simply by executing the program with the -? (help) parameter.
  193.  
  194. INSTALLATION INTO YOUR UPLOAD PROCESSOR:
  195. ────────────────────────────────────────
  196. AntiAd is designed to operate on a subdirectory of files that have already been
  197. extracted by the upload processor.  The best application for AntiAd is to be
  198. executed as a file test utility, similar to a virus-scanning program, since at
  199. that point in time the files are already extracted from the archive being
  200. processed.  Depending upon how your upload processor operates, the command
  201. lines can be different.
  202.  
  203.     * NOTE: If your upload processor is limited to 1 file checker, add AntiAd
  204.             into your processor's configuration, and then configure AntiAd to
  205.             execute your file/virus checker using the CHK_CMD_LINE parameter.
  206.  
  207. If your upload processor executes the file testers from the directory where the
  208. files are located (this is how the ULP programs operates), the command line is
  209. simply:
  210.  
  211.     D:\ANTIAD\ANTIAD.EXE -Cd:\antiad\antiad.cfg
  212.  
  213. If your upload processor DOES NOT execute the file testers from the directory
  214. where the files are located, and passes a filespec to the program (this is how
  215. ExzTest works), the command line is:
  216.  
  217.     D:\ANTIAD\ANTIAD.EXE -Cd:\antiad\antiad.cfg -Pd:\path\*.*
  218.  
  219. The '-P' parameter defines to AntiAd where to find the files. Note that it will
  220. accept either a path (e.g. 'C:\TEMP\') or a filespec (e.g. 'C:\TEMP\*.*'); in
  221. other words, the "*.*" is superfluous.  Regardless of the filespec, AntiAd will
  222. check all files in the path passed to it.  This is to allow the highest level
  223. of compatibility with all upload processing utilities.
  224.  
  225. If you find yourself crunched for command-line space in your upload processing
  226. utility, the '-C' may be omitted in favor of using an environment variable
  227. (named "ANTIAD_CFG") to tell AntiAd where to find it's configuration file. To
  228. do this, add the following line to your AUTOEXEC.BAT file:
  229.  
  230.     set ANTIAD_CFG=c:\antiad\antiad.cfg
  231.  
  232. while changing the filespec as necessary to match the name and location of your
  233. AntiAd configuration file.
  234.  
  235. If your upload processing routine is capable of executing a command after each
  236. archive has been processed, you can use the list-file approach to removing BBS
  237. ads from the archive. This will guarantee that the ad files are removed, even
  238. in -AV protected archives. If you call AntiAd with the following command-line:
  239.  
  240.     ANTIAD.EXE -Cd:\antiad\antiad.cfg -Pd:\path\*.* -Ld:\antiad\ad.lst
  241.  
  242. You can then execute the following archiver statements to remove the ads from
  243. the compressed archive:
  244.  
  245.     ARJ d d:\path\archive.arj !d:\antiad\ad.lst
  246.     LHA d d:\path\archive.arj @d:\antiad\ad.lst
  247.     PAK d d:\path\archive.arj @d:\antiad\ad.lst
  248.     PKPAK -d d:\path\archive.zip @d:\antiad\ad.lst
  249.     PKZIP -d d:\path\archive.zip @d:\antiad\ad.lst
  250.  
  251. Some notes on the list-file approach: if AntiAd finds no BBS ads, it will NOT
  252. create a BBS ads list file and will exit with an errorlevel you define in
  253. NO_AD_ERRLEV in the configuration file. If it finds one or more BBS ads, it
  254. WILL create the file and exit with the errorlevel defined as AD_ERRLEV. (AntiAd
  255. will not run in ULP using list-file mode; use the standard mode of operation
  256. for AntiAd with ULP.)
  257.  
  258.  
  259. ┌────────────────────┐
  260. │  8. Configuration  │
  261. └────────────────────┘
  262.  
  263. The sample configuration file included in the distribution archive is heavily
  264. commented, but some additional information is provided below:
  265.  
  266. REG_CODE
  267.     The registration code EXACTLY as provided to you on your registration
  268.     letter. If this is an unregistered version, comment out this line. Note
  269.     that this is case-sensitive, as the serial number, BBS name and sysop name
  270.     are all encrypted into this code.
  271.  
  272. BBS_NAME
  273.     The BBS name EXACTLY as provided to you on your registration letter. If
  274.     this is an unregistered version, comment out this lines. Note that this is
  275.     case-sensitive!
  276.  
  277. SYSOP_NAME
  278.     The sysop name EXACTLY as provided to you on your registration letter. If
  279.     this is an unregistered version, comment out this line. You get the picture
  280.     by now...
  281.  
  282. LOG_FILE
  283.     All of the AntiAd programs will write process and error information to a
  284.     log file, if desired. This is the path/filename of the log file for AntiAd
  285.     to record its activities. Comment out if you don't want any disk logging.
  286.  
  287. STORAGE_DIR
  288.     If you want AntiAd to use a specific directory for storage of BBS ads
  289.     detected and removed from archives, enter the full pathname (including the
  290.     trailing backslash). If you do not want the file saved for later
  291.     inspection, comment it out. I would not recommend using a RAM disk, since
  292.     the files would be lost when the system is rebooted or powered down. Note
  293.     that this will default CRC_DISP and KEYWORD_DISP to DELETE.
  294.  
  295. DB_DISP
  296.     This parameter defines how AntiAd dispositions files detected as BBS ads
  297.     via the CRC-32 signature method. If you want AntiAd to delete the ad file,
  298.     enter DELETE or comment the line out; if you want AntiAd to store the ad
  299.     file in the storage directory (and delete it from the archive being
  300.     processed), enter STORE. Note that for STORE to operate correctly, the
  301.     STORAGE_DIR parameter MUST be defined.
  302.  
  303. KEYWORD_DISP
  304.     This parameter defines how AntiAd dispositions files detected as BBS ads
  305.     via the keyword algorithm. If you want AntiAd to delete the ad file, enter
  306.     enter DELETE; if you want AntiAd to store the file in the storage directory
  307.     (and delete it from the archive being processed), enter STORE or comment
  308.     the line out.
  309.  
  310. ADS_DB
  311.     The directory path and name for the BBS ads database. This database can be
  312.     updated by the sysop by using the '-F' parameter of AntiAd (see section 10
  313.     of this document), freeing the sysop from being reliant on me to maintain
  314.     the ads database. If you find a large number of new BBS ad files, please
  315.     upload them to my board for inclusion into my master ads database
  316.     distributed with AntiAd.  This database format is compatible with my
  317.     UpLoadProcessor (ULP) utility's BBS ads database.
  318.  
  319. NO_AD_ERRLEV
  320.     The errorlevel that AntiAd is to return to DOS if no BBS ads were found by
  321.     AntiAd while processing the subdirectory specified. If this parameter or
  322.     the AD_ERRLEV parameter is commented out, then it will default to 0, since
  323.     most upload processors assume non-zero errorlevels to be program execution
  324.     errors, not information. This value must be between 0 and 255, inclusive.
  325.  
  326. AD_ERRLEV
  327.     The errorlevel that AntiAd is to return to DOS if one or more BBS ads were
  328.     found by AntiAd.
  329.  
  330. KEYWORDS
  331.     The keyword sets (separated by commas) to search potential BBS ad files
  332.     for. Note that these keywords are case-sensitive! If a potential ad file
  333.     contains ALL of the keywords or phrases, it will be dispositioned as a BBS
  334.     ad. I suggest using the BBS name, area code and exchange, modem brand and
  335.     other key terms in their ads that seem static. Between 5 and 10 keywords
  336.     are allowed per line; one line comprises a keyword set. Furthermore, a
  337.     keyword set line may not be more than 128 characters long. A maximum of 100
  338.     keyword sets may be defined. Note that BBS ad scanning time increases with
  339.     the number of keywords and keyword sets.
  340.  
  341. CHK_CMD_LINE
  342.     AntiAd is capable of executing another program before returning to the
  343.     upload processor. If this is desired enter the command line to be executed
  344.     by AntiAd, otherwise, comment the line out. Place the variable @FILES@
  345.     where the filespec is to be placed on the command line.
  346.     * NOTE: If this option is used, AntiAd will return the errorlevel returned
  347.             by this program to the upload processor, and will not use the
  348.             NO_AD_ERRLEV or AD_ERRLEV settings. This is done for optimum
  349.             compatibility with all upload processors.
  350.  
  351.  
  352. ┌──────────────────────────────┐
  353. │  9. Application Information  │
  354. └──────────────────────────────┘
  355.  
  356. ULP:
  357. ────
  358. The correct configuration setup for AntiAd within UpLoadProcessor is to be used
  359. as a file checker is as follows:
  360.  
  361.     FILE_CHECKER 2                      (or whatever the next number is...)
  362.     FILE_CHK_CMD C:\ANTIAD\ANTIAD -Cc:\antiad\antiad.cfg
  363.     FILE_CHK_ERR 0
  364.  
  365. In addition, ULP users should disable the integrated BBS ad checking (ADS_CHK
  366. set to NO), since AntiAd is more capable than ULP in detecting and removing BBS
  367. ads. You may also remove the '-C' parameter if you choose to use the
  368. environment variable approach.
  369.  
  370. EXZTEST:
  371. ────────
  372. The following is an excerpt from a message to me from Mike Cocke, outlining how
  373. he has installed AntiAd:
  374.  
  375.     ======================================================================
  376.     Packet: SALTAIR
  377.       Date: 12-10-92 (16:58)             Number: 7410
  378.       From: MIKE COCKE                   Refer#: 7192
  379.         To: STACY SMITH                   Recvd: NO
  380.       Subj: EXZTEST AND ANTIAD             Conf: (3) Utility
  381.     ----------------------------------------------------------------------
  382.     SS> I have a question regarding ExzTest and ANTI-AD that you may be
  383.     SS> able to answer. Does ExzTest repack the archive after processing?
  384.     SS> Is it selective? Do I need to trigger it in some fashion?
  385.  
  386.     It repacks the archives if that config option has been set.
  387.  
  388.     SS> I have a user having a little difficulty with ExzTest and AntiAd,
  389.     SS> and I'm trying to help him. Got a copy of 2.22, and read the docs,
  390.     SS> but that part wasn't clear.
  391.  
  392.     2.22 has some problems, including a system hanger.  Stop by the Hacker
  393.     Central and grab XZT8MC.ZIP
  394.  
  395.     SS> Would you be willing to share how you implemented AntiAd into
  396.     SS> ExzTest? I'd like to document it in the AntiAd docs...
  397.  
  398.     Sure - in a nutshell, set 'rezip secondary archives' to on, and install
  399.     AntiAd as a virus tester.  The key is the first point.  If this isn't
  400.     set, removals won't matter.
  401.     ======================================================================
  402.  
  403. If you have any further questions, I would suggest contacting Mike Cocke and
  404. getting the most recent version of ExzTest from his board or Salt Air.
  405.  
  406. ZIPLAB:
  407. ───────
  408. Apparently, ZipLab will not support the operation of more than one file checker
  409. automatically. Or at least, how to add more than one is not readily apparent in
  410. the documentation. Therefore, configure AntiAd into ZipLab and your virus
  411. scanner into AntiAd's CHK_CMD_LINE parameter. In this way, ZipLab will call
  412. AntiAd, AntiAd will call your virus checker, and then return to ZipLab.
  413.  
  414. GENERIC BATCH FILE:
  415. ───────────────────
  416. The following generic batch file (modeled after PCBTEST.BAT) will autodetect
  417. the compression format of the archive using ARCID (again, a utility written by
  418. me), unpack the archive, check it for ads, remove any ads found via the
  419. list-file method, scan the files for viruses, and then clean up. It can easily
  420. be expanded and/or modified to suit your needs:
  421.  
  422.     @Echo off
  423.     cls
  424.  
  425.     if exist pcbpass.txt del pcbpass.txt
  426.     if exist pcbfail.txt del pcbfail.txt
  427.  
  428.     d:\arcid\arcid %1 arj lzh zip
  429.     if errorlevel 98 goto UNKNOWN
  430.     if errorlevel 5  goto ZIP_TESTING
  431.     if errorlevel 4  goto PAK_TESTING
  432.     if errorlevel 3  goto LZH_TESTING
  433.     if errorlevel 2  goto ARJ_TESTING
  434.     if errorlevel 1  goto ARC_TESTING
  435.  
  436.     Echo ERROR: ARCID critical error...please notify sysop! > pcbfail.txt
  437.     exit
  438.  
  439.     :UNKNOWN
  440.     Echo ERROR: Unknown file format! > pcbfail.txt
  441.     exit
  442.  
  443.     :ARC_TESTING
  444.     md testing
  445.     cd testing
  446.     pkunpak -r %1
  447.     if not errorlevel 0 goto UNPACK_ERROR
  448.     d:\antiad\antiad -Cd:\antiad\antiad.cfg -Ld:\antiad\ad.lst
  449.     if exist d:\antiad\ad.lst pkunpak -d %1 @d:\antiad\ad.lst
  450.     goto SCAN
  451.  
  452.     :ARJ_TESTING
  453.     md testing
  454.     cd testing
  455.     arj e -y %1
  456.     if not errorlevel 0 goto UNPACK_ERROR
  457.     d:\antiad\antiad -Cd:\antiad\antiad.cfg -Ld:\antiad\ad.lst
  458.     if exist d:\antiad\ad.lst arj d -y %1 !d:\antiad\ad.lst
  459.     goto SCAN
  460.  
  461.     :LZH_TESTING
  462.     md testing
  463.     cd testing
  464.     lha e /m1 %1
  465.     if not errorlevel 0 goto UNPACK_ERROR
  466.     d:\antiad\antiad -Cd:\antiad\antiad.cfg -Ld:\antiad\ad.lst
  467.     if exist d:\antiad\ad.lst lha d /m1 %1 @d:\antiad\ad.lst
  468.     goto SCAN
  469.  
  470.     :PAK_TESTING
  471.     md testing
  472.     cd testing
  473.     pak e /wa %1
  474.     if not errorlevel 0 goto UNPACK_ERROR
  475.     d:\antiad\antiad -Cd:\antiad\antiad.cfg -Ld:\antiad\ad.lst
  476.     if exist d:\antiad\ad.lst pak d %1 @d:\antiad\ad.lst
  477.     goto SCAN
  478.  
  479.     :ZIP_TESTING
  480.     md testing
  481.     cd testing
  482.     pkunzip -o %1
  483.     if not errorlevel 0 goto UNPACK_ERROR
  484.     d:\antiad\antiad -Cd:\antiad\antiad.cfg -Ld:\antiad\ad.lst
  485.     if exist d:\antiad\ad.lst pkzip -d %1 @d:\antiad\ad.lst
  486.     goto SCAN
  487.  
  488.     :SCAN
  489.     scan /a /nomem /nopause *.*
  490.     if not errorlevel 0 goto VIRUS_ERROR
  491.  
  492.     cd ..
  493.     echo y|del testing\*.*
  494.     rd testing
  495.     if exist d:\antiad\ad.lst del d:\antiad\ad.lst
  496.     Echo File passed all tests... > pcbpass.txt
  497.     exit
  498.  
  499.     :UNPACK_ERROR
  500.     echo y|del testing\*.*
  501.     rd testing
  502.     if exist d:\antiad\ad.lst del d:\antiad\ad.lst
  503.     Echo ERROR: File failed integrity test... > pcbfail.txt
  504.     exit
  505.  
  506.     :VIRUS_ERROR
  507.     echo y|del testing\*.*
  508.     rd testing
  509.     if exist d:\antiad\ad.lst del d:\antiad\ad.lst
  510.     Echo ERROR: File failed virus test... > pcbfail.txt
  511.     exit
  512.  
  513.  
  514. ┌────────────────────────┐
  515. │  10. Manual Operation  │
  516. └────────────────────────┘
  517.  
  518. In order for sysops to be able to 'keep up' with new ads produced by the weenie
  519. sysops who insert the @!&*#%$ things, AntiAd is capable of scanning a BBS ad
  520. file and updating the BBS ads with it's information. Don't worry about
  521. duplication, as part of the process is to purge duplicate BBS ad info. The
  522. command-line syntax for this functions is:
  523.  
  524.     ANTIAD -Cantiad.cfg -Fbbs.ad
  525.  
  526. where 'antiad.cfg' is the full path and filename for the AntiAd configuration
  527. file, and 'bbs.ad' is the path and filename for the BBS ad file to be added to
  528. the BBS ads database. I would suggest only adding executable or ANSI BBS ads to
  529. the database, since they are not easily changed by a sysop before insertion
  530. into an archive.
  531.  
  532. If you have a subdirectory full of BBS ads to add to the database, the
  533. following batch file will automate the procedure:
  534.  
  535.     for %%f in (c:\temp\*.*) do ANTIAD -Cc:\antiad\antiad.cfg -F%%f
  536.  
  537. I would greatly appreciate your uploading of any new BBS ad files that you may
  538. collect over time to my BBS so I can update the master listing that I include
  539. with the AntiAd distribution archive. Please refer to the top of this document
  540. for my BBS number.
  541.  
  542. The latest version of my BBS ads database is included in the distribution
  543. archive. In order to add whatever new BBS ads information that may be
  544. contained, you can merge it with your current BBS database:
  545.  
  546.     ANTIAD -Cantiad.cfg -Mother.db
  547.  
  548. where 'antiad.cfg' is the full path and filename for the AntiAd configuration
  549. file, and 'other.db' is the path and filename for the other BBS ads datatbase
  550. to be merged with the master ads database.
  551.  
  552.  
  553. ┌───────────────┐
  554. │  11. Support  │
  555. └───────────────┘
  556.  
  557. If you require support for AntiAd, I can be contacted by any of the following
  558. means:
  559.  
  560.     ∙ Fidonet Netmail addressed to Stacy Smith, node 1:276/112
  561.     ∙ Intelec PCBoard conference
  562.     ∙ The ULP Support conference (#42) on Salt Air (PCBoard support BBS)
  563.     ∙ The Support conference (#2) on my BBS (listed at the top of this
  564.       document).
  565.  
  566.  
  567. ┌────────────────────────────┐
  568. │  12. The Future of AntiAd  │
  569. └────────────────────────────┘
  570.  
  571. AntiAd will be supported as long as I'm in the BBSing business (which will be
  572. quite a while...once it's in your blood, you can never shake it <g>). The
  573. AntiAd system will be rapidly expanding it's features so it will be your first
  574. choice in BBS ad eradicator. Some current plans:
  575.  
  576.       ∙ Develop a series of keyword sets to allow detection of most, if not
  577.         all, BBS ads.
  578.       ∙ None...any ideas from you guys? Thanks! <g>
  579.  
  580. If you have any other suggestions, contact me by U.S. snail-mail or on my BBS
  581. at the number at the top of this document.
  582.  
  583. Thanks for giving AntiAd a try!
  584.  
  585.  
  586. ┌────────────────────────────────┐
  587. │  Appendix A:  DOS Errorlevels  │
  588. └────────────────────────────────┘
  589.  
  590. The following is a list of the errorlevels than can be returned by AntiAd:
  591.  
  592.         Variable    Successful execution
  593.         Variable    Successful execution, BBS ad list file created
  594.         Variable    Successful execution, file checker errorlevel returned
  595.         99          Help screen (executing a program with no or an
  596.                         insufficient number of arguments)
  597.         100         Could not close all open files
  598.         101         Unknown command line parameter
  599.         102         Config file not found
  600.         103         Too many keywords in a keyword set
  601.         104         Too few keywords in a keyword set
  602.         105         Too many keyword sets defined
  603.         106         Keyword set line too long
  604.         110         Unable to allocate heap memory
  605.         111         Unable to open or lock disk logging file
  606.         114         Unable to open BBS ads database file
  607.         115         Invalid filename provided by user on command-line
  608.         116         Invalid path provided by user on command-line
  609.         200         Undefined error (internal to AntiAd program)
  610.