home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / virusers / tbscan23.arj / TBSCAN.DOC < prev    next >
Text File  |  1991-05-01  |  44KB  |  1,014 lines

  1.     Documentation for TbScan V2.3
  2.  
  3.  
  4.  
  5. Regulations with regard to use and distribution of TbScan
  6. ---------------------------------------------------------
  7.  
  8.     Both TbScan and the  accompanying documentation are FREE-WARE.  This
  9.     simply means the program is covered by the copyrights of ESaSS,  but
  10.     can  be  used  and  distributed  freely  as  long  as  the following
  11.     regulations are observed.
  12.  
  13.     +   The program can be used by everyone, this also includes
  14.         commercial organisations, such as companies.
  15.  
  16.     +   For neither the TbScan program nor the accompanying docu-
  17.         menations any charges may be made.
  18.  
  19.     +   Concerning the distribution of the TbScan program no
  20.         administration and/or shipping costs exceeding the amount of
  21.         $5,- may be charged.
  22.  
  23.     +   Distribution of TbScan may only take place when both the program
  24.         and the documentation are left unmodified and only when the
  25.         complete program is supplied.
  26.  
  27.     +   So it is not allowed to distribute the program apart from the
  28.         documentation.
  29.  
  30.     +   ESaSS accepts no responsibility in case the program malfunctions
  31.         or does not function at all.
  32.  
  33.     +   ESaSS can never be held responsible for damage, directly or
  34.         indirectly resulting from the use of TbScan.
  35.  
  36.     +   Using TbScan means that you agree on these regulations.
  37.  
  38.  
  39.  
  40. Description TbScan
  41. ------------------
  42.  
  43.     TbScan is  a program  that was  developed to  trace viruses,  Trojan
  44.     Horses and other  threats to your  valuable data. It  is a so-called
  45.     virus scanner.
  46.  
  47.     A virus  scanner is  a program  that is  able to  search a signature
  48.     that  has  been  determined  beforehand.  Most  viruses consist of a
  49.     unique signature,  so by  means of  checking for  the appearance  of
  50.     this  signature  we  can  see  whether  or  not  a  program has been
  51.     infected.
  52.  
  53.     By  searching  all  your  program  files  for  the signatures of all
  54.     viruses already identified you  can easily find whether  your system
  55.     has been infected and, if that is the case, with which virus.
  56.  
  57.     By now already lots of  virus scanners have been developed.  However
  58.     TbScan has a number  of important and unique  characteristics. These
  59.     are:
  60.  
  61.  
  62.     +   TbScan works extremely fast.
  63.  
  64.         Most  virus  scanners  do  not   work  very  quickly.  This   is
  65.         nevertheless very important because you are surely one of  those
  66.         people who do not like to  stare at their display for a  quarter
  67.         of an hour. When a program  works slowly it is used less  often,
  68.         that is  a fact.  And even  the best  virus scanner is worthless
  69.         when it is not used.
  70.  
  71.         That is why special attention has been paid to the speed of  the
  72.         program. The result  is that on  average TbScan works  ten times
  73.         faster compared to other virus scanners.
  74.  
  75.         This speed can be achieved due to four measures:
  76.         1) The program has completely been written in machine
  77.            language.
  78.         2) The program uses the obsolete but faster FCB
  79.            functions of DOS.
  80.         3) The string search routine is highly optimised, and makes use
  81.            of special algorithms.
  82.         4) The program does not read the whole file, but only
  83.            the part in which viruses could appear. This is safe
  84.            because of the built-in interpreter that determines the
  85.            internal structure of a program. At the end of this file you
  86.            can read more about this interpreter.
  87.  
  88.  
  89.     +   TbScan can work separately from viruses that are already  active
  90.         in the memory. This is possible through a built- in debugger!
  91.  
  92.  
  93.         A lot  of viruses  are memory  resident, which  means they lodge
  94.         themselves in the memory of  your computer. From there they  can
  95.         easily influence all active programs you use. There are  already
  96.         viruses that "desinfect" a program  file, as soon an attempt  is
  97.         made to read it. When such  a virus is active, a virus  scanner,
  98.         reading a  program file  in order  to check  it, finds  that the
  99.         file is not infected (which is true at that moment).  But  after
  100.         the program file has been read the file is immediately  infected
  101.         again.  So  the  virus  scanner  reports  that no virus has been
  102.         found, but in reality it is actually there.
  103.  
  104.         TbScan offers a  unique solution for  this problem: it  contains
  105.         an automatic debugger  that works its  way through the  chain of
  106.         interrupts "single  stepping" until  it reaches  the DOS program
  107.         code. It saves the address which  is then found and uses it  for
  108.         the communication  with DOS.  In this  way viruses  will not see
  109.         anything of the operations of TbScan.
  110.  
  111.  
  112.     +   TbScan is fully programmable by means of a data file.
  113.  
  114.         Most of the time viruses  spread quickly. After a new  virus has
  115.         been found there  is often no  time to adapt  your virus checker
  116.         in order to make it capable of recognizing this new virus.  That
  117.         is why TbScan uses  a data file in  which the signatures of  the
  118.         viruses occur.  This file  can quickly  be adapted,  possibly by
  119.         yourself,  for  example  when  you  are  informed of a new virus
  120.         through  the  media.  TbScan  supports  among  other  things the
  121.         format which  is used  in the  file "virscan.dat".  This file is
  122.         regularly adapted and can be obtained at a lot of data banks.
  123.  
  124.  
  125.     +   TbScan supports wildcards in the signature.
  126.  
  127.         A lot  of viruses  encrypt themselves  after each  infection, so
  128.         the signatures always look different.  There is one part of  the
  129.         virus however that cannot be  modified: the routine that has  to
  130.         "unpack" the modified part of the virus.
  131.  
  132.         But it is a misunderstanding that this part of the virus  always
  133.         should look the same. The fact is there are viruses that  pepper
  134.         their  unpack-routine  with  useless  instructions which have no
  135.         effect and which are continuously replaced by other  nonsensical
  136.         instructions. Although the  unpack-routine always functions  the
  137.         same, it looks  different every time  because of these  changing
  138.         fake instructions!
  139.  
  140.         By inserting  wildcards on  places where  the fake  instructions
  141.         occur  in  the  signatures  of  the  data file, such a virus can
  142.         still be  traced and  identified. This  is the  case because any
  143.         character may be used on the place of a wildcard.
  144.  
  145.         It is also possible to  skip a variable amount of  garbage bytes
  146.         in the signature.
  147.  
  148.  
  149.  
  150.     +   TbScan supports normal text as the signature.
  151.  
  152.         Most signatures are inserted in ASCII-HEX. But when desired  you
  153.         can also specify  a normal text  as the signature.  In this case
  154.         you put the text between double quotation marks.
  155.  
  156.  
  157.     +   TbScan can also search the memory of your PC for viruses.
  158.  
  159.         When  in  the  future  viruses  should  be created that for some
  160.         reason  cannot  be  found  in  the  program file anymore, TbScan
  161.         offers you  the possibility  of tracing  them in  the memory  of
  162.         your PC  itself. So  in any  case you  will know  whether or not
  163.         your PC has been infected  by a certain virus.
  164.  
  165.  
  166.     +   TbScan is able  to scan Upper  Memory and the  HMA.  Most of the
  167.         other scanners don't recognize this kind of memory.
  168.  
  169.  
  170.     +   TbScan  also searchs for viruses  in the partition table  of the
  171.         hard  disk.  Some  viruses  use  the  partitiontable  as   their
  172.         residence. Not all virus scanners inspect the partition table.
  173.  
  174.  
  175.     +   TbScan  carries  some  special  routines  to  check  a stack  of
  176.         diskettes  at  a  high  speed.  You  don't have to signal TbScan
  177.         via  the  keyboard  that  a   diskette  has  been  changed:   It
  178.         determines this completely automatically.
  179.  
  180.  
  181.  
  182. USAGE OF THE PROGRAM
  183. --------------------
  184.  
  185.     TbScan is easy to use. The syntaxis is as follows:
  186.             TBSCAN [@][<path>][<filename>]... [<options>]...
  187.  
  188.     Drive and  path show  from where  should be  searched. To search the
  189.     disk C:\ and disk D:\ you have to enter:
  190.             TBSCAN C:\ D:\
  191.  
  192.     When no filename  has been specified  but only a  drive and/or path,
  193.     then the  specified path  will be  used as  top-level path.  All its
  194.     subdirectories will be processed too.
  195.  
  196.     When a  filename has  been specified  then only  the specified  path
  197.     will be searched. Subdirectories will not be processed.
  198.  
  199.     Wildcards in  the filename  are allowed.  It is  allowed to  specify
  200.     "*.*".   All executable  files will  be processed.  If you  want the
  201.     non-executables to be  processed too, then  you have to  specify the
  202.     "-a" parameter in combination  with the filename. "TBSCAN  TEST.DAT"
  203.     will always cause  that no file  will be processed:  test.dat is not
  204.     an  executable  file.  In  this  case  you  have  to  specify the -a
  205.     parameter.
  206.  
  207.     You can also specify a response  file to TbScan. A response file  is
  208.     a  file  that  contains  a  list  of  paths/filenames to be scanned.
  209.     Preceed the file with the character '@' on the TbScan command line:
  210.             TBSCAN @TBSCAN.LST
  211.  
  212.  
  213.     It is  possible to  specify so-called  options on  the command line.
  214.     Tbscan recognizes option-characters and option-words. The words  are
  215.     more easy  to remember,  and they  will be  used in  this manual for
  216.     convenience.
  217.  
  218.  
  219.     Command line / environment options available:
  220.     -help,    -h =help               -more,     -m =enable "More" prompt
  221.     -quiet,   -q =quiet mode         -verbose,  -v =display entry points
  222.     -direct,  -d =direct calls       -analyze,  -a =analyze/all files
  223.     -noboot,  -s =skip bootsector    -valid,    -u =force authorization
  224.     -once,    -o =run once a day     -compat,   -c =compatibility mode
  225.     -nomem,   -r =skip memory scan   -allmem,   +r =scan all in memory
  226.     -highmem, +e =incl. UMB and HMA  -nohmem,   -e =do not scan UMB/HMA
  227.     -nosub,   -n =not scan sub dirs  -sub,      +n =process sub dirs
  228.     -del[ete],-z =delete infected    -batch,    -b =don't ask keyb input
  229.     -repeat,  -x =scan multiple diskettes with auto disk change detect
  230.     -data     <filename>,       -f <filename>      =data file to be used
  231.     -log      [<filename>],     +l [<filename>]    =append to log file
  232.     -session  [<filename>],     -l [<filename>]    =create session log
  233.     -ren[ame] [<new ext mask>], +z [<new ext mask>]=rename infected file
  234.  
  235.  
  236.  
  237.     -help
  238.  
  239.     If you specify this  option TbScan will show  you the brief help  as
  240.     shown above.
  241.  
  242.  
  243.     -data
  244.  
  245.     You can override the default path  en name of the signature file  by
  246.     using this option.
  247.  
  248.     TbScan looks for the data file in this order:
  249.     1)  If the -data option is used it will use the specified file.
  250.     2)  It searches in the active directory for a file with the
  251.         name TBSCAN.DAT.
  252.     3)  It searches in the active directory for a file with the
  253.         name TBSCAN.PRS (a pre-parsed datafile).
  254.     4)  It searches for TBSCAN.DAT in the same directory as the
  255.         program file TBSCAN.COM itself is located (only DOS 3+).
  256.     5)  It searches in the active directory for a file with the
  257.         name VIRSCAN.DAT.
  258.  
  259.     If  TbScan  does  not  succeed   in  recognizing  or  locating   the
  260.     appropriate data file by default, you should use the -data option.
  261.  
  262.  
  263.     -quiet
  264.  
  265.     By default TbScan shows the  name of every file it  checks, together
  266.     with the  used scanning  method and  the result  of the  inspection.
  267.     When this option has been specified  you will only see a counter  at
  268.     work when  TbScan is  operating. Of  course, infected  files will be
  269.     printed on the screen anyway.
  270.  
  271.  
  272.     -verbose
  273.  
  274.     If you use  this switch, TbScan  will display the  position from the
  275.     beginning of  a file  where the  first stable  code has  been found.
  276.     This is the position of the part of the file that will be scanned.
  277.  
  278.  
  279.     -more
  280.  
  281.     When  you  enter  the  parameter  -M  TbScan  will stop after it has
  282.     checked  the  contents   of  one  display.    This  gives  you   the
  283.     possibility to look  at the results.   (Of course the  program takes
  284.     the number of lines of the display you use into account.)
  285.  
  286.  
  287.     -noboot
  288.  
  289.     With  this  option  there  will  be  no  search  for  viruses in the
  290.     bootsector of your hard disk.
  291.  
  292.  
  293.  
  294.     -analyze
  295.  
  296.     Normally TbScan only  uses the analysis  method when the  program to
  297.     be checked  is too  complicated for  the builtin  interpreter.   But
  298.     through option -A  you can force  TbScan to use  the analysis method
  299.     allways. Keep in mind though that the program will work more  slowly
  300.     then.
  301.  
  302.     When no filename  has been specified  only executable files  will be
  303.     analyzed.   If  a  filename  has  been  specified, then ALL matching
  304.     files will be searched for viruses.   In that case TbScan will  also
  305.     search for EVERY virus in the list: the file type will be ignored.
  306.  
  307.  
  308.     -direct
  309.  
  310.     TbScan communicates with DOS through interrupt 21h. To prevent  this
  311.     from being "monitored"  by viruses, option  -direct can be  entered.
  312.     TbScan will use  its built-in debugger  to work its  way through the
  313.     chain of interrupts until it has reached the DOS entry point.   This
  314.     address is shown  on the display  and after that  moment it will  be
  315.     used  for  the  communication  with  DOS.   The  same applies to the
  316.     communications with the disk system:  TbScan first searches for  the
  317.     entry  point  of  the  BIOS,  and  performs  direct  calls  into it.
  318.     Resident programs, such  as viruses, are  then excluded from  taking
  319.     part in the virus scan process.
  320.  
  321.     This  implies  however  that  the  regular  resident programs remain
  322.     ignorant too with regard to the file access by TbScan.  That is  why
  323.     you must not enter  this option when you  use a multitasker or  when
  324.     you are connected to a local area network.
  325.  
  326.     Also note  that many  protection software  will be  fooled by TbScan
  327.     when using  the -direct  option.   Don't be  surprised when it scans
  328.     files you don't actually have any access to...
  329.  
  330.     When you  do use  this option  do not  popup resident programs while
  331.     TbScan is  active!   This is  because resident  programs do not know
  332.     that someone performs file access.
  333.  
  334.     The use of disk cachers is no barrier to the use of option -direct.
  335.  
  336.     When you  have installed  the Thunderbyte  card in  your PC,  TbScan
  337.     will not search for the DOS entry point, but for the entry point  of
  338.     Thunderbyte.   Otherwise  Thunderbyte  should  warn  you (correctly)
  339.     that a  program performs  direct calls  into DOS  and the  BIOS.  So
  340.     only  Thunderbyte  remains  between  TbScan  and  DOS/BIOS. Since no
  341.     viruses can be  inserted between Thunderbyte  and DOS/BIOS, this  is
  342.     completely safe.
  343.  
  344.  
  345.     -nomem
  346.  
  347.     Through  this  option  TbScan  will  not  search  for viruses in the
  348.     memory of your PC.
  349.  
  350.  
  351.  
  352.     -allmem
  353.  
  354.     If you  specify this  option TbScan  will search  for all viruses of
  355.     the signature file in the memory of your PC.
  356.  
  357.  
  358.     -highmem
  359.  
  360.     Use this  option if  you want  your upper  memory (memory  above the
  361.     640Kb  limit)  and  video-memory  to  be  searched  for viruses too.
  362.     Normally TbScan  will detect  the presence  of Upper  Memory and the
  363.     HMA automatically if you use  a XMS-driver, and you won't  need this
  364.     option. But  does TbScan  not recognize  your upper  memory and  HMA
  365.     then you can force it with this option to scan that memory anyway.
  366.  
  367.  
  368.     -nohmem
  369.  
  370.     This  option  is  the  opposite  of  the  -highmem option. If TbScan
  371.     detects a XMS-driver and wants to scan upper memory and the HMA  you
  372.     can override this by using the -nohmem option.
  373.  
  374.  
  375.     -log
  376.  
  377.     When  you  use  this  parameter,  TbScan  creates  a  LOG-file.  The
  378.     default filename is  TBSCAN.LOG and will  be created in  the current
  379.     directory.  You may optionally specify a path and filename.  In  the
  380.     LOG-file all infected program files  are listed.  The filenames  are
  381.     mentioned including the complete path name. If the log file  already
  382.     exists the information will not be overwritten but instead  appended
  383.     to the  file. If  you use  this option  a lot  it is  recommended to
  384.     delete  or  truncate  the  log  file  every month to avoid unlimited
  385.     growth.
  386.  
  387.  
  388.     -session
  389.  
  390.     This option is  the same   as the -L  option, except that  if  there
  391.     already exists a log file   the log information will be  overwritten
  392.     instead of appended. A log file created by the -session option  only
  393.     contains information of a single scanning session.
  394.  
  395.  
  396.     -nosub
  397.  
  398.     TbScan will default search  in subdirectories for executable  files,
  399.     except when  a filename  (or wildcards)  are specified.  If you  use
  400.     this option TbScan will never search in subdirectories.
  401.  
  402.  
  403.     -sub
  404.  
  405.     If you use this option TbScan will always search in  subdirectories,
  406.     even when you specify a filename or wildcards.  Only  subdirectories
  407.     matching the filename mask will be scanned too.
  408.  
  409.  
  410.  
  411.     -valid
  412.  
  413.     TbScan checks the signature file  for modifications.  If you  change
  414.     the contents  of that  file TbScan  will issue  a warning.   If  you
  415.     don't want the warning to be displayed, use the -valid option.
  416.  
  417.  
  418.     -once
  419.  
  420.     If you specify this option TbScan "remembers" that is has been  used
  421.     that day, and  it will not  run anymore a  next time on  that day if
  422.     you specify this option again. This option is very powerfull if  you
  423.     use it  in your  autoexec.bat file  in combination  with a list file
  424.     like:
  425.  
  426.                 TbScan @every.day -once -rename
  427.  
  428.     TbScan now scans every day the first time being invoked the list  of
  429.     files  and/or  paths  specified  in  the file "every.day". All other
  430.     times the  machine will  boot that  day, TbScan  will return  to DOS
  431.     immediately. This option does not  interfere with the normal use  of
  432.     TbScan:  If  you  invoke  TbScan  without  the  -once option it will
  433.     always run, regardless of a previous run with the -once option.  The
  434.     opposite is also true: if you use the option -once after TbScan  has
  435.     been executed before that day without the -once option, TbScan  will
  436.     still execute.
  437.  
  438.     Note  that  if  TbScan  can  not  write  to TbScan.Com because it is
  439.     read-only or  on a  write protected  diskette the  -once option will
  440.     not work.
  441.  
  442.  
  443.     -batch
  444.  
  445.     If TbScan  detects a  file virus  it prompts  the user  to delete or
  446.     rename the infected file, or to continue. If you specify the  -batch
  447.     option TbScan will  always continue. This  option is intended  to be
  448.     used  in  a  batch  file  that  would  be executed unattended. It is
  449.     highly recommended to  use a log  file in this  situation, otherwise
  450.     the scanning does not make very much sense.
  451.  
  452.  
  453.     -delete or -del
  454.  
  455.     If TbScan  detects a   file virus  it prompts   the user  to  delete
  456.     or rename  the infected  file, or  to continue.  If you  specify the
  457.     -delete option, TbScan will not ask the user what to do but it  just
  458.     deletes  the  infected  file.  Use  this  option only if you already
  459.     found out that your  system is infected, and  if you have a  trusted
  460.     backup, and wants to get rid of all infected files at once.
  461.  
  462.  
  463.  
  464.     -rename or -ren
  465.  
  466.     If TbScan  detects a   file virus  it prompts   the user  to  delete
  467.     or rename  the infected  file, or  to continue.  If you  specify the
  468.     -rename option, TbScan will not ask the user what to do but it  just
  469.     renames the infected  file. By default,  the first character  of the
  470.     file's extension will be replace  by the character "V". A  .EXE file
  471.     will be renamed to .VXE, and a .COM file to .VOM. This prevents  the
  472.     infected programs from being executed, but the program can still  be
  473.     examined or repaired at a later  time. You can also add a  parameter
  474.     to  this  option  specifying  the  target  extension.  The parameter
  475.     should always contain 3 characters, question marks are allowed.  The
  476.     default target extension is "V??".
  477.  
  478.  
  479.     -repeat
  480.  
  481.     The option is very powerfull if you want to check a large amount  of
  482.     diskettes. TbScan does not return to DOS after checking a disk,  but
  483.     it waits  until you  inserted another  disk in  the drive. You don't
  484.     have  to  press  a  key  on  the keyboard when ready, TbScan detects
  485.     automatically when the drive is  ready to be accessed. This  way you
  486.     can  check  a  large  amount  of  diskettes  without  touching   the
  487.     keyboard. One  thing you  will notice  however is  that the motor of
  488.     the disk drive keep spinning, and the light will keep burning.  This
  489.     does not harm your  disk in any way,  you can safely open  and close
  490.     the  drive-door  while  the  motor  still runs. Many backup programs
  491.     handle the drives the same way as TbScan does.
  492.  
  493.  
  494.     -compat
  495.  
  496.     If you  specify this  option, TbScan  tries to  behave somewhat more
  497.     compatible. At  this time  the only  result is  that TbScan  doesn't
  498.     write directly to the screen anymore, but instead uses the  somewhat
  499.     slower BIOS.
  500.  
  501.  
  502.  
  503. EXAMPLES:
  504.         TbScan \ -data c:\tbscan.dat -noboot
  505.             Process all executable files  in the root directory  and its
  506.             sub  directories.   Skip  the   bootsector  scan.   Use  the
  507.             signature file "c:\tbscan.dat".
  508.  
  509.         TbScan \*.*
  510.             Process all  executable files  in the  root directory. Don't
  511.             process sub directories.
  512.  
  513.         TbScan test.dat -log c:\test.log
  514.             No file will be processed. TEST.DAT is not an executable.  A
  515.             LOG file with the name c:\test.log will be created.
  516.  
  517.         TbScan test.dat test.tmp -analyze
  518.             Search  test.dat  and  test.tmp  for  ALL  viruses using the
  519.             analyze method.
  520.  
  521.         TbScan c:\ -analyze -rename vi?
  522.             Process all  executable files   in the  root directory   and
  523.             its  sub  directories.  Use   the  analyze  method.   Rename
  524.             infected  files  to  a  file  by  replacing  the  first  two
  525.             characters  of  the  extension  by  "VI". The last character
  526.             remains the same.
  527.  
  528.         TbScan c:\*.* -analyze
  529.             Process  ALL  files  in  the  root directory. Search for ALL
  530.             viruses in ALL files.  The analyze-method will be  used. Sub
  531.             directories will not be processed.
  532.  
  533.  
  534.     The  last  two  examples  shows  the  difference in behaviour of the
  535.     -analyze parameter  when a  filename and  when no  filename has been
  536.     specified.
  537.  
  538.     As long as TbScan has not found any infected programs you will  only
  539.     see  a  list  containing  inspected  files  or,  when you use option
  540.     -quiet, a counter at work.  As soon as an infected program has  been
  541.     found, the name of  the infected program and  the name of the  virus
  542.     are printed  (regardless of  the use  of option  -quiet). If you did
  543.     not specify one  of the options  -batch, -rename or  -delete, TbScan
  544.     will  prompt  you  to  delete  or  rename  the  infected file, or to
  545.     continue. If you choose to  rename the file, the first  character of
  546.     the extension will be replaced  by the character "V". This  prevents
  547.     the file from being executed accidentially.
  548.  
  549.     You will see  one of the  next three terms  behind every file  name:
  550.     "Scanning", "Tracing", "Analyzing". This indicates the way in  which
  551.     the file is checked.
  552.  
  553.     Behind these terms you will  see that, dependent on size,  structure
  554.     and kind of file, a number of plus signs appear. These indicate  how
  555.     often a  complete part  of the  file, bootsector  or memory has been
  556.     searched for viruses.
  557.  
  558.     The process can be aborted by pressing Ctr-C or Escape.
  559.  
  560.  
  561.  
  562. ENVIRONMENT VARIABLE TBSCAN
  563.  
  564.     If you want  to use certain  options always it  can be handy  to use
  565.     the environment variable "TBSCAN" for  this.  If you always  use the
  566.     option -noboot  and always  uses a  certain signature  file you  can
  567.     insert the following line into your autoexec.bat file:
  568.  
  569.                 SET TBSCAN=-LOG C:\TBSCAN.DAT -NOBOOT
  570.  
  571.     TbScan  now  always  acts  like  you  specified the -noboot and -log
  572.     option on the command line!
  573.  
  574.     Another good  item to  include in  the environment  variable is  the
  575.     option -data, to specify which data file shood be used by default.
  576.  
  577.  
  578.  
  579.  
  580. FORMAT OF THE DATA FILE
  581. -----------------------
  582.  
  583.     The data file (called TBSCAN.DAT or VIRSCAN.DAT) can be read  and/or
  584.     modified with every ASCII editor.
  585.  
  586.     All  lines  beginning  with  ";"  are  comment lines. TbScan ignores
  587.     these lines  completely. When  the ";"  character is  followed by  a
  588.     percent-sign the  remaining part  of the  line will  be displayed on
  589.     the screen.  A maximum  of 15  lines can  be printed  on the screen.
  590.     Nice for "HOT NEWS"...
  591.  
  592.     In the first line the name  of a virus is expected. The  second line
  593.     contains one or more of the next words:
  594.             BOOT  SYS  EXE  COM  HIGH  LOW
  595.  
  596.     These words may be separated by spaces, tabs or commas.
  597.  
  598.     BOOT means that the  virus is a bootsector  virus. SYS, EXE and  COM
  599.     indicate the virus  can occur in  files with these  extensions. Also
  600.     overlay files  (with the  extension OV?)  will be  searched for  EXE
  601.     viruses. HIGH shows that the virus  can occur in the memory of  your
  602.     PC  located  above  the  TbScan  program  itself. LOW means that the
  603.     virus can occur in  the memory of your  PC located under the  TbScan
  604.     program itself.
  605.  
  606.     In the  third line  the signature  is expected  in ASCII-HEX.  Every
  607.     virus character is  described by means  of two characters.   Instead
  608.     of two HEX characters, two question marks (the wild- card) may  also
  609.     occur. The  latter means  that every  byte on  that position matches
  610.     the signature. Below you will find an example of a signature:
  611.             A5E623CB??CD21??83FF3E
  612.  
  613.     You can also use the asterisk followed by an ASCII-HEX character  to
  614.     skip a  variable amount  of bytes  in the  signature. The  ASCII-HEX
  615.     character specifies the amount of bytes that should be skipped.  The
  616.     signature could be:
  617.             A5E623CB*3CD2155??83FF3E
  618.     The next sequence of bytes will be recognised as a virus:
  619.             A5E623CB142434CD21554583FF3E
  620.  
  621.  
  622.     Instead of a  signature in ASCII-HEX  you can also  specify a normal
  623.     text. This should be put  between double quotation marks. A  correct
  624.     signature is for example:
  625.             "I have got you!"
  626.  
  627.     This  series  of  three  lines  should  be repeated for every virus.
  628.     Between all lines comment lines may occur.
  629.  
  630.  
  631.  
  632. LIMITATIONS
  633. -----------
  634.  
  635.     +   192 Kb of free memory is sufficient.
  636.  
  637.     +   DOS version 2.0 or later is obligatory.
  638.  
  639.     +   The size of the data file has a maximum of 64 Kb.
  640.  
  641.     +   The name of a virus may consist of maximally 30 charac-
  642.         ters.
  643.  
  644.     +   The ASCII-HEX signature can consist of maximally 80 characters.
  645.  
  646.     +   Up to 600 different signatures may be given.
  647.  
  648.     +   Directories may be nested up to 15 levels.
  649.  
  650.  
  651. ERRORMESSAGES
  652. -------------
  653.  
  654.     Errormessages that can be displayed:
  655.  
  656.     +   Not enough memory
  657.         There is not enough free memory.
  658.  
  659.     +   Error in data line at line <number>.
  660.         There is an error in the mentioned line of the data file.
  661.  
  662.     +   Failed to find DOS entry point.
  663.         TbScan has not been able to find the DOS entry point, but
  664.         continues as if option -direct has not been specified.
  665.  
  666.     +   Error reading bootsector.
  667.         The bootsector could not be read and is therefore not checked.
  668.  
  669.     +   Limit exceeded.
  670.         The data file was too long or too many virus signatures
  671.         occur in it.
  672.  
  673.     +   Data file not found.
  674.         TbScan has not been able to find the data file.
  675.  
  676.     +   Command line error.
  677.         A wrong parameter has been given to TbScan.
  678.  
  679.     +   No matching files found.
  680.         The path specified does not exist, is empty, or the specified
  681.         file does not exist.
  682.  
  683.     +   No matching executable files found.
  684.         The path specified does not exist, is empty, or the specified
  685.         file does not exist or is not an executable file.
  686.  
  687.  
  688.     TbScan terminates with one of the following exit codes:
  689.         Error level 2 when path or command line is not correct.
  690.         Error level 1 when infected files were found.
  691.         Error level 0 when everything was okay.
  692.  
  693.  
  694.  
  695.  
  696. THE INTERPRETER
  697. ---------------
  698.  
  699.     You can safely skip this  part of the documentation. It  just offers
  700.     information to  programmers who  want to  know why  and how the file
  701.     interpreter of TbScan is working.
  702.  
  703.     Viruses can infect program files  only in certain ways. For  a virus
  704.     there is  only one  single point  in a  program file  of which it is
  705.     certain that  it must  be executed,  namely the  star- ting point of
  706.     the program. It cannot  be sure of any  other point and that  is why
  707.     it will not try  to put its first  code on an arbitrary  spot of the
  708.     program that it is planning to in- fect. The virus will always  have
  709.     to put AT LEAST one jump at the entry point of the program.
  710.  
  711.     TbScan uses  this knowledge  to restrict  the number  of bytes  that
  712.     have to  be read  in of  a file  as much  as possible.   Just as the
  713.     loader of  DOS itself,  it determines  where the  entry point of the
  714.     program  is  located.  (At  the  beginning  of  a COM-file and on an
  715.     address, specified in the EXE-header of an EXE-file.)
  716.  
  717.     This is  however not  enough; there  can also  be a  jump or another
  718.     branch  instruction  on  the  found  starting  point of the program.
  719.     TbScan will follow this  jump until it does  not come across a  jump
  720.     anymore. Then we have found  the real starting point of  the program
  721.     or, in case it has been infected, the virus.
  722.  
  723.     There is a possibility however  that on a certain moment  TbScan has
  724.     reached the end of  a chain of jumps  and then finds that  there are
  725.     new  significant  IP  modifying  instructions  (calls,  rets, irets,
  726.     jumps) not  far from  the found  starting point.   Does this  future
  727.     jump point to the virus code or are we alrea- dy on the right  spot?
  728.     TbScan does not take any chances and in such a case it will read  in
  729.     the whole file to  search for viru- ses.  Only when it is  100% sure
  730.     to have found the real starting  point of a file, where in  addition
  731.     at  least  20  bytes  of  continuous  code are situated (the code is
  732.     "stable"  then),  TbScan  will  be  satisfied with checking only the
  733.     first 3 Kb of  the found code. (Almost  all viruses use less  than 3
  734.     Kb and of viruses using more than 3 Kb the signature in the first  3
  735.     Kb of the virus is used as the signature.)
  736.  
  737.     A nice advantage of this interpreter  is that the number of times  a
  738.     false alarm is given decreases. Because of this signa- tures can  be
  739.     shorter than usual which  is desirable because the  unmodified parts
  740.     of the viruses become shorter every time.
  741.  
  742.  
  743.     Behind the name of every program the used method appears. These are:
  744.  
  745.       1) Scanning. This means TbScan has been able to find the
  746.          entry point of the program with succes and that the code
  747.          it has found there was stable.
  748.       2) Tracing. This means TbScan has followed a chain of at
  749.          least 1 jump from the entry point. The final code was
  750.          stable. This method will be used especially for TSR's
  751.          because most of the time they start with a jump instruc-
  752.          tion.
  753.       3) Analyzing. Because there was no stable code on the found
  754.          position TbScan was not completely sure of where the
  755.          starting point of the program was. For safety the whole
  756.          file is read in and inspected. Files with extension SYS
  757.          are always searched according to this method.
  758.  
  759.     Obviously, if you want to, you can force TbScan by means of
  760.     option -A to use always the analyzing method.
  761.  
  762.  
  763.     Note: Most viruses will  be found in a  file that has been  searched
  764.     according to the  analysis method. However  this does not  mean this
  765.     method is more reliable than the  other ones, but it is a  result of
  766.     the fact that a  virus in a program  relocates itself first most  of
  767.     the time (adapt  CS/IP relation).   This is always  accompanied by a
  768.     CS  and   IP  modifying   instruction  because   of  which    TbScan
  769.     automatically  (and  correctly)  concludes  the  code  is not stable
  770.     enough. That is why an  infected program is often checked  using the
  771.     analysis method.
  772.  
  773.  
  774.  
  775. TBSCANX
  776. -------
  777.  
  778.     There  is  also  a  (shareware)  memory  resident  version of TbScan
  779.     available with the  name TbScanX. This  version remains resident  in
  780.     memory and  automatically scans  every file  immediately when  it is
  781.     going to be executed, copied, unarchieved, downloaded, etc.
  782.  
  783.     TbScanX performs even faster compared  to TbScan, and uses not  much
  784.     memory. It  is even  possible to  reduce the  memory requirements of
  785.     TbScanX to zero! TbScanX  is by example able  to make use of  unused
  786.     video-memory.
  787.  
  788.     TbScanX is available on many BBSses. It is of course also  available
  789.     at any Thunderbyte support BBS. At the end of this document you  can
  790.     find some phone numbers.
  791.  
  792.  
  793.  
  794. THUNDERBYTE
  795. -----------
  796.  
  797.     Virus scanners have a number of very serious disadvantages!
  798.  
  799.     +   They cannot prevent infection.
  800.         Virus scanners can only tell you whether or not your system  has
  801.         been infected  and if  so, whether  any damage  has already been
  802.         done. By then only a  good (non-infected) backup can still  save
  803.         you.
  804.  
  805.     +   They  can  only  recognize   viruses  that  have   already  been
  806.         identified. When a  new virus has  been launched it  will take a
  807.         while before someone discovers it. After that it will take  some
  808.         time before a reliable signature  is dis- tilled from the  virus
  809.         and it will also take a while for you to get hold of the  newest
  810.         virscan.dat.  All  this means that  there is a  real chance that
  811.         your system is infected at a moment virus scanners have not  yet
  812.         recognized "your" virus!
  813.  
  814.     +   You will  have to  do an  active operation  in order  to protect
  815.         your  system:  namely  executing  the  virus scanner.  Even with
  816.         TbScan this takes time and so it is unpleasant.  Certainly  when
  817.         a PC  is used  by more  than one  person, like  for instance  in
  818.         companies, things go wrong quite often.
  819.  
  820.     Viruses get more  and more advanced.  Among other things  because of
  821.     all the  attention the  media is  paying to  the phenomenon computer
  822.     virus. It  has even  become a  real sport  for sick  minds to  write
  823.     computer  viruses.  Even  viruses  that  have  no  stable  signature
  824.     anymore  have  already  been   discovered.  Because  TbScan   allows
  825.     wildcards in the data file it  can still trace this kind of  viruses
  826.     quite often. But it will  not take much time anymore  before viruses
  827.     will be  created that  have no  special charac-  teristics at all by
  828.     which they can be identified.  And then even TbScan cannot  help you
  829.     anymore. Even viruses that look for the DOS entry point in the  same
  830.     way as TbScan does, avoiding detection by protection programs in  an
  831.     effective way, already exist.
  832.  
  833.     To provide programs with a  checksum is neither a solution:  as soon
  834.     as a file is  read in, viruses can  disinfect it, so every  infected
  835.     program looks like one that is not.
  836.  
  837.     There is however ONE solution for the abovementioned problems:
  838.                          *** ThunderByte! ***
  839.  
  840.     ThunderByte  was  developed  to  protect  Personal Computers against
  841.     computer viruses, Trojan Horses and other threats to valuable  data.
  842.     It  is  a  hardware  protection,  consisting  of an adapter card, an
  843.     installation  and  configuration  program  and  a  clear manual. The
  844.     working  of  ThunderByte  is  not  based  on  knowledge  of specific
  845.     viruses, so ThunderByte also protects against future viruses.
  846.  
  847.     A hardware protection  offers much more  protection than a  software
  848.     protection.  ThunderByte  is  already  active  before  the operating
  849.     system is loaded,  so the computer  will be totally  protected right
  850.     after the starting of the PC.
  851.  
  852.  
  853.     Because of the many configuration possibilities and the  intelligent
  854.     algorisms, the use  of ThunderByte will  never become a  burden: you
  855.     will hardly  notice the  presence of  ThunderByte in  an environment
  856.     without any viruses.
  857.  
  858.  
  859.     Advantages of a hardware protection:
  860.  
  861.     +   The protection uses very little (1Kb) RAM
  862.  
  863.     +   The protection is  already active before the first boot  attempt
  864.         of  the  PC,  and  therefore  protects  also  against bootsector
  865.         viruses.  A  software  protection  can  not  protect you against
  866.         bootsector  viruses,  since  it  has  not  been executed at boot
  867.         time.
  868.  
  869.     +   De hard  disks  can  not be  accessed directly  anymore, because
  870.         ThunderByte is connected to the hard disk cable.
  871.  
  872.     +   It is  impossible  to forget to  start ThunderByte, even  if the
  873.         machine is booting with a diskette.
  874.  
  875.  
  876.  
  877.     ThunderByte offers you many kinds of protection:
  878.  
  879.  
  880.     +   Protection against loss of data.
  881.  
  882.         ThunderByte is connected between the cable of the hard disk  and
  883.         the controller. It  prevents the hard  disk from being  accessed
  884.         directly. The only  way to access  the drive from  now on is  by
  885.         initiating an int 13h.
  886.  
  887.         In addition  ThunderByte detects  all direct  disk writes  which
  888.         try  to  achieve  a  modification  or  damage of the data and it
  889.         checks which  program orders  the execution  of such operations.
  890.         Only  the   operating  system   can  preform   these  operations
  891.         unmentioned.
  892.  
  893.         Standard DOS  already has  the possibility  of protecting  files
  894.         against overwriting and modification  by means of the  read only
  895.         attribute.  However   this  protection   can  be   very   easily
  896.         eliminated  by  software.  But   ThunderByte  pre-  vents   this
  897.         protection from being ruled  out without this being  noticed, so
  898.         now  it  is   nevertheless  possible  to   protect  your   files
  899.         effectively with a standard method.
  900.  
  901.  
  902.     +   Protection against infection.
  903.  
  904.         ThunderByte  protects  programs  (files  with the extension EXE,
  905.         COM or SYS) against infection by judging all modifi- cations  on
  906.         their intention.  The functionality  is not  influenced by this.
  907.         Compiling,  linking,  etc.,  are  not  disturbed and neither are
  908.         programs   that   save   their   confi-   guration   internally.
  909.         Furthermore software  can be  protec- ted  with the  help of the
  910.         aforementioned read only attribute.
  911.  
  912.  
  913.         Attempts to modify the bootsector  of the disk are detected,  so
  914.         the  dreaded  bootsector  viruses  are  also eliminated. Keep in
  915.         mind that the  bootsector can hardly  be protected by  software.
  916.         Only  ThunderByte  already  beco-  mes  active before the system
  917.         tries to boot!
  918.  
  919.  
  920.     +   Detection of viruses.
  921.  
  922.         In  addition  to  the  abovementioned  ways  of  detecting   the
  923.         presence of viruses, ThunderByte can also do so because  viruses
  924.         carry  out  a  number  of  special  operations. For example, the
  925.         marking  of  already  infected  programs  in  order to recognize
  926.         them,  is  detected  by  ThunderByte.  So  are  the  attempts of
  927.         viruses to  reside in  the memory  in a  suspicious way  and the
  928.         abnormal manipulations with interrupt vectors.
  929.  
  930.  
  931.     +   Password protection.
  932.  
  933.         ThunderByte  has  the  possibility  of  installing  a  password.
  934.         There are two kinds of  passwords: one that is always  asked for
  935.         or one that  you only have  to enter when  attempts are made  to
  936.         start from a diskette instead of the hard disk.
  937.  
  938.     +   Safety.
  939.  
  940.         A lot of  attention has been  paid to the  safety of ThunderByte
  941.         The program code of ThunderByte  is located in ROM and  there is
  942.         no way it can be modified.
  943.  
  944.         There  is  not  one  method  of  eliminating ThunderByte through
  945.         software. All the important settings are realized with the  help
  946.         of  dipswitches  on  the  adapter  card.  And  despite all their
  947.         wasted  intelligence,  viruses  will  never  be  able  to   turn
  948.         switches or to influence their read outs.
  949.  
  950.         Viruses that approach the  controller of the hard  disk directly
  951.         will  have  a  rude  awakening:  ThunderByte will only pass disk
  952.         writes when the write or format command has followed the  normal
  953.         (checked) course.
  954.  
  955.         There  are   a  lot   of  different   versions  of   ThunderByte
  956.         (functioning  identically  however)  that  are  supplied  on the
  957.         basis of capriciousness. That  is why knowledge of  the internal
  958.         working  of  only  one  ThunderByte  system is not sufficient to
  959.         damage or destroy its protective working.
  960.  
  961.         ThunderByte is constantly checking  upon its own variables  with
  962.         a kind  of control  number that  is different  for each version.
  963.         The positions  of the  memory where  the variables  are kept are
  964.         also different for each version.
  965.  
  966.  
  967.     +   Extra possibilities.
  968.  
  969.         ThunderByte offers  you some  interesting bonuses,  like booting
  970.         from drive B:, formatting of 5,25"  diskettes up to 428 Kb on  a
  971.         normal XT.
  972.  
  973.  
  974. CONCLUSION
  975. ----------
  976.  
  977.     Are you surprised about the relative great effect and  inventiveness
  978.     of such a small (8  Kb) virusscan program? Get Thunderbyte  and keep
  979.     on amazing yourself!
  980.  
  981.     If you  appreciate TbScan  or if  it has  already been  of help in a
  982.     difficult situation:
  983.  
  984.         Do not send us any money, but get yourself Thunderbyte!
  985.         (or register at least the use of TbScanX).
  986.  
  987.  
  988. NAMES AND ADDRESSES
  989. -------------------
  990.  
  991.     For more information about Thunderbyte you can contact:
  992.  
  993.     ESaSS B.V.                          Tel:  + 31 - 80 - 787 771
  994.     P.o. box 1380                       Fax:  + 31 - 80 - 777 327
  995.     6501 BJ  Nijmegen                   Data: + 31 - 85 - 212 395
  996.     The Netherlands                         (2:280/200 @fidonet)
  997.  
  998.  
  999.     TbScan is written by Frans Veldman.
  1000.  
  1001.     TbScan, TbScanX and the signature files (TbVirSig) are available on
  1002.     Thunderbyte support BBSses:
  1003.  
  1004.     The Netherlands:                            2:280/200 @fidonet
  1005.     ESaSS/Thunderbyte support BBS, Phone:       + 31 - 85 - 212 395
  1006.  
  1007.     Germany:                                    2:245/50 @fidonet
  1008.     Androtec, Phone:                            + 49 - 2381 - 461 565
  1009.  
  1010.     If  you  are  running  a  electronic  mail  system,  you  can   also
  1011.     file-request  TBSCAN  to  get  the  latest  version  of  TBSCAN.COM,
  1012.     TBSCANX  to  get  the  resident  automatic  version  of TBSCANX, and
  1013.     VIRUSSIG to  obtain a  copy of  the latest  update of  the signature
  1014.     file.