home *** CD-ROM | disk | FTP | other *** search
/ WDR Computer Club Digital 1995 August / CLUB_0895.BIN / antiviru / arfav / arfbuild.doc < prev    next >
Text File  |  1995-06-25  |  47KB  |  1,081 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7.           ▌                                    ▐
  8.           ▌         ARFBUILD.EXE  and          ▐
  9.           ▌ ARFMAIN.BIN -- THE RESIDENT DRIVER ▐
  10.           ▌                                    ▐
  11.           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12.  
  13.     Overview: ARFBUILD.EXE, ARFMAIN.BIN, and ARFDISP.BIN....1
  14.     What is an Anti-Virus "Shield"?.........................2
  15.     Installation - using ARFBUILD.EXE.......................3
  16.     Possible Warnings from ARFBUILD.EXE.....................5
  17.     Loading ARFMAIN via CONFIG.SYS..........................7
  18.     Errors During Boot......................................8
  19.     Warning Messages: From an INJECTed MODULE..............10
  20.     Warning Messages: From the AV Shield...................11
  21.         Common Warnings....................................12
  22.         More Serious Warnings..............................16
  23.         (What to do if you get a virus)....................16
  24.     Command-Line Switches..................................18
  25.     SOME FINAL NOTES:......................................21
  26.         False Alarms.......................................21
  27.         Why Ours Is The Best...............................23
  28.         A Special Note For Windows(tm) Users...............26
  29.         Known Conflicts with other Software................27
  30.  
  31.        This manual and accompanying software are copyrighted
  32.         (c) 1995 Leonard P. Gragson and Stephen M. Poole,
  33.               All Rights Reserved.
  34.        Revision history: Updated June, 1995.
  35.  
  36.                                 Page 1
  37.  
  38.     INTRODUCTION AND OVERVIEW
  39.     ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  40.  
  41.     The first version of ARFMAIN.BIN simply provided display functions
  42.     for INJECTed modules.  By moving the bells and whistles into a
  43.     separate driver, we could reduce the size of the injected module
  44.     without compromising protection.  But then we wondered: why not
  45.     let the driver perform some anti-virus shielding of its own?
  46.  
  47.     The more we looked at it, the more intrigued we became.  First,
  48.     (as of this writing, anyway), very few viruses attack device dri-
  49.     vers; we'd gain that advantage to start with.  Plus, a device dri-
  50.     ver would get into the system during the actual bootup process,
  51.     and could thus begin protecting the system sooner.  Thus, we deci-
  52.     ded to implement the idea, and ARFMAIN.BIN came into existence.
  53.  
  54.     If you've unzipped this package, and have been looking for ARFMAIN
  55.     .BIN and can't find it, you're not crazy.  For a number of reasons
  56.     (discussed below), we instead provide a special program (ARFBUILD
  57.     .EXE) that will custom-build the  ARFMAIN.BIN driver for your PC.
  58.     
  59.     You DO get the original version of the driver, ready-to-install as
  60.     ARFDISP.BIN.  This is a display-only driver which DOES NOT contain
  61.     any anti-virus protection.  This should only be used if you're
  62.     sure that the shield in ARFMAIN.BIN conflicts with your system.
  63.  
  64.     Finally, a note to novice computer users: Device drivers, by nat-
  65.     ure, are kindof picky, and sometimes this discussion will get a
  66.     little technical-sounding.  But don't let that put you off; it's
  67.     really not as complex as it may sound.  We've tried to provide
  68.     detailed instructions here, and you can contact us if you have
  69.     questions or problems.
  70.  
  71.           Leonard P. Gragson    - Compuserve: 73131,1034
  72.                     - America On-Line: Arfman2
  73.           Stephen M. Poole, CET - Compuserve 71234,3263
  74.                     - America On-Line: SMPoole
  75.  
  76.                                 Page 2
  77.  
  78.     WHAT IS AN ANTI-VIRUS "SHIELD"?
  79.     ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  80.  
  81.     Images of Byzantine soldiers with shields and helmets come to
  82.     mind, but this is pretty simple.  An anti-virus "shield" does just
  83.     as its name implies: it helps "shield" your system from a virus
  84.     infection.  Precisely how it does this will vary from one shield
  85.     to the next, and some are more effective than others.
  86.  
  87.     Your PC, while extremely easy to use and update, contains some
  88.     glaring weaknesses in the security department.  The worst is that
  89.     just about anyone can do anything to any file without being chal-
  90.     lenged.  An eight-year-old kid could write a program in QBASIC
  91.     that could eat half the files on your hard drive ... and the com-
  92.     puter would cheerfully comply without complaint.
  93.  
  94.     It would only be afterwards, when you started getting "Bad Command
  95.     or File Name" and discovered that you just gained 1.5 zigabytes of
  96.     free space on your drive that you would realize that something
  97.     strange had happened.
  98.  
  99.     An "anti-virus shield" (also called a "behavior blocker") warns
  100.     you when something like this happens and gives YOU the final say-
  101.     so over whether it should happen.
  102.  
  103.     We feel (not surprisingly) that our shield is the best available
  104.     for a number of reasons.  Just one example: our shield checks a
  105.     number of undocumented system calls and data areas, which many
  106.     anti-virus shields ignore.
  107.  
  108.     ARFBUILD.EXE was written in hand-coded assembler for speed and
  109.     compactness, and the resulting driver is full of Hacker's Tricks
  110.     and Other Wierd Stuff.  The driver takes up only about 8K of mem-
  111.     ory and is lightning fast, and yet, it still manages to check eve-
  112.     ry critical system call for suspicious activity.  It's so fast,
  113.     in fact, you'll normally never even notice that it's there.
  114.  
  115.                                 Page 3
  116.  
  117.     INSTALLATION
  118.     ▀▀▀▀▀▀▀▀▀▀▀▀
  119.  
  120.         BASIC PROCEDURE
  121.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  122.  
  123.     Installing ARFMAIN.BIN on your system may be different from what
  124.     you're used to.  Here's how you do it (INSTALL may have already
  125.     done some of this for you):
  126.  
  127.     1 - Use DOS's FORMAT /S to create a bootable floppy that you can
  128.         use in case of problems.  (This is a must-have whether you use
  129.         our stuff or not!)  Don't put a CONFIG.SYS or AUTOEXEC.BAT on
  130.         this floppy; we want a "clean-boot" floppy. Copy ARFBUILD.EXE,
  131.         LOAD.COM (PRO-BOOT), and INJECT.COM onto the floppy.
  132.  
  133.     2 - Boot onto the floppy and run ARFBUILD.EXE; it will create an
  134.         ARFMAIN.BIN driver on the floppy that's unique for your PC.
  135.         (If you get warning messages, go to the next section.)  Copy
  136.         the driver onto your hard drive.
  137.  
  138.     3 - Remove the floppy, label it "ARF Recovery Disk", WRITE-PROTECT
  139.         IT, and store it in a safe place.  (To write-protect a 3.5"
  140.         floppy, you slide UP the little tab on the back so that light
  141.         can get through the hole.)  That floppy is your main line of
  142.         defense if you ever suspect a virus.  This is important:
  143.  
  144.          ALWAYS CHECK THE WRITE-PROTECT TAPE OR TAB BEFORE
  145.              YOU INSERT THAT DISK INTO ANY DRIVE SLOT!
  146.  
  147.     4 - Use DOS's EDIT command (or some other ASCII TEXT editor) to
  148.         add a line such as this one
  149.  
  150.                   DEVICE = ARFMAIN.BIN
  151.  
  152.         ... to the end of your CONFIG.SYS file.
  153.  
  154.  
  155.                                 Page 4
  156.  
  157.     5 - Reboot the system.  Don't use CTRL-ALT-DEL; cut it off, wait
  158.         a few seconds, then cut it back on.  ARFMAIN.BIN will then be
  159.         loaded in memory, and will begin protecting your system.
  160.  
  161.         AN IMPORTANT NOTE!
  162.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  163.  
  164.         IMPORTANT!  THE ARFMAIN.BIN PRODUCED BY ARFBUILD.EXE
  165.         IS UNIQUELY CONFIGURED FOR THE MACHINE ON WHICH IT
  166.         WAS CREATED.  IF YOU TRY TO RUN IT ON A DIFFERENT
  167.         COMPUTER, YOU'LL GET CHAOS AND WIERDNESS (OR WORSE).
  168.         DON'T DO IT!
  169.  
  170.     If your friend wants an ARFMAIN.BIN on his/her PC, take all this
  171.     stuff over to their computer and build a unique ARFMAIN for THEIR
  172.     computer.  (Do it; they'll think you're a computer wizard.)
  173.     
  174.     Feel free to do this, too.  Remember, we don't require a registra-
  175.     tion fee of home users.  We want this software in as many hands as
  176.     possible; see REGISTER.DOC for details.
  177.  
  178.     ARFBUILD accepts one command-line argument -- a different name for
  179.     the ARFMAIN.BIN driver.  For example, if you use
  180.  
  181.                 ARFBUILD MYDRIVER.SYS
  182.  
  183.     ... the created driver will be named "MYDRIVER.SYS" instead of
  184.     ARFMAIN.BIN.  If you do this for more than one PC, why not use
  185.     different names for each computer?  For example, you might have
  186.     drivers named "MYHOME.SYS,"  "HELENS.SYS", and so on.
  187.  
  188.     For simplicity, we'll use the default "ARFMAIN.BIN" in all of our
  189.     documentation, but obviously, you should substitute your name for
  190.     the driver in everything that follows.
  191.  
  192.  
  193.                                 Page 5
  194.  
  195.         POSSIBLE WARNINGS FROM ARFBUILD.EXE DURING THE BUILD
  196.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  197.  
  198.     You could get one or more of these warning messages from ARFBUILD
  199.     as it constructs ARFMAIN.BIN on your system:
  200.     
  201.         Your interrupt 13h vector isn't in the expected place
  202.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  203.  
  204.     The eyes of most novice computer users just glazed over, but all
  205.     this means is that ARFBUILD.EXE didn't find the entry point for
  206.     the BIOS disk services where they should be.  Did you run ARF-
  207.     BUILD.EXE on a clean-booted floppy?  If not, you should!
  208.  
  209.     If you get this warning message when building on a clean boot,
  210.     you probably have some type of virus already in your computer.
  211.     Try booting, and then building, from a known-good floppy that was
  212.     prepared on some other machine.  If this message goes away, bad
  213.     news; that's almost certainly the case.  Contact us for informa-
  214.     tion on cleaning the virus, or use a commercial cleaning program
  215.     (this may not work if it's a very recent virus; contact us).
  216.  
  217.         Can't read the MBR/SBR from the hard drive
  218.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  219.  
  220.     This warning means that ARFBUILD.EXE couldn't read (or find) the
  221.     boot sectors of your hard drive with a direct hardware call.  A
  222.     number of things could cause this problem:
  223.  
  224.     1 - Your hard drive isn't bootable; you boot from a floppy, and
  225.         use the hard drive for storage only.  If that's the case, you
  226.         can't use ARFMAIN; ARFMAIN is basically a bootable hard-drive
  227.         protector.  ARFMAIN won't work at all on all-floppy systems.
  228.     
  229.     2 - Your hard drive isn't accessible; check your CMOS SETUP and
  230.         make sure the hard drive is installed properly.
  231.  
  232.  
  233.                                 Page 6
  234.  
  235.     3 - Your BIOS isn't 100% compatible with the PC (pretty rare now-
  236.         days), or you're not using a 100% compatible DOS (also rare).
  237.     
  238.     4 - You possibly have a boot-sector virus (not likely if you get
  239.         this message by itself, and no other warnings appear once the
  240.         driver is installed and in operation).
  241.  
  242.     5 - You may have an old, sluggish hard drive.  In this case, just
  243.         try ARFBUILD.EXE again.  If you get this warning after repeat-
  244.         ed tries, move on; you'll have to live with it.
  245.  
  246.     If it can't read the boot sectors, ARFBUILD constructs a default
  247.     ARFMAIN.BIN driver that doesn't check the boot sectors on bootup.
  248.     If that "default" build won't work properly on your system, you
  249.     may have to use ARFDISP.BIN and do without the resident shield.
  250.  
  251.         WARNING: The boot material read via INT 13h
  252.         doesn't match the material read directly!
  253.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  254.  
  255.     To check for a virus that may already be in your system, ARFBUILD
  256.     compares boot material read via the disk services to the same boot
  257.     stuff read directly via hardware; it should be identical.
  258.  
  259.     You SHOULD NOT get this message.  If you do, that's not a good
  260.     sign.  Try this: boot from a floppy that was formatted on a diffe-
  261.     rent, known-clean computer, then run ARFBUILD.EXE.  If this mes-
  262.     sage DOESN'T appear, that's a positive indication that you have a
  263.     resident virus hiding in your hard drive's boot material.
  264.  
  265.         Can't Create ARFMAIN.BIN
  266.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  267.  
  268.     Either the disk is full, or is write protected.  For some reason,
  269.     ARFBUILD.EXE can't write the finished product out to disk.  Try a
  270.     different disk, or delete some unneeded stuff to make room.
  271.  
  272.  
  273.                                 Page 7
  274.  
  275.     LOADING THE DRIVER VIA CONFIG.SYS
  276.     ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  277.  
  278.     Once the driver has been built and copied into the desired sub-
  279.     directory on your hard drive, you simply place a line such as
  280.  
  281.                  DEVICE=ARFMAIN.BIN
  282.  
  283.     in your CONFIG.SYS file.  (Of course, if you've renamed the driver
  284.     you should use your new name instead of "ARFMAIN.BIN".)  The next
  285.     time you boot up, ARFMAIN will be in memory, and will start prote-
  286.     cting your system.
  287.  
  288.     Time for a Power User Tweak Tip.  If you have a 386 or better,
  289.     later versions of DOS and some third-party memory managers (ex.,
  290.     QEMM(tm)) will permit you to load ARFMAIN or ARFDISP high in mem-
  291.     ory.  This frees up more conventional memory for other programs.
  292.     Under DOS 5/6, you'd use the "DEVICEHIGH=" syntax; see your memory
  293.     manager's documentation for more details.
  294.  
  295.     One warning: if you're using an advanced memory manager that relo-
  296.     cates the BIOS and moves RAM into that space (such as QEMM(tm)'s
  297.     "stealth" feature), ARFMAIN.BIN will not work in a segment above
  298.     F000h.  Refer to your documentation to see how to force it lower
  299.     in memory.  Refer also to your DOS manual for more on CONFIG.SYS.
  300.  
  301.         IF YOUR SYSTEM HANGS
  302.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  303.  
  304.     (The poor novice user now has a mental image of the computer
  305.     swinging lifelessly from a noose of rope.  A "hang" is when your
  306.     system just stops working -- it "hangs up" -- and won't accept
  307.     any input from the mouse or keyboard.  The only cure is to reboot.
  308.     You may have to switch the computer off, wait a moment, and then
  309.     switch it back on, if it has a really bad case of the hangs.)
  310.  
  311.  
  312.                                 Page 8
  313.  
  314.     Those who've used DOS for a while, especially those who've inst-
  315.     alled device drivers, know that the system could hang if anything
  316.     goes wrong during the boot.  DOS Version 6 (finally!) added the
  317.     ability to boot "clean" by holding the F5 key during the boot.  If
  318.     your system hangs, you can use the F5 key under DOS 6; under earl-
  319.     ier DOS versions, you'll have to use a bootable floppy.
  320.  
  321.     Once you get the system booted and on line, the quick-fix is just
  322.     to delete ARFMAIN.BIN, then boot again normally.  (DOS may warn,
  323.     "Bad or Missing ARFMAIN.BIN," but that's OK.)  If you determine
  324.     that ARFMAIN isn't compatible with your system, use ARFDISP inst-
  325.     ead.  In the unlikely event that ARFDISP is also incompatible, you
  326.     may have to do without both shield and detailed error messages.
  327.  
  328.     ERRORS DURING THE BOOT LOAD
  329.     ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  330.  
  331.     Now we have a second tier of messages: those displayed by ARFMAIN
  332.     while it's being loaded during bootup.  You should see something
  333.     like:
  334.  
  335.        ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  336.        ▌                                                        ▌
  337.        ▌    ARF Resident Anti-Virus Utilities, version 2.1.     ▌
  338.        ▌    (c)1995 Leonard P. Gragson and Stephen M. Poole     ▌
  339.        ▌                 All rights reserved.                   ▌
  340.        ▌                                                        ▌
  341.        ▌      Checking memory location ...   OK                 ▌
  342.        ▌      Checking DOS Version ...       OK                 ▌
  343.        ▌      Checking MBR/SBR ...           OK                 ▌
  344.        ▌      Checking program code ...      OK                 ▌
  345.        ▌                                                        ▌
  346.        ▌      Installation completed successfully!              ▌
  347.        ▌                                                        ▌
  348.        ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  349.  
  350.  
  351.                                 Page 9
  352.  
  353.     Each of the self-check lines indicates "OK", so the driver was
  354.     installed properly.  If an error occurs, though, you'll see an
  355.     error message under the line that announced the check:
  356.  
  357.         Trying to load above F000h
  358.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  359.  
  360.     As mentioned above, the ARFMAIN.BIN driver won't work if you have
  361.     a memory manager that tries to load it above segment F000h.
  362.  
  363.         Your DOS version is too old
  364.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  365.  
  366.     Self-explanatory; go buy a new DOS!  All of the ARF utilities
  367.     require at least DOS 3.3.
  368.  
  369.         Boot records have been altered!
  370.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  371.  
  372.     Something has altered the boot record code on the hard drive.  If
  373.     you've just upgraded to a new version of DOS or Windows(tm), you
  374.     may get this message; simply run ARFBUILD.EXE again to generate a
  375.     new ARFMAIN.BIN for the new operating system.
  376.  
  377.     If you haven't made any recent changes at the operating system
  378.     level, though, this is almost surely being caused by a boot-sector
  379.     virus that has gotten into your system.  See HELPME!.DOC.
  380.  
  381.     NOTE: If you're going to use the PRO-BOOT partition, you should
  382.     install it before you run ARFBUILD.EXE (PRO-BOOT changes the MBR,
  383.     too, so you'd just have to run ARFBUILD all over again).
  384.  
  385.         ARFMAIN.BIN has been altered!
  386.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  387.  
  388.     Also bad news.  Something (probably a virus) has attacked ARFMAIN,
  389.     altering the program code.  See HELPME!.DOC.
  390.  
  391.  
  392.                                 Page 10
  393.  
  394.     WARNING MESSAGES FROM AN INJECTed MODULE
  395.     ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  396.  
  397.     Assuming that we've made it through the boot OK, and that ARFMAIN
  398.     is now in memory and at work, you could get any of the following
  399.     messages if a problem is detected.
  400.  
  401.     First, let's look at the messages that could be displayed if an
  402.     INJECTed MODULE in one of your program files detects a problem.
  403.     When this happens, the MODULE will use ARFMAIN.BIN to sound an
  404.     attention-getting (some might say annoying) alarm and display a
  405.     red box such as this one:
  406.  
  407.         ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  408.         ▌                                                    ▐
  409.         ▌                 W A R N I N G ! ! !                ▐
  410.         ▌                                                    ▐
  411.         ▌   File fails CRC Check!                            ▐
  412.         ▌   (Old value 4354h          Current value 0536h)   ▐
  413.         ▌                                                    ▐
  414.         ▌   Press any key to begin rebuilding the file ...   ▐
  415.         ▌                                                    ▐
  416.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  417.  
  418.     In this case, when you started the INJECTed program, the injected
  419.     module inside the program detected changes to the program code and
  420.     data.  This caused the program to fail the CRC check, giving this
  421.     warning.
  422.  
  423.     When you're ready, do as the prompt says: press any key, and the
  424.     MODULE will begin repairing the file.
  425.  
  426.     (If you want a harmless demonstration, try this: inject SORT.EXE
  427.     or some other program.  Then change it to a read-only file with
  428.     "ATTRIB SORT.EXE +r".  The next time you run SORT, you'll see the
  429.     warning box and SORT.EXE will repair itself.)
  430.  
  431.  
  432.                                 Page 11
  433.  
  434.     NOTE: The operation of the INJECTed module is independent of ARF-
  435.     MAIN.  The module merely calls ARFMAIN.BIN to help display more
  436.     detailed error messages.  If ARFMAIN is disabled or not present,
  437.     INJECTed modules will still function normally, and will still ful-
  438.     ly protect your program files.  You just won't get a detailed re-
  439.     port describing the problem that caused the rebuild.
  440.  
  441.     See INJECT.DOC; and if you suspect a virus, see HELPME!.DOC.
  442.  
  443.     Each warning that the INJECTed module could display relates to
  444.     some form of possible virus activity.  For example, some viruses
  445.     change file attributes; that's why we check for that.  Many virus-
  446.     es also change the time and date stamp, so we check for that, too.
  447.     (You can refer to VIRUS.DOC for more information on viruses.)
  448.  
  449.     Programmers can expect to get some warnings from time to time
  450.     (they alter files for a living).  For example, if a programmer
  451.     DEBUGs an injected .COM program, alters some of the code, and then
  452.     write the new .COM back out to disk, they'll get a warning screen.
  453.     But for the average user,
  454.  
  455.          ONCE A PROGRAM FILE HAS BEEN INSTALLED AND CONFIGURED,
  456.                IT SHOULD NOT CHANGE -- PERIOD!
  457.  
  458.     By far, these warnings are the most serious:
  459.  
  460.         - CRC check failure (the program has been altered)
  461.         - Bytes at beginning and/or end of the file have changed
  462.         - Program entry point or stack size has changed
  463.  
  464.     WARNINGS FROM THE DRIVER'S INTERNAL AV SHIELD
  465.     ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  466.  
  467.     The ARFMAIN.BIN driver, as mentioned, also acts as an anti-virus
  468.     "shield," and will display various warning messages itself if it
  469.  
  470.  
  471.                                 Page 12
  472.  
  473.     detects suspicious activity.  Let's look at what the driver might
  474.     warn you about.
  475.  
  476.         Common Warnings
  477.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  478.  
  479.     All of these warnings appear in a rectangular box in the middle
  480.     of the display screen, and most will prompt for a "Y/N" ("Yes/No")
  481.     response.  If you select "yes", the operation will be permitted to
  482.     continue as though nothing had happened.  As a general rule, sele-
  483.     cting "No" (the default) will cause the driver to tell the calling
  484.     program that the operation isn't permitted.
  485.  
  486.     In many cases you can ignore these warnings.  (You can't call such
  487.     a case a "false alarm", though, because the described activity IS
  488.     happening; the driver is simply making sure you approve of it.)
  489.     So when should you suspect a virus?  Follow these guidelines:
  490.  
  491.     1.  Look for CHANGES.  For example, a program hasn't been causing
  492.         any warnings before; why should it suddenly start now?  You'd
  493.         especially get suspicious if an old program started giving
  494.         warnings right after you'd just run a new program; it's very
  495.         possible that the new program was infected, and has spread
  496.         that infection to other files on your harddrive.  (If INJECTed
  497.         programs suddently start complaining, you can be sure of it.)
  498.  
  499.     2.  Look for REPEATED activity.  Many viruses will attempt to open
  500.         a number of different, unrelated files.  For example, you
  501.         might get, one after another:
  502.  
  503.                "Attempt to open ALPHA.COM"
  504.                "Attempt to open BETA.EXE"
  505.                "Attempt to open GAMMA.COM"
  506.  
  507.         ... and so on.  This is very typical of a virus doing a direc-
  508.         tory search, looking for files to infect.  You should especi-
  509.         ally get suspicious if it's attempting to open program files
  510.         in other subdirectories.
  511.  
  512.  
  513.                                 Page 13
  514.  
  515.     3.  Look for SUSPICIOUS activity.  Why should your word processor
  516.         need to open "COMMAND.COM" for write?  Why would a database
  517.         program want to access the boot sectors?
  518.         
  519.     4.  Look for MULTIPLE warnings.  A single, isolated warning is
  520.         probably just One Of Those Things.  Two or more warnings is
  521.         cause for concern.
  522.  
  523.     Now let's look at the actual warning messages, starting with ...
  524.         
  525.         WARNING: Opening for R/W access:  <program.com/exe/etc.>
  526.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  527.  
  528.     The program that you're currently using is trying to open a "code"
  529.     file (.EXE, .COM, .BIN, etc.) for read/write access.  (Programmers
  530.     will become very familiar with this warning; LINK, DEBUG and many
  531.     other programmer's utilities open program files for write access.)
  532.  
  533.     You can choose "Y" (Yes, continue) or "N" (no).  If you choose "N"
  534.     the driver will tell the calling program that the file is write-
  535.     protected, preventing access to it.  (Programmers, just say YES.)
  536.  
  537.     Some legitimate programs can cause this warning screen; in fact,
  538.     if you want to see it, enter "DEBUG SORT.EXE" at the DOS prompt.
  539.  
  540.     INSTALL and configuration programs are a problem.  Many of them
  541.     write to .EXE and .COM files, and they WILL trigger this warning.
  542.     One solution is to temporarily disable the driver (by removing the
  543.     "DEVICE=ARFMAIN.BIN" line in CONFIG.SYS) until after the install.
  544.     That's far from ideal, though; even just-out-of-the-box software
  545.     could be infected (it has happened before, even with stuff from
  546.     top software houses).
  547.  
  548.     Unfortunately, there are no hard and fast rules for an installer
  549.     or configuration program.  If you've INJECTed all your files, you
  550.     should be OK.  Unless you get a warning on a file that you honest-
  551.     ly think the installer shouldn't be touching, just press "Y" at
  552.     each warning.
  553.  
  554.  
  555.                                 Page 14
  556.  
  557.         WARNING: Renaming/changing attributes: <program>
  558.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  559.  
  560.     You'll get fewer warnings from legitimate programs with this one.
  561.     We included this check because many viruses like to rename files
  562.     and/or change file attributes (see VIRUS.DOC).
  563.  
  564.     DOS's own ATTRIB command can cause this warning (obviously), as
  565.     can a few other programs, primarily utilities that change things
  566.     at the system or boot configuration level.  The guidelines sug-
  567.     gested above apply (especially for INSTALL-type programs).
  568.  
  569.         Attempt to overwrite the boot/partition sectors!
  570.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  571.         and Attempt to write directly via INT 26h!
  572.             ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  573.  
  574.     Hmmm ... these may be a little more serious.  There ARE some
  575.     legitimate programs that can cause these, but we felt like we had
  576.     to warn you, because so many viruses do these things.  Legitimate
  577.     programs which can cause these warnings include disk defraggers
  578.     and data recovery utilities, and system-level utilities such as
  579.     FORMAT and SYS.  But most of your software should NOT.
  580.     
  581.     SUPERHINTS: The "boot sector" warning should NOT appear when
  582.     you're doing routine read/writes to a floppy.  For example, say
  583.     you've just finished writing a gooey love letter to your sweetie,
  584.     and you're saving it to drive A:.  If you see "Attempt to over-
  585.     write the boot sector," that's not good.  Some viruses wait for
  586.     such disk access to sneak in their own writes to the boot sector;
  587.     you won't be as likely to notice.  (The sneaky little devils.)
  588.  
  589.     As for the second warning, it used to be common for programs to
  590.     use INT 26h to write to disk, so older programs can cause this
  591.     warning.  But Microsoft(tm), the producers of DOS, have recently
  592.     warned that INT 26h is obsolete, and that new programs shouldn't
  593.     use it (so why do their own FORMAT, SYS, SCANDISK and even the
  594.     DEFRAG program that comes with DOS 6 use it?  Hey; go figure.)
  595.  
  596.  
  597.                                 Page 15
  598.  
  599.         INT xxh vector has changed: xxxx:xxxxh
  600.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  601.  
  602.     There's no maybe to this one; a number of legitimate programs do
  603.     wierd things to the interrupt table in your computer, and WILL
  604.     cause this warning (SMARTDRV.EXE, for example).  We added the /I13
  605.     and /I21 switches (see the next section) for this reason.
  606.  
  607.     If you get this warning repeatedly with the same program, and no
  608.     other warning messages appear (and INJECTED programs appear to be
  609.     fine), it's probably a false alarm; use the /I13 or /I21 command-
  610.     line switch to disable it at that address (see below).
  611.     
  612.     This is a bit different from the previous messages; you're not
  613.     asked to proceed, merely to press a key to continue.  Earlier
  614.     versions of the driver used the "Serious Message" approach (see
  615.     below), locking the PC up if you didn't want to proceed.  But so
  616.     many programs change interrupts in a non-standard manner, and we
  617.     were getting so many false alarms, we decided to do it this way.
  618.  
  619.     Technically, this warning is triggered by any program that hooks
  620.     INT 13h or 21h in a "suspicious" manner.  The problem lies in de-
  621.     fining "suspicious"; if we took the narrowest possible view, you'd
  622.     get constant warning screens.  (This is a function of how DOS
  623.     upper memory is implemented, -not- a problem with ARFMAIN.)
  624.  
  625.     Look for CHANGES: A program that hasn't been giving this warning
  626.     before, and has now started doing so, for example.  THAT'S when
  627.     you should get suspicious.  In general, if you have a virus, you
  628.     also won't get this message by itself; it'll appear with others.
  629.  
  630.     If you make changes to your boot configuration, you could get new
  631.     warnings, too.  Just changing the order of the DEVICE= lines in
  632.     CONFIG.SYS or adding a new line to AUTOEXEC.BAT can change where
  633.     the final INT 13/21h vectors will be at run time; you may have to
  634.     change your /I13 and /I21 switches (again, see below).
  635.  
  636.  
  637.                                 Page 16
  638.  
  639.         More Serious Warnings
  640.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  641.  
  642.     The common warnings just discussed will allow operation to conti-
  643.     nue if you give a "N" ("no") response.  The messages that follow,
  644.     however, default to a system hang for safety.
  645.  
  646.     These warnings are more serious than the previous ones.  Each is
  647.     described in detail below.  For all of them, though, the suggested
  648.     verification and repair procedure is as follows:
  649.  
  650.     1.  See the section "What To Do If I Get A Virus" in INJECT.DOC;
  651.     there is some very useful information there.
  652.  
  653.     2.  Switch the computer off, then boot from the write-protected
  654.     ARF Recovery floppy that you created when you installed ARF AV.
  655.  
  656.         WARNING!!! - BEFORE YOU PUT THAT FLOPPY INTO THE
  657.         DRIVE, MAKE SURE IT'S STILL WRITE PROTECTED!!!!
  658.  
  659.     Tape strips can fall off, and/or the sliding tabs in 3.5" floppies
  660.     can slip over time!  DO NOT under any circumstances let that disk
  661.     go into the drive when it's not write protected!  (If you do, you
  662.     CANNOT trust it anymore; and if a virus is suspected, use a diff-
  663.     erent computer to build a known-good bootable floppy to be safe.)
  664.  
  665.     3.  Use INJECT to scan and repair your files as needed (again, see
  666.     INJECT.DOC).
  667.  
  668.     4.  Use PRO-BOOT to check and restore the Main Boot and System Boot
  669.     Records as needed (see PRO-BOOT.DOC).
  670.  
  671.     5.  Boot the system normally (ie, on the hard drive); unless you
  672.     get a fresh batch of warning screens, you should be OK now.  But
  673.     don't forget to delete the file that caused the warning (register-
  674.     ed users may send a copy of the file to us for analysis).
  675.  
  676.  
  677.                                 Page 17
  678.  
  679.     6.  If you do get other warnings, contact us for more assistance.
  680.     As explained in REGISTER.DOC, we will only provide limited support
  681.     to non-registered users.  Registered users can expect full support
  682.     for recovery after a virus attack.
  683.     
  684.     Here are the serious warnings that you could get:
  685.  
  686.         WARNING: System INT xxh is being tunneled!
  687.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  688.  
  689.     This is indeed a serious warning.  NO NORMAL SOFTWARE SHOULD EVER
  690.     CAUSE THIS WARNING (and by "normal," we mean ALL of the software
  691.     that the typical user -- even a programmer -- might use)!
  692.  
  693.     What is "tunneling?"  Just as a thief might try to dig under a
  694.     fence to get inside your property, some viruses use a hardware
  695.     tracing technique to "tunnel" past a shield such as ARFMAIN, and
  696.     "dig" into the heart of the system.  This allows them to bypass
  697.     the shield and call the system directly.
  698.  
  699.     If you see this warning, you almost certainly have a virus trying
  700.     to install itself in your system; we strongly recommend that you
  701.     choose the default "No" and let the driver hang the system.
  702.  
  703.     That's the bad news; the good news is, selecting "N" will, in most
  704.     cases, stop the virus COLD before it has a chance to spread.
  705.  
  706.     The only "legitimate" programs we know of that might cause a false
  707.     alarm here are very specialized program analyzers and tracers.
  708.     But these are extremely rare (even CODEVIEW, DEBUG, and TD386 will 
  709.     not cause this warning, for example).
  710.  
  711.  
  712.                                 Page 18
  713.  
  714.         This BIOS memory size report has been altered ...
  715.         ... current size is xxxh ....
  716.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  717.  
  718.     You may get a false alarm on this one during and immediately after
  719.     bootup, but once you begin a normal session, you should NEVER see
  720.     this.  If you do, something is seriously wrong; you are probably
  721.     witnessing a "stealth" virus as it first tries to install itself
  722.     in your system.
  723.  
  724.     If you're going to get a false alarm, you'll get it when you first
  725.     install and use ARFMAIN, and/or right after making changes to your
  726.     CONFIG.SYS and AUTOEXEC.BAT files.  In that case, you can use the
  727.     /Mxxx command-line switch to disable the warning (see below).
  728.  
  729.     But once you've installed ARFMAIN and have been using it for a
  730.     while, you should NOT get this message.  ESPECIALLY if you get
  731.     this message when you first run a new program, you should kill it
  732.     and follow the recovery procedure described above.
  733.  
  734.     COMMAND-LINE SWITCHES
  735.     ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  736.  
  737.     To help minimize false alarms, a few command-line switches are
  738.     supported by ARFMAIN.BIN.  (These have no effect on ARFDISP.BIN,
  739.     because it doesn't have the anti-virus shield.)
  740.  
  741.     The basic syntax for the CONFIG.SYS line that would install the
  742.     driver is as follows:
  743.  
  744.           DEVICE(HIGH)=ARFMAIN.BIN <optional switches>
  745.  
  746.     The DEVICE or DEVICEHIGH command, of course, is what "loads" the
  747.     driver; see your DOS manual.  The optional switches are described
  748.     below.  Remember to specify a path if ARFMAIN.BIN isn't in the
  749.     root directory; for example,
  750.  
  751.  
  752.                                 Page 19
  753.  
  754.           DEVICE=C:\ARFSTUFF\ARFMAIN.BIN <optional switches>
  755.  
  756.     Each of the switches is intended to attack a specific type of
  757.     false alarm, and we'll look at each in turn.
  758.  
  759.         /Mxxx
  760.         ▀▀▀▀▀
  761.  
  762.     This switch allows you to tell the driver the size of your
  763.     conventional memory in hex kilobytes.  (The default is 280h, or
  764.     640K).  This can help prevent false "Memory Size" warnings.
  765.  
  766.     If you're not familiar with hexadecimal numbers and other such
  767.     nonsense, the easiest way to set this switch is just to boot the
  768.     computer and write down the memory size specified in the warning
  769.     screen (it'll be displayed in hex, which is what we want).
  770.  
  771.     For example, suppose you've just installed the driver, and when
  772.     you boot, you get the warning box.  It states that "the BIOS mem-
  773.     ory size has changed," and that the current size is 27Fh.  You
  774.     might use this line in your CONFIG.SYS file:
  775.  
  776.             DEVICEHIGH=ARFMAIN.BIN /M27F
  777.  
  778.     Note that there are no spaces in the switch itself, and that the
  779.     "h" suffix on the "27Fh" isn't required.
  780.  
  781.     IMPORTANT NOTE: If the memory size reported by the warning screen
  782.     is different from 280h or 27Fh, you could have a virus.  These are
  783.     the only two values we're familiar with on modern PCs with 640K or
  784.     more memory.
  785.  
  786.  
  787.                                 page 20
  788.  
  789.         /I13,ssss:oooo
  790.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  791.         /I21,ssss:oooo
  792.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  793.  
  794.     These are essentially the same, and allow you to specify a single
  795.     known-good vector for INT 13h and for INT 21h.
  796.  
  797.     This is another case where we had to weight compromises, and dec-
  798.     ided to implement this to support those cases where a legimate
  799.     program does funky things to the interrupt table.  Adding code to
  800.     the driver to automatically detect this might provide a possible
  801.     "back door" for a virus to disable the driver.
  802.  
  803.     (For example, SMARTDRV.EXE causes this warning when it loads in
  804.     upper memory because it remaps some interrupts to upper memory.
  805.     But so do a number of viruses!  Adding code to permit SMARTDRV to
  806.     do it would mean that some viruses might get past the driver.)
  807.  
  808.     By providing a single, known-good interrupt vector address for
  809.     INT 13h or INT 21h, you can safely eliminate false alarms.
  810.  
  811.     Note the precise syntax: no spaces, and a comma after the "/I13"
  812.     or "/I21" specifying the interrupt.  The "ssss" value is the
  813.     segment in hex, and "oooo" is the offset in hex.
  814.  
  815.     Again, if you're no good with hexadecimal, just watch the display
  816.     and write down the numbers in the message box.
  817.  
  818.     For example, suppose you get the warning screens during boot, and
  819.     they specify that the current vector for INT 13h is C868:16D2h,
  820.     and the current vector for INT 21h is C868:1492h.  You might use a
  821.     line line like this one in your CONFIG.SYS file:
  822.  
  823.          DEVICE=ARFMAIN.BIN /I13,C868:16D2 /I21,C868:1492
  824.  
  825.                                 Page 21
  826.     SOME FINAL NOTES
  827.     ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  828.  
  829.         FALSE ALARMS
  830.         ▀▀▀▀▀▀▀▀▀▀▀▀
  831.  
  832.     You can compare computer viruses to vandals who break into your
  833.     home and break things for no real purpose.  You can also compare
  834.     the ARFMAIN.BIN driver to a security system that tries to catch
  835.     them before they can get in and do their damage.
  836.  
  837.     That's a good analogy, too, because there are some similarities.
  838.  
  839.     The PC is easy to use and easy to upgrade.  By simply popping in a
  840.     disk, you can install a new software package.  But convenience has
  841.     a price, and we can compare it to an unlocked door on a house: 
  842.     convenient for you and the family ... but also for the bad guys!
  843.  
  844.     Installing locks and an alarm system means you lose convenience.
  845.     You'll have to remember alarm codes and get new keys and all that
  846.     nonsense.  You'll have to remember not to enter the house while
  847.     the alarm is active, too.  Anti-virus software is a lot like that;
  848.     if it's going to work, you may be inconvenienced from time to
  849.     time.  Not often, but it'll happen.
  850.  
  851.     Let's continue the analogy.  You want the alarm system to be sens-
  852.     itive enough to catch bad guys, but not so sensitive that you get
  853.     constant false alarms.  Finding the right setting involves some
  854.     compromises.  For maximum protection, you'll err on the side of
  855.     caution, though, and that's what we've done.
  856.  
  857.     (We might cynically point out that one reason why some anti-virus
  858.     software isn't totally effective is because many companies are so
  859.     terrified about causing false alarms.  We'd rather treat you as an
  860.     adult, warn you that you may get a false alarm from time to time,
  861.     and provide maximum protection.)
  862.  
  863.  
  864.                                 Page 22
  865.  
  866.     But this where the analogy ends; actually, many of these warning
  867.     screens aren't really "false" alarms.  The described activity *IS*
  868.     happening; ARFMAIN is simply making sure you know about it.
  869.  
  870.     Why will you occasionally get a warning screen on a legitimate
  871.     program?  It's simple: for every virus-like activity that you can
  872.     name, we can name at least one legitimate program that does the
  873.     same thing.  We've already mentioned writing to the boot sectors
  874.     with FORMAT; there are dozens of other examples.
  875.  
  876.     So ... could we have eliminated some of these warnings?  Probably.
  877.     But this is a critical point:
  878.  
  879.         IF YOU PUT !ANYTHING! IN AN ANTI-VIRUS PROGRAM TO DISABLE
  880.         IT, TURN IT OFF, OR EVEN MERELY MAKE IT "IGNORE" CERTAIN
  881.         PROGRAMS, THE VIRUS COMMUNITY !WILL! LEARN ABOUT IT, AND
  882.         !WILL! TRY TO USE IT TO THEIR ADVANTAGE.
  883.  
  884.     (We had a hard enough time convincing ourselves just to support
  885.     command-line switches!)
  886.  
  887.     Read that.  Take it to heart.  Memorize it.  And if you're ever
  888.     irritated by a warning screen, read it again.
  889.  
  890.     Can we share just one true story?
  891.  
  892.     One major software house released their own anti-virus shield a
  893.     few years back.  This particular shield is now considered a joke 
  894.     in the virus community; it's completely ineffective against the
  895.     majority of viruses produced in the last year or so.
  896.  
  897.     Why?  To prevent false alarms, this manufacturer put a secret
  898.     "switch" in the shield.  Their other programs could call this
  899.     switch to turn the shield off while they did "suspicious" stuff,
  900.     such as writing to the boot records of the disk.  No false alarms.
  901.  
  902.  
  903.                                 Page 23
  904.     When they were done, their other programs would switch the shield
  905.     back on, and all was well.  Right?
  906.  
  907.     Yeah, RIGHT.  Virus writers may be somewhat warped, but they are
  908.     NOT stupid.  When they noticed that this manufacturer's other
  909.     programs were mysteriously able to do things (like write to boot
  910.     sectors) without setting off an alarm, they got curious.  They
  911.     looked at the shield's code and discovered the switch.  Within a
  912.     matter of DAYS (no exaggeration!), viruses were being produced
  913.     that could switch that shield off.
  914.  
  915.     True story, folks, and we don't want to repeat that mistake!
  916.  
  917.     (So how does ARFMAIN know when INJECT is writing an .COM or .EXE
  918.     file?  We ain't tellin', but you can be sure of one thing: we're
  919.     not using a software switch!)
  920.  
  921.         WHY OURS IS THE BEST
  922.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  923.  
  924.     ... and this relates to the previous section on false alarms.  If
  925.     you don't have time to read all of this stuff now, that's fine;
  926.     but do us -- and yourself -- a favor and read it soon.
  927.  
  928.     INJECT is the ideal file protector, combining a number of func-
  929.     tions (including detection and recovery) in one automatic, self-
  930.     contained unit.  PRO-BOOT is the ideal way to protect your Main
  931.     Boot Record, too; it's also an automatic, self-contained utility.
  932.  
  933.     ARFMAIN.BIN is the perfect complement to these other two programs;
  934.     it concentrates on virus-like activity at the system level.  What
  935.     INJECT and PRO-BOOT might miss, ARFMAIN will catch, and vice-versa.
  936.  
  937.     This overlapping protection is the key to our anti-virus package,
  938.     and we're confident enough to offer registered users a limited
  939.     money-back guarantee (see REGISTER.DOC for details).
  940.  
  941.  
  942.                                 Page 24
  943.     
  944.     We believe that ARFMAIN.BIN is the best anti-virus shield avail-
  945.     able for several good reasons:
  946.     
  947.     1 - First and foremost, our approach.  This is NOT another "me-
  948.         too" scanner/detector.  From the outset, we wanted to do more
  949.         than that; and the more research we did, the more convinced we
  950.         became that we were on the right track.
  951.  
  952.         See Leonard's comments in the "overview" in INJECT.DOC; much
  953.         of what he says there applies here.  Countless hours of res-
  954.         earch and testing have gone into identifying the reasons why
  955.         the PC family is susceptible to viruses in the first place,
  956.         and to FIXING those weaknesses.
  957.  
  958.         The ARF Anti-Virus package is a virus PREVENTION system, not
  959.         just a virus detector.
  960.  
  961.         (Using the alarm analogy one last time, we want to stop the
  962.         bad guys from getting into your system to start with.  If they
  963.         DO get past us, we want to stop them as soon as possible, and
  964.         strictly limit the amount of damage they might cause.)
  965.  
  966.     2 - In the same vein, the driver traps and inspects a number of
  967.         undocumented system calls and data areas.  This includes calls
  968.         to some undocumented network functions, which most anti-virus
  969.         programs presently ignore.  To be fair, few PC viruses use 
  970.         these "back doors" into the system at present ... but it'll
  971.         only be a matter of time before this becomes commonplace.
  972.         With our shield, you have the assurance that the protection is
  973.         already in place.
  974.  
  975.     3 - The device driver is custom-configured to your system.  As it
  976.         builds ARFMAIN.BIN, ARFBUILD checks your system carefully and
  977.         records some "signature" values in the driver.  If these
  978.         values ever change, you'll be warned.  This makes it far more
  979.  
  980.                                 Page 25
  981.  
  982.         effective than an anti-virus shield that has to compromise to
  983.         work on every system regardless of manufacturer.
  984.  
  985.     4 - Because it's a device driver, ARFMAIN.BIN is loaded during the
  986.         boot, even before the system shell (ex., COMMAND.COM) is
  987.         started.  We get into the system much sooner than an anti-
  988.         viral shield which must be invoked from the DOS prompt.
  989.  
  990.     5 - As the driver is being loaded during boot-up, it checks both
  991.         the Main Boot and System Boot Records (MBR/SBR) for changes
  992.         using a very effective CRC "signature" method.  If even a
  993.         single byte in the SBR/MBR has been altered, you'll be warned.
  994.  
  995.         (PRO-BOOT checks the boot records, too.  Again, you see the
  996.         overlapping protection.)
  997.  
  998.     6 - After boot-up, the driver runs in the background and automati-
  999.         cally checks for suspicious activity.  One such check is for
  1000.         "tunneling" -- a technique used by many viruses to "tunnel"
  1001.         past anti-virus software and get to the heart of the system.
  1002.  
  1003.     7 - The driver requires confirmation from the operator before any
  1004.         write can be done to the boot sectors of a disk.  (It's amaz-
  1005.         ing that most PCs *STILL* don't have this simple and effective
  1006.         protection.)
  1007.  
  1008.     8 - The device driver asks for confirmation on any attempt by a
  1009.         program to open a code file for R/W access, or any attempt to
  1010.         change the attributes of, or rename, a code file.
  1011.  
  1012.     9 - Just as the INJECTed module is very difficult to remove from
  1013.         an injected file, this driver is very resistant to tampering.
  1014.         In fact, the only way to disable this driver is to not use it
  1015.         -- ie, to remove the "DEVICE=ARFMAIN" line from CONFIG.SYS.
  1016.         We did it that way on purpose.
  1017.  
  1018.  
  1019.                                 Page 26
  1020.  
  1021.     ARFMAIN has been tested in memory against a number of viruses,
  1022.     from well-known older types (ex., the Jerusalem family) to those
  1023.     currently making the rounds (ex., SMEG/QUEEG and NATAS).  It has
  1024.     proven extrememly effective in all tests so far.
  1025.  
  1026.     Finally, we don't require a registration fee of home users (see
  1027.     REGISTER.DOC for full details; there are some real benefits to
  1028.     registration, but it's not required of home users).  We want this
  1029.     software in as many PCs as possible; please give copies of this
  1030.     package to your friends, family, and co-workers.  Spread the word!
  1031.  
  1032.     And remember: let us know how we did.  Suggestions and comments
  1033.     are not only welcome, but deeply appreciated.  No matter how minor
  1034.     the suggestion, if it makes sense, we'll include it in future
  1035.     releases of the package.  See "How to Contact Us" in REGISTER.DOC.
  1036.  
  1037.         A SPECIAL NOTE FOR WINDOWS(tm) USERS
  1038.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1039.  
  1040.     The ARFMAIN.BIN driver works fine with Windows versions 3.1 and
  1041.     3.11 in 386 Enhanced mode.  However, we can't guarantee it for all
  1042.     future versions of Windows.  Check with us for information on an
  1043.     update if you plan to change to a later version of Windows.
  1044.  
  1045.     IMPORTANT:  If you are using Windows(tm) on an older 286 computer,
  1046.     you are almost certainly running Windows in Standard mode.  You
  1047.     may experience problems with ARFMAIN.BIN in that case, due to the
  1048.     way that Windows captures the keyboard and video subsystems.  For
  1049.     example, if you shell out to DOS, when you attempt to return to
  1050.     Windows, the system may hang.
  1051.  
  1052.     Unfortunately, you have only two choices: either stop using Wind-
  1053.     ows on your 286, or stop using ARFMAIN.BIN.  Sorry ... . .
  1054.  
  1055.  
  1056.                                 Page 27
  1057.         
  1058.         KNOWN CONFLICTS WITH OTHER PROGRAMS
  1059.         ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1060.  
  1061.     We've taken great pains to make sure that ARFMAIN works with most
  1062.     popular software.  But in addition to the "false alarms" discussed
  1063.     above, as of this writing, we know of these possible conflicts:
  1064.  
  1065.     1.  SMARTDRV.EXE -- if you use SMARTDRV, disable write-back cach-
  1066.     ing.  If you don't, the system will appear to hang when exiting
  1067.     some programs (such as word processors).  (Write-caching on soft-
  1068.     ware based disk cachers is a bad idea in general, anyway; and
  1069.     SMARTDRV's ability to corrupt disks -- especially floppies --
  1070.     when write-back is enabled is well-known.)
  1071.  
  1072.     2.  Some older programs have a very small stack.  You may get the
  1073.     message "stack overflow" when these are used with the driver.  If
  1074.     you have an .EXE modification utility such as EXEHDR, you can
  1075.     increase the size of the stack.  Other than that, such programs
  1076.     will probably have to be avoided when the driver is in memory.
  1077.  
  1078.     If you know of other programs that appear to work improperly with  
  1079.     the ARFMAIN driver, please let us know and we'll add them to the
  1080.     list.
  1081.