home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / tools / exerun / exerun.doc < prev    next >
Text File  |  1989-11-23  |  50KB  |  1,129 lines

  1.                   EXERUN controls running .EXE softwares.
  2.  
  3.           version 1.0a (c) copy right 1989 All Rights Reserved
  4.  
  5.           Have you wondered if there is a way to prevent your 
  6.           softwares from running without the need for TSR utilities to 
  7.           prevent it?  And do so without changing the size of your 
  8.           softwares?  There are softwares with .COM extensions such as 
  9.           CHKDSK.COM which this cannot help.  But for softwares which 
  10.           end with .EXE, such as WP.EXE or DBASE.EXE, this is it.
  11.  
  12.           This modifies your .EXE softwares so that they will not run, 
  13.           unless EXERUN.EXE is in memory.  When in memory, this can 
  14.           1) check if file size or date/time was changed by a virus
  15.           2) check above + if BIOS and DOS changed i.e. someone else
  16.              is running your software in another computer.
  17.           3) request password.
  18.           4) check if other required softwares, such as TSR utilities 
  19.              were already ran.
  20.           5) need other types?
  21.  
  22.           Without this program in memory, or if the above criteria 
  23.           were not matched, then your .EXE software will abort.  And 
  24.           because this does not change the .EXE software file size or 
  25.           date/time and does not depend on any file containing the 
  26.           list of files to protect, there is no trace left that the 
  27.           .EXE softwares were modified.
  28.  
  29.           This version corrects lock up with Turbo C programs and adds 
  30.           locking of passwords inside the program as well, so that 
  31.           there is no need to have a EXERUN file (no extension).
  32.  
  33.           Do not use this on copy protected .EXE softwares which you 
  34.           cannot back up, just in case anything happens.
  35.  
  36.           IF YOU USED VERSION 1.0, DELETE THE .EXE SOFTWARES WHICH YOU 
  37.           HAVE ALREADY MODIFIED AND USE A NEW COPY. (just in case)
  38.  
  39.           The set up of this document is as follows:
  40.  
  41.           Explanations of various in-line command parameters.
  42.           How EXERUN works.
  43.           Chat.
  44.           Prompts and messages generated by EXERUN.
  45.           Disclaimer, contribution $/address, info for sysops and 
  46.                shareware distributors.
  47.  
  48.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  49.  
  50.           If you simply type
  51.  
  52.           EXERUN<ntr>
  53.  
  54.           then you get the help page built into this program for quick 
  55.           reference.  The help page does not waste memory when this 
  56.           program becomes memory resident.
  57.  
  58.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  59.  
  60.           This discusses the P (protection) option as in
  61.  
  62.           EXERUN P DBASE ACD<ntr>
  63.  
  64.           Skim through rapidly before reading.  Anything not explained 
  65.           or does not seem clear is explained right after the subject 
  66.           is discussed or mentioned.
  67.  
  68.           The document assumes that you want to protect a .EXE 
  69.           software called "DBASE.EXE", which happens to be a popular 
  70.           data base software.  I hope that they consider this a free 
  71.           plug of an ad for their product and not a "look and feel" 
  72.           litigation case, again.
  73.  
  74.  
  75.                       A, B, C, D OF PROTECTION TYPES
  76.  
  77.           Before you modify your .EXE softwares, make sure that you 
  78.           backed them up so that you have copies of .EXE softwares
  79.           which were not modified by this program.  After this
  80.           program modifies your .EXE softwares, it will not run
  81.           unless this program is memory resident, and the .EXE
  82.           softwares are NOT changed in file size or file date/time to
  83.           indicate that they have been tampered with.  And because 
  84.           this does NOT depend on the presence of a file containing 
  85.           the list of .EXE softwares to protect, there is way to
  86.           determine which .EXE softwares were protected or not.
  87.  
  88.           This version has five types of protections which you can add 
  89.           to your .EXE softwares using the P option from the command 
  90.           line:  Just enter the software name to prevent it from 
  91.           running unless this program is in memory, an Anti-virus 
  92.           feature to check software size/date/time, BIOS restriction 
  93.           computers this will work on, Confirmation of use via a 
  94.           password and finally, Dependency on TSRs before running.
  95.  
  96.  
  97.                    JUST MAKING SURE EXERUN.EXE IS IN MEMORY
  98.  
  99.           If you want to modify your DBASE.EXE softwares so that it 
  100.           will not run unless EXERUN.EXE is already in memory, type,
  101.  
  102.           EXERUN P DBASE<ntr>
  103.  
  104.           This only modified your DBASE.EXE software such that it will 
  105.           not run unless EXERUN.EXE is already in memory.  If you run 
  106.           DBASE.EXE without EXERUN.EXE in memory, then DBASE.EXE will 
  107.           abort with a "divide overflow" message.
  108.  
  109.                            ANTI-VIRUS ATTRIBUTE
  110.  
  111.           To protect your DBASE.EXE software by preventing it from
  112.           running if the file size or date/time was changed by a
  113.           virus or a plankster,
  114.  
  115.           EXERUN P DBASE A<ntr>
  116.  
  117.           This adds the anti-virus attribute to DBASE.EXE.  With this 
  118.           feature, DBASE.EXE will be modified such that it will not 
  119.           run unless EXERUN.EXE is already in memory.  When you run 
  120.           DBASE.EXE while EXERUN.EXE is in memory, before DOS can run 
  121.           DBASE.EXE, EXERUN.EXE will check to see if the present file 
  122.           size and file date/time of the present DBASE.EXE matches the 
  123.           recorded values or not.  If no match occurs, or if 
  124.           EXERUN.EXE is not in memory, then DBASE.EXE will abort with 
  125.           a "divide overflow" message.
  126.  
  127.           The EXERUN file can be set so that EXERUN.EXE will display a 
  128.           message stating "Software changed!".  Or you may choose not 
  129.           to display it and have the user guessing what went wrong.
  130.           The sample EXERUN file, last line, has the "a" of "abcd" so 
  131.           that EXERUN.EXE will display the message.
  132.  
  133.  
  134.                             BIOS/DOS/equipment
  135.  
  136.           EXERUN PDBASE.EXE B<ntr>
  137.  
  138.           Adds the BIOS/DOS/equipment-list check as well as anti-virus 
  139.           attribute to DBASE.EXE.  Note that the "P" in protect can be 
  140.           connected to the file name "DBASE.EXE" and you can type in 
  141.           the ".EXE" extension, if you want to.
  142.  
  143.           When you run DBASE.EXE while EXERUN.EXE is in memory, before 
  144.           DOS runs DBASE.EXE, EXERUN.EXE will check the file size, 
  145.           date/time and also checks to see if the BIOS chip, DOS 
  146.           version and equipment listing matches the recorded value or 
  147.           not.  This is an anti-piracy feature to make your .EXE 
  148.           softwares run on only the specified computer, unless the 
  149.           person who pirates it also has the same computer BIOS 
  150.           version by the same manufacturer and the same peripherals 
  151.           and the same DOS version and also pirates this program as 
  152.           well.
  153.  
  154.           The equipment list checked is the standard one consisting of 
  155.           the number of serial ports, the number of parallel ports, 
  156.           the number of diskette drives, presence of game port and 
  157.           video card attached.
  158.  
  159.           The EXERUN file can be set so that EXERUN.EXE will display a 
  160.           message stating "Bad match!".  The sample EXERUN file, last
  161.           line, has the "b" of "abcd" so that EXERUN.EXE will display
  162.           the message.
  163.  
  164.           If either of the A (anti-virus) or B (BIOS/DOS/eq.) was used 
  165.           with a short circuited EXERUN.EXE (option 0, see way
  166.           below), your .EXE software must run with the short circuited 
  167.           EXERUN.EXE which gave it the protection, because not only 
  168.           will the .EXE software's file-size/date/time be checked, but 
  169.           the passwords/filenames from the EXERUN file stored inside 
  170.           EXERUN.EXE will also be checked as well)
  171.  
  172.                          CONFIRMATION VIA A PASSWORD
  173.  
  174.           EXERUN PDBASE C<ntr>
  175.  
  176.           Before DOS runs DBASE.EXE, EXERUN.EXE will ask the user for 
  177.           a password to confirm authorization.  The 26 passwords are 
  178.           stored in the EXERUN file (no extension), with different 
  179.           passwords for each .EXE software which begins with a 
  180.           different letter.  With DBASE.EXE, the default password 
  181.           required is the small letter "x", followed by a <ntr>, 
  182.           because DBASE.EXE begins with the letter "D".  (Look at the 
  183.           EXERUN file.  After the version ID line, the next line has 
  184.           the pass for .EXE softwares which begin with "A", the next 
  185.           has the pass for those which begin with "B", "C" and then 
  186.           "D" as in DBASE.EXE)
  187.  
  188.           Each password can be up to ten characters long, including 
  189.           spaces and extended ascii chr$(1) - chr$(255), but excluding 
  190.           the chr$(13) and chr$(10), which are <ntr> and line feed, 
  191.           respectively.  The passwords are case sensitive, meaning 
  192.           that capital letters are different from small letters, such 
  193.           that "passwd" does not match "PASSWD", "Passwd", "passwD" or 
  194.           "pass".  However, you could have typed the above line as
  195.           "exerun pdbase c<ntr>", since there is no need to be case 
  196.           sensitive when running it, of course.
  197.  
  198.           When typing the password, you cannot see what you type, but 
  199.           back space allows you to correct single character typing 
  200.           errors.
  201.  
  202.           If EXERUN file is set, EXERUN.EXE will display a message 
  203.           stating "Pass             " with the cursor at the end.  If 
  204.           not set, then it will appear as if DBASE.EXE has stopped 
  205.           working.  After you type <ntr>, then it will exit via 
  206.           "divide overflow" message.  The sample default EXERUN file,
  207.           last line, has the "c" of "abcd" so that EXERUN.EXE will
  208.           display the message.
  209.  
  210.           You can mix these options freely.
  211.  
  212.                              DEPENDENCY ON TSRs
  213.  
  214.           EXERUN P DBASE D<ntr>
  215.  
  216.           Imposes a TSR dependent restriction:  Right after EXERUN.EXE 
  217.           becomes memory resident, it remembers up to three .EXE or 
  218.           .COM softwares which were ran right after itself.(usually
  219.           inside a batch file).  If you want to run other memory
  220.           resident utilities which must be in memory, then run then
  221.           right after EXERUN.EXE.  EXERUN.EXE will match the names of
  222.           the utilities which were ran with the list which were in
  223.           the EXERUN file, so that when you run DBASE.EXE, EXERUN.EXE
  224.           will check to make sure that the TSR utilities are present
  225.           before DBASE.EXE is allowed to run.  The sample EXERUN file 
  226.           has one name "PRESET.COM" at the moment, but three names can 
  227.           be placed here.  Remove this name from the file when using 
  228.           this option or your DBASE.EXE will not run.  The name may be 
  229.           in capital or small letters, because there is no need to be 
  230.           case sensitive as was the case with passwords.
  231.  
  232.           This may not seem very useful to you, but if you have a 
  233.           program such as JLOCK.EXE (which can control which files can 
  234.           be read/written, renamed, ran, etc), then you would want to 
  235.           make sure that JLOCK.EXE is in memory.  By having this name 
  236.           in the EXERUN file, EXERUN.EXE will not allow you to run 
  237.           DBASE.EXE unless JLOCK.EXE was also in memory and ran right 
  238.           after EXERUN.EXE became memory resident.
  239.  
  240.           The EXERUN file has space for up to three such names which
  241.           were ran right after EXERUN.EXE.  The exact mechanism is
  242.           explained later in this document.
  243.  
  244.           The EXERUN file can be set so that EXERUN.EXE will display a 
  245.           message stating "Missing softwares".  If not set, then 
  246.           DBASE.EXE will only abort with "divide overflow".  The 
  247.           sample EXERUN file, last line, has the "d" of "abcd" so that
  248.           EXERUN.EXE will display the message.
  249.  
  250.                          CHANGING PROTECTION OPTIONS
  251.  
  252.           The EXERUN.EXE as originally given to you can change the 
  253.           protection options attached to each .EXE software so that 
  254.           after you did
  255.  
  256.           EXERUN P DBASE A B<ntr>
  257.  
  258.           for anti-viracy and BIOS/DOS restriction, you can do
  259.  
  260.           EXERUN P DBASE AC<ntr>
  261.  
  262.           for anti-viracy and confirmation with a password, removing 
  263.           the machine dependency restriction of option B.
  264.  
  265.           To modify EXERUN.EXE with the "1" and "2" options, see below 
  266.           under "SHORT CIRCUIT" which will short circuit the ability 
  267.           to protect .EXE softwares or to modify a protected .EXE 
  268.           software.  The "0" ooption will lock in the passwords, so 
  269.           that there is no need to have an EXERUN file which anyone 
  270.           can peek into.
  271.  
  272.           Note that the protection options A - D may be separated by 
  273.           spaces or stuck together.  However, if you stuck it with the 
  274.           name of the software as in
  275.  
  276.           EXERUN PDBASEAC<ntr>
  277.  
  278.           then EXERUN.EXE will confuse this with a software name 
  279.           called DBASEAC.EXE.
  280.  
  281.                             MISCELLANEOUS
  282.  
  283.           EXERUN.EXE will not automatically search the PATH for the name 
  284.           of your software if not in the default drive and 
  285.           subdirectory.  This is to prevent you from accidentally 
  286.           changing the wrong copy of the same software in different 
  287.           subdirectories.  To change DBASE.EXE in C:\SUBDIR\BRANCH\,
  288.  
  289.           EXERUN P C:\SUBDIR\BRANCH\DBASE A C<ntr>
  290.  
  291.           If you find it cumbersome to type the colon ":" and the 
  292.           backslash "\" is located far away on your AT or mislocated 
  293.           on your PS/2, you can also type
  294.  
  295.           EXERUN P C;/SUBDIR/BRANCH/DBASE A C<ntr>
  296.  
  297.           and EXERUN.EXE will automatically change all the regular 
  298.           slashes "/" with reverse (or back) slash "\" and replaces 
  299.           the semicolon ";" with colon ":".
  300.  
  301.           This option facilitates the use of batch files to change a 
  302.           large number of .EXE softwares, since EXERUN.EXE has no 
  303.           feature to use the wild card asterisk "*" to change all .EXE 
  304.           softwares in a diskette or a subdirectory.  Note that if it 
  305.           did, EXERUN.EXE may accidentally change a software it should 
  306.           not have touched.
  307.  
  308.           The number of .EXE softwares which you can protect is not 
  309.           limited by anything.  If EXERUN.EXE found any .EXE software 
  310.           which it cannot modify, then it will tell you so.  This 
  311.           version does not work with Turbo Basic, though by the time 
  312.           you read this, we will soon have another version (used
  313.           internally) which will work.  We left it out because Turbo
  314.           Basic will no longer be updated.  No trouble seems to occur
  315.           with Microsoft ones.
  316.  
  317.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  318.  
  319.           Even if you protected your .EXE softwares, someone else with 
  320.           another copy of EXERUN.EXE can remove all the protections 
  321.           "A" through "D".  To prevent such tampering, once you are 
  322.           fixed on one set of protections for a given .EXE software,
  323.  
  324.           EXERUN [P] DBASE D<ntr>
  325.  
  326.           The square brackets surrounding the P option locks this so 
  327.           that neither your copy, nor anyone else's copy of EXERUN.EXE 
  328.           can change the protections you gave it.  Since this 
  329.           DBASE.EXE has the "D" option, it is dependent on a set of 
  330.           other softwares which had to be ran right after EXERUN.EXE 
  331.           became memory resident, before DBASE.EXE will run.
  332.  
  333.           If you want to short circuit your copy of EXERUN.EXE so
  334.           that it will retain the ability to become memory resident,
  335.           but looses the ability to understand the P option, read up
  336.           later under "SHORT CIRCUIT".  Remember to keep the original 
  337.           non-short circuited copy of EXERUN.EXE somewhere safe.
  338.  
  339.           Although you can run this program and the file off a floppy 
  340.           diskette and then store the diskette in a safe place, if you 
  341.           want to make the passwords permanent, such that it is 
  342.           incorporated into the program and there is no need to read 
  343.           the file, use the SHORT CIRCUIT "0" option.
  344.  
  345.                Once the passwords are permanently within the
  346.                EXERUN.EXE program, EXERUN.EXE will write a code for
  347.                the passwords to each .EXE software which it will now
  348.                check.  With this option, another person's EXERUN.EXE
  349.                and a EXERUN file will not work.
  350.  
  351.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  352.  
  353.           To run this, simply type
  354.  
  355.           EXERUN RUN<ntr>
  356.  
  357.           and end it with an <ENTER> or <ntr> or <cr> or anything
  358.           else you want to call the carriage return.  All documents in 
  359.           my programs use the <ntr> format.
  360.  
  361.           You can type just the "R" in "RUN" to run EXERUN.EXE and may 
  362.           be in capital "R" or small letter "r".  Any other line 
  363.           command after the "RUN" parameter is ignored, so if you want 
  364.           to mix other line commands, they must be placed before this.
  365.  
  366.           --------------------------------------------------------------
  367.           EXERUN.EXE itself and all programs hence forth lost the
  368.           self-wipe feature, the ability to wipe any and all other
  369.           memory resident programs loaded after this program.
  370.                        (unless I start hearing otherwise)
  371.           --------------------------------------------------------------
  372.  
  373.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  374.  
  375.                                SHORT CIRCUIT
  376.  
  377.                LOCKING THE PASSWORDS INSIDE EXERUN.EXE (option 0)
  378.  
  379.           If you do not want a copy of the EXERUN file which someone 
  380.           can peek into, you can use the 0 option, which reads the 
  381.           EXERUN file into the EXERUN.EXE program and makes it a 
  382.           permanent part of the program itself.  To do this
  383.  
  384.           EXERUN 0<ntr>
  385.  
  386.           This asks for a confirmation.  Type "Y" or "y" to mean "Yes.
  387.           I want the passwords in the EXERUN file incorporated into 
  388.           the program EXERUN.EXE so that I can erase the file.
  389.  
  390.           Once the passwords from the EXERUN file are incorporated 
  391.           within the EXERUN.EXE program itself, everytime you use the 
  392.           "P" or the "[P]" option to protect .EXE softwares with the A 
  393.           (anti-virus) or the B (BIOS/DOS/equip.  match) not only will 
  394.           the software file-size/date/time be checked, but the 
  395.           password/filenames in the EXERUN at the time will also be 
  396.           checked.
  397.  
  398.                If you use the original EXERUN.EXE which you did not
  399.                use 0 with, this EXERUN.EXE will read the slightly (or
  400.                grossely) changed EXERUN, but because the software
  401.                knows that you changed the EXERUN file, it will not
  402.                run.  (If you used "[P]", this .EXE software is lost
  403.                unless you wrote the passes somewhere.  If you used "P",
  404.                then you can removing the A/B protections.)
  405.  
  406.                Remember, once you use the "0" option, all .EXE
  407.                softwares which you now protect (with the "P" or "[P]"
  408.                and the A/B) will be given a code describing what the
  409.                EXERUN file (the copy stored inside EXERUN.EXE itself)
  410.                was.  Neither your original EXERUN.EXE nor anyone
  411.                else's EXERUN.EXE will allow you to run your .EXE
  412.                software.  Only the "0" modified EXERUN.EXE has the
  413.                code to run your software, if you should ever delete
  414.                the EXERUN file on purpose or accidentally. (If you 
  415.                used P and A/B, you can remove the A/B options, but not 
  416.                if you used the [P] and A/B.)
  417.  
  418.  
  419.                 LOOSE ABILITY TO PROTECT SOFTWARES (option 1)
  420.  
  421.           As it stands, although the EXERUN file can be hidden in 
  422.           other subdirectories and protected with read-only or hidden 
  423.           attribute using programs such as CLEARFIL.EXE, anyone can 
  424.           use your EXERUN.EXE and remove any protection which you 
  425.           placed on each .EXE software by writing a new protection 
  426.           code over it.  Note that you can lock .EXE softwares so that 
  427.           neither your, nor anyone else's EXERUN.EXE can change 
  428.           protections placed on your .EXE software using "[P]" above.
  429.  
  430.           To prevent it, EXERUN.EXE has an option to short circuit 
  431.           itself so that it can no longer protect .EXE software or 
  432.           change one set of protections with another set.
  433.  
  434.           MAKE SURE THAT YOU HAVE YOUR ORIGINAL COPY OF EXERUN.EXE 
  435.           STORED SOMEWHERE ELSE!
  436.  
  437.           EXERUN 1<ntr>
  438.  
  439.           This short circuits the protection option so that it can 
  440.           only become memory resident and do the chores associated 
  441.           with whatever protections were required for each .EXE 
  442.           softwares.  This EXERUN.EXE can no longer modify .EXE
  443.           softwares.
  444.  
  445.           If you try to use the protect option with this copy of 
  446.           EXERUN.EXE, it will abort with a "divide overflow" error.
  447.  
  448.               LOOSE ABILITY TO CHANGE PROTECTION TYPES (option 2)
  449.  
  450.           EXERUN 2<ntr>
  451.  
  452.           This does a partial short circuit so that you can still 
  453.           continue to add the protection option to any .EXE software 
  454.           which has not yet been given EXERUN.EXE dependency yet.
  455.  
  456.           This copy of EXERUN.EXE can still modify .EXE softwares 
  457.           which were not modified by EXERUN.EXE yet, but any .EXE
  458.           software which was already modified by EXERUN.EXE can no
  459.           longer be modified by this EXERUN.EXE.
  460.  
  461.           Of course, if you protected a software with the "[P]" 
  462.           option, this cannot change or remove the protections.
  463.  
  464.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  465.  
  466.  
  467.                          HOW EXERUN.EXE WORKS
  468.  
  469.           First, read on how to protect your .EXE softwares above and 
  470.           protect them, making sure that you have unaltered copies of 
  471.           your .EXE softwares kept in a far away place.
  472.  
  473.           To run EXERUN.EXE, type from the DOS prompt
  474.  
  475.           EXERUN RUN<ntr>
  476.  
  477.           The first thing EXERUN.EXE does is to check to see if 
  478.           another copy of EXERUN.EXE is already in memory or not.  The 
  479.           program will abort if it is already in memory.
  480.  
  481.           Then it checks to see if a copy of your ascii text file
  482.           EXERUN (no extension given) is in the diskette or 
  483.           subdirectory where you ran EXERUN.EXE.
  484.  
  485.                If a copy exists, then the passwords and lists are read 
  486.                to memory.  If you like, use CLEARFIL.EXE, Norton 
  487.                Utilities etc to change the file to read-only and 
  488.                hidden and move it to a far away subdirectory (assuming 
  489.                that you have a hard disk).
  490.  
  491.                If a copy does not exist in the present diskette or 
  492.                subdirectory, then the PATH is searched to find out if 
  493.                the file can be found.
  494.  
  495.                     If a copy exists, then the version identification 
  496.                     value is checked to make sure that you have the 
  497.                     correct version to work with this program.
  498.  
  499.                     If no copy exists, then this program will abort
  500.                     with a message.
  501.  
  502.                The EXERUN file is read and checked for errors before 
  503.                continuing.  If there are errors, then EXERUN.EXE will 
  504.                exit with an error message.
  505.  
  506.           Now the environment area which has the PATH data is no 
  507.           longer needed, so the area is deallocated and EXERUN.EXE 
  508.           becomes memory resident.  Most softwares which show a map of
  509.           the system memory used will know that something is in 
  510.           memory, but not what it is.
  511.  
  512.           Right after EXERUN.EXE becomes memory resident, it will note 
  513.           the names of, and the order of up to three softwares which
  514.           were ran right after EXERUN.EXE became memory resident. 
  515.           (you can use a batch file to automate this).  These may be
  516.           .COM or .EXE softwares.  If any protected .EXE software
  517.           depended on such softwares be ran first, EXERUN.EXE will
  518.           check them.
  519.  
  520.           The sample EXERUN file has "PRESET.COM".  If you want to use 
  521.           the Dependency on TSRs option, replace it with your software 
  522.           names.
  523.  
  524.           Now try running a protected .EXE software.  It will not run 
  525.           without EXERUN.EXE in memory and it meets the protection 
  526.           criteria you assigned to the .EXE software.  Try 
  527.           experimenting with protection options until you found one 
  528.           combination which suits your need for the particular .EXE 
  529.           software.  Now use the "[P]" option to lock it.
  530.  
  531.                           EXERUN FILE REQUIREMENTS
  532.  
  533.           You can read the explanation in the EXERUN file for a quick 
  534.           explanation.  Here is more detailed explanation.
  535.  
  536.           The first line must have the numbers "00" on the very first 
  537.           left column.  This indicates the version number of this 
  538.           EXERUN file for compatibility with any future version of 
  539.           this program.  This program looks for this to see if the 
  540.           file which you have will run correctly with the program or 
  541.           not.  Attempt to change the version number with any other 
  542.           valid values may cause some strange results, including 
  543.           corruption of your disk or worse.
  544.  
  545.           On the next 26 lines, the first TEN characters on each line 
  546.           is the password to be used for all .EXE softwares which
  547.           require them (by running with the "EXERUN Pprogram.exe
  548.           C<ntr>" for Confirmation of pass).  If your .EXE software
  549.           is called ZIWRITE.EXE, then the EXERUN file has the letter
  550.           "z" at the moment, so that you must type "z" followed by
  551.           <ntr> to run your software.  If the EXERUN file had the
  552.           letters "z ", then you must type "z " followed by <ntr>. 
  553.           Capitals and small letters are unique and individual, "Z"
  554.           is not the proper password for "z".  If your software is 
  555.           called "ABC.EXE", then because it begins with the letter "A" 
  556.           of "ABC.EXE", the first row after the version number has
  557.  
  558.           all softwares which begin with the letter A
  559.                                       uses password "all softwa"<ntr>
  560.  
  561.           on one line.  The first TEN characters or until a <ntr> is 
  562.           the password for this software.  Here, the first ten 
  563.           characters is "all softwa", so it becomes the password.
  564.  
  565.           Similarly, if you software is called "DYE.EXE", it uses the 
  566.           fourth row (after the verision number row) as the password,
  567.           which is "x".  If you rename the software to "CYE.EXE", then 
  568.           the third row's password is used, which is "SOFT      "<ntr>.
  569.  
  570.           The next three lines contain the names of up to three 
  571.           softwares (usually terminate but stay resident utilities 
  572.           [TSRs]) which must be ran right after EXERUN.EXE.  In these 
  573.           three lines, place the names of up to three softwares, both 
  574.           .COM and .EXE types.  You must specify the ".COM" or ".EXE"
  575.           yourself.  If a line begins with a space, then it is 
  576.           considered the same as a blank comment.  If it ends with a 
  577.           space, then anything afterwards is considered a blank 
  578.           comment as well.  If it begins with a space, then it is a 
  579.           comment also.
  580.  
  581.                The sample EXERUN file has PRESET.COM is simply one of
  582.                our programs used in a MAKE-like file found in C
  583.                environment.  It is not included in here.
  584.  
  585.                Right after EXERUN.EXE itself becomes memory resident,
  586.                it will record the names of up to three softwares which 
  587.                runs.  If you had used "EXERUN PDBASE D" protection 
  588.                option to Protect DBASE.EXE with Dependency on TSRs, 
  589.                then DBASE.EXE will not run unless PRESET.COM (in this 
  590.                case) was ran right after EXERUN.EXE became memory 
  591.                resident.
  592.  
  593.                The order in which the three names are in the EXERUN 
  594.                file must be the order in which the three softwares are 
  595.                ran right after EXERUN.EXE becomes memory resident:  If 
  596.                you had 
  597.  
  598.                     PRESET.COM
  599.                     JLOCK.EXE
  600.                     SK.COM
  601.  
  602.                in EXERUN file, but you did not run all of them or ran 
  603.                them in a different order, then your DBASE.EXE will not 
  604.                run at all.
  605.  
  606.           The next line in EXERUN has the letters "abcd" at the 
  607.           moment.
  608.  
  609.                If you used "EXERUN P DBASE A" to add the anti-virus
  610.                attribute to DBASE.EXE and EXERUN.EXE found that
  611.                DBASE.EXE's file size or date/time was changed, then
  612.                the presence of the letter "a" in the EXERUN file
  613.                above causes EXERUN.EXE to produce the message
  614.                "Software changed!".  If the letter "a" was not in the
  615.                EXERUN file, then no message will appear before 
  616.                DBASE.EXE aborts.
  617.  
  618.                If you used "EXERUN P DBASE B" to add the BIOS/DOS 
  619.                restriction to DBASE.EXE and EXERUN.EXE found that 
  620.                DBASE.EXE's file size, date/time or BIOS/DOS/equipment 
  621.                of the computer was changed, then the presence of the 
  622.                letter "b" in the EXERUN file above causes EXERUN.EXE 
  623.                to produce the message "Bad match!".  If the letter "b" 
  624.                was not in the EXERUN file, then no message will 
  625.                appear before DBASE.EXE aborts.
  626.  
  627.                If you used "EXERUN P DBASE C" to add confirmation of a 
  628.                password, then before DBASE.EXE runs, you will get the 
  629.                prompt "Pass             "<-cursor here
  630.                to indicate that a password is being expected now.  If 
  631.                the letter "c" is not in the EXERUN file, then you get 
  632.                no warning that a password is being expected.
  633.  
  634.                If you used "EXERUN P DBASE D" to add dependency on 
  635.                TSRs and the list of softwares which you ran right 
  636.                after EXERUN.EXE became memory resident does not match 
  637.                the order or the number stored in the EXERUN file, then 
  638.                you will get the message "Missing softwares" to tell 
  639.                you that required softwares were not ran.  If the 
  640.                letter was not present, then you get no warning before 
  641.                DBASE.EXE aborts.
  642.  
  643.  
  644.                If you have any other letters, other than spaces, then 
  645.                you will get an error message that EXERUN had an error 
  646.                and EXERUN.EXE will not become memory resident.
  647.  
  648.                The letters were typed as "abcd", but they could have 
  649.                been "ABCD" or "aBcD" or any other combinations of 
  650.                capital and small letters, because unlike passwords, 
  651.                there is no need to be picky about it.
  652.  
  653.  
  654.                               FOOTNOTE
  655.  
  656.           Does this program guarantee absolute safety?  No.  As Adobe,
  657.           Lotus and others have found out, any determined person with 
  658.           a good knowledge of assembly can hack his or her way 
  659.           through any software or even hardware conceived by anyone
  660.           else.  But it will act as a good barrier for most of us who
  661.           do not have both an evil intentions AND a good knowledge of
  662.           assembly.  Remember, new laws coming into being make
  663.           intentional act of vandalism on any software a criminal
  664.           offense.
  665.  
  666.  
  667.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  668.  
  669.                                CHAT in a HAT
  670.  
  671.           Sure we do consultation, from simple training to big
  672.           projects, which don't mean much:  There are people who don't
  673.           know much about PC, writing newspaper columns and (non-
  674.           computer) magazine articles about PC.  Can't their editors
  675.           find people who know about PC, or they just want to keep
  676.           you ignorant?  My offer to be a writer for one still stands
  677.           anyone, irregardless of how big or small a newspaper or
  678.           magazine, whether you're the editor or a guy who decided to
  679.           apply me to the personnel office of a publisher.  I dare it.
  680.           (I'm sure & safe in saying that it'll fall on deaf ears.)
  681.  
  682.           The HDTV is a Jpns project which the Am./Euro. are copying
  683.           (A is using 1050 line mode, which J abandoned).  The genome
  684.           project is a J thing which A/E are copying w/more $.  Plastic 
  685.           conductors (made accidentally in J, and the related super-
  686.           conductors) is what A is copying.  Since J did so great
  687.           improving upon things started by others (like Thomas Edison
  688.           who improved on [not discovered] phonograph, etc), will A/E 
  689.           do just as well on things started by J?
  690.  
  691.           There is a talk about how the powerlines may cause leukemia.
  692.           Many years ago, I published a paper on how plain visible 
  693.           light can be harmful to life.  I never published the results 
  694.           of the experiment using the effect of electric wires because 
  695.           preliminary results were inconclusive.  Darn.
  696.  
  697.           Have you seen Houston, Texas?  BIG city blocks and lots of
  698.           BIG parked cars, but NO people 7 days a week, except for a
  699.           mugger or three on the street (I was very too far away to 
  700.           help the muggees).  A better name may be Ghoston.
  701.  
  702.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  703.  
  704.                   PROMPTS AND MESSAGES WHEN RUNNING THE PROGRAM
  705.  
  706.           =-=-=
  707.           Oh oh.  Compilation error found
  708.           =-=-=
  709.  
  710.           This program was not compiled properly.  The short circuit 
  711.           options will not work.  Notify us if this happens.
  712.  
  713.           =-=-=
  714.           Unknown parameter on the command line
  715.           =-=-=
  716.  
  717.           Something not recognized was found on the line when you ran 
  718.           the program.  If you ran this program from a batch command 
  719.           file, error messages are followed by errorlevel = 1 so that
  720.           you can have your batch file take appropriate actions.
  721.  
  722.           =-=-=
  723.           You don't have to do it, EXERUN is already in memory
  724.           =-=-=
  725.  
  726.           You tried to run EXERUN.EXE when a copy was already in 
  727.           memory.
  728.  
  729.           =-=-=
  730.           The EXERUN file not found anywhere.
  731.           =-=-=
  732.  
  733.           The file was not in default or accessible through PATH.
  734.  
  735.           =-=-=
  736.           EXERUN exists but I cannot open it.
  737.           =-=-=
  738.  
  739.           The file was found, but something prevented it from being 
  740.           read.  Do you have some read-prevention utility?
  741.  
  742.           =-=-=
  743.           I was not allowed to read EXERUN
  744.           =-=-=
  745.  
  746.           The file with the passwords and file names could not be 
  747.           was found, but some reason other than not being able to open 
  748.           it prevented it from being read.
  749.  
  750.           =-=-=
  751.           The EXERUN file is less than 100 bytes in length
  752.           =-=-=
  753.  
  754.           The file is too short to have useful data.  Try typing it to 
  755.           screen and see what it contains.
  756.  
  757.           =-=-=
  758.           Incorrect version number of EXERUN
  759.           =-=-=
  760.  
  761.           The EXERUN file's version number was tampered or is not 
  762.           compatible with the EXERUN.EXE which you are using.
  763.  
  764.           =-=-=
  765.           The EXERUN file does not have all the lines needed
  766.           =-=-=
  767.  
  768.           While parsing (checking) through the file, it was found that 
  769.           it did not contain enough lines of passwords or names to 
  770.           satisfy the requirements.
  771.  
  772.           =-=-=
  773.           Bad request types for message:  A - D allowed
  774.           =-=-=
  775.  
  776.           The EXERUN file last line should have "A" - "D" for allowing 
  777.           messages in case of error in running your .EXE software.
  778.           You had something else on the line, other than spaces.
  779.  
  780.  
  781.               WHEN READING A .EXE SOFTWARE TO ADD/CHANGE PROTECTION
  782.  
  783.           =-=-=
  784.           No such software found.
  785.           =-=-=
  786.  
  787.           The .EXE software was not found.
  788.  
  789.           =-=-=
  790.           This is not a real .EXE software
  791.           =-=-=
  792.  
  793.           A software with the .EXE extension was found, but it did not 
  794.           have a .EXE signature, indicating that it is something else 
  795.           renamed to have a .EXE extension only.
  796.  
  797.           =-=-=
  798.           The software exists, but there is no read/write access.
  799.           =-=-=
  800.  
  801.           Do you have your .EXE software set for read only?  Use 
  802.           Norton Utilities, CLEARFIL.EXE etc to change it to regular 
  803.           file attribute.
  804.  
  805.           =-=-=
  806.           Unknown error.  Software cannot be read.
  807.           =-=-=
  808.  
  809.           The .EXE to protect was found but some unknown cause 
  810.           prevents it from being read.
  811.  
  812.           =-=-=
  813.           Sorry.  This software has no place for EXERUN.EXE.
  814.           =-=-=
  815.  
  816.           There was no space in this .EXE software for EXERUN.EXE, or 
  817.           this was locked to prevent changing the protection options.
  818.  
  819.           =-=-=
  820.           I need the name of a .EXE software
  821.           =-=-=
  822.  
  823.           You used the Protect option as in
  824.  
  825.           EXERUN P<ntr>
  826.  
  827.           when you should have had something like
  828.  
  829.           EXERUN P dbase<ntr>
  830.  
  831.           since this option is designed to change the .EXE software 
  832.           into something which will not run without EXERUN.EXE.
  833.  
  834.           This option does not search the PATH to locate the .EXE 
  835.           software.  This is not a bug.  It was designed this way so 
  836.           that if you have multiple copies of a .EXE software, it does 
  837.           not modify the first such software on PATH.  To modify 
  838.           DBASE.EXE in C:\LEVEL1\LEVEL2, either type
  839.  
  840.           EXERUN P C:\LEVEL1\LEVEL2\DBASE<ntr>
  841.  
  842.           or
  843.  
  844.           EXERUN P C;/LEVEL1/LEVEL2/DBASE<ntr>
  845.  
  846.           EXERUN.EXE will translate any semicolon ";" to a colon":", 
  847.           and a regular slash "/" to a back (or reverse) slash "\".
  848.  
  849.           =-=-=
  850.           The software was modified.
  851.           =-=-=
  852.  
  853.           The .EXE software was protected or changed protection type.
  854.  
  855.           =-=-=
  856.           LOCKED!
  857.           =-=-=
  858.  
  859.           You used the "EXERUN [P]DBASE BC" locking protection to 
  860.           prevent changes to the protection types "bc", in this case.
  861.  
  862.           =-=-=
  863.           Bad coding type:  The allowed types are
  864.           A    to check Attributes filesize, date/time
  865.           B    to check "A" plus BIOS and equipment match
  866.           C    to request password Check
  867.           D    Detect if other softwares (e.g. TSR) already ran
  868.           =-=-=
  869.  
  870.           You followed the P option and .EXE software name with 
  871.           something other than A - D.
  872.  
  873.           =-=-=
  874.           Changing existing settings
  875.           =-=-=
  876.  
  877.           Former protection options are replaced by new ones.  This is 
  878.           a warning that there was protection options already set for 
  879.           this software from another time.
  880.  
  881.           =-=-=
  882.           A newer, later version of EXERUN.EXE is needed to change this
  883.           =-=-=
  884.  
  885.           The .EXE software was changed by a later version of 
  886.           EXERUN.EXE than this and is not compatible.
  887.  
  888.                       WHEN CHANGING PROTECTION
  889.  
  890.           =-=-=
  891.           Already has short circuit 0 in effect
  892.           =-=-=
  893.  
  894.           The passwords are already inside the program.  To change the 
  895.           passwords, you must use a copy of the program which was not 
  896.           yet changed.
  897.  
  898.           =-=-=
  899.           CHANGED!  Passwords included
  900.           =-=-=
  901.  
  902.           The passwords are inside the program.  Now everytime you 
  903.           protect a software, the code for the passwords is also 
  904.           included and EXERUN.EXE will check to see if it matches the 
  905.           one it has.
  906.  
  907.           =-=-=
  908.           Change this so that passwords are locked? (Y/N)
  909.           =-=-=
  910.  
  911.           You requested short circuit type 0 to lock the passwords
  912.           in the program itself.  Type "Y" or "y" to mean "Yes.  I
  913.           want it done." Anything else is taken as "NO.  I didn't
  914.           mean to do this.".  Once the passwords are inside the 
  915.           program, EXERUN.EXE will load a code for this passwords into 
  916.           each .EXE software you use "P" or "[P]" on, so that another 
  917.           EXERUN.EXE and its passwords in its EXERUN file will not 
  918.           affect this.
  919.  
  920.           =-=-=
  921.           Change this so that no protection feature possible? (Y/N)
  922.           =-=-=
  923.  
  924.           You requested that short circuit type 1 to remove all 
  925.           protection be removed so that EXERUN.EXE can only become 
  926.           memory resident.  Type "Y" or "y" to mean "Yes.  I want it 
  927.           done."  Anything else is taken as "NO.  I didn't mean to do 
  928.           this.".
  929.  
  930.           =-=-=
  931.           Change this so that protected .EXE cannot be changed? (Y/N)
  932.           =-=-=
  933.  
  934.           You requested that short circuit type 2 to remove the 
  935.           ability to change a .EXE which was already protected.  Type 
  936.           "Y" or "y" to short circuit the EXERUN.EXE.
  937.  
  938.           To prevent neither your original or anyone else's original 
  939.           copy of EXERUN.EXE from changing the protection options, use 
  940.           the "EXERUN [P]filename".
  941.  
  942.           =-=-=
  943.           Not changed.
  944.           =-=-=
  945.  
  946.           At either of the above prompts, you type something other 
  947.           than "Y" or "y" so that EXERUN.EXE aborted without doing 
  948.           anything.
  949.  
  950.           =-=-=
  951.           EXERUN.EXE is not here
  952.           =-=-=
  953.  
  954.           You used the short circuit option 1 or 2, but you ran 
  955.           EXERUN.EXE by letting DOS find it through the PATH, so the 
  956.           program was not in the default diskette or subdirectory 
  957.           where you typed it.  EXERUN.EXE will not search the PATH
  958.           when short circuiting itself, so you must run this while
  959.           EXERUN.EXE is in the default working diskette or 
  960.           subdirectory.
  961.  
  962.           =-=-=
  963.           EXERUN.EXE cannot be read/written
  964.           =-=-=
  965.  
  966.           You probably had a read only setting on EXERUN.EXE so that 
  967.           it cannot be written.  Use CLEARFIL.EXE or others to remove 
  968.           the setting.
  969.  
  970.           =-=-=
  971.           I cannot read EXERUN.EXE
  972.           =-=-=
  973.  
  974.           Something unknown is preventing EXERUN.EXE from being read 
  975.           for short circuiting.
  976.  
  977.           =-=-=
  978.           CHANGED!  No more protection option.
  979.           =-=-=
  980.  
  981.           Short circuit 1 to remove EXERUN.EXE's ability to protect 
  982.           .EXE softwares or change protection was implimented.
  983.  
  984.           =-=-=
  985.           CHANGED!  No more changing protected .EXEs
  986.           =-=-=
  987.  
  988.           Short circuit 2 to remove EXERUN.EXE's ability to change 
  989.           protection options was implimented.  This EXERUN.EXE can 
  990.           still protect .EXE softwares which were never touched by 
  991.           EXERUN.EXE.
  992.  
  993.           =-=-=
  994.           Already changed
  995.           =-=-=
  996.  
  997.           The short circuiting was already done.
  998.  
  999.                      WHEN RUNNING YOUR .EXE SOFTWARE
  1000.  
  1001.           =-=-=
  1002.           Software changed!
  1003.           =-=-=
  1004.  
  1005.           The file length or date/time of the .EXE software was 
  1006.           changed by something.  Your EXERUN file's last line has the 
  1007.           letter "a" of "abcd" to indicate that you want a message in 
  1008.           case something like this happens.
  1009.  
  1010.           =-=-=
  1011.           Bad match!
  1012.           =-=-=
  1013.  
  1014.           The file length or date/time of the .EXE software was 
  1015.           changed or the BIOS/DOS/equipment listings no longer match.
  1016.           Usually, this means that you tried to run your .EXE software 
  1017.           on a computer other than the one you gave it protection on.
  1018.           Your EXERUN file's last line has the letter "b" of "abcd" to 
  1019.           indicate that you want a message in case something like this 
  1020.           happens.
  1021.  
  1022.           =-=-=
  1023.           Pass             
  1024.           =-=-=
  1025.  
  1026.           A password is required.  The EXERUN file's last line has the
  1027.           letter "c" of "abcd" to indicate that you want this prompt
  1028.           to appear.  Otherwise, there is no prompt to indicate that
  1029.           a password is being requested.
  1030.  
  1031.           =-=-=
  1032.           Missing softwares
  1033.           =-=-=
  1034.  
  1035.           The EXERUN file had a list of softwares (usually TSRs) which 
  1036.           should have been ran right after EXERUN.EXE became memory 
  1037.           resident (usually inside a batch file).  The EXERUN file's
  1038.           last line has the letter "d" of "abcd" to indicate that you
  1039.           want this prompt to appear.
  1040.  
  1041.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1042.  
  1043.           All products and names mentioned are Trademarks or
  1044.           Registered Trademarks of their respective corporations or
  1045.           companies.  That includes my group or any other group's
  1046.           programs, of course.  Some products may have patent 
  1047.           protections as well.
  1048.  
  1049.           All enclosed programs, documents and other files are
  1050.           provided AS IS, without any warranty, expressed or implied,
  1051.           including but not limited to fitness for a particular
  1052.           purpose.
  1053.  
  1054.           A contribution of $10 US/Canadian is appreciated if you
  1055.           find this useful, or $20 for an improved one as it comes out.  
  1056.           ($20 Cdn if you're in Canada and $20 U.S. for U.S & others,) 
  1057.           Unless you specify otherwise, you will get a 5-1/4" 360 kb
  1058.           diskette.  And if you only specify 3-1/2", it will be 
  1059.           formatted as 360kb/720kb on a 720kb or a 1.44Mb drive.  The 
  1060.           above statement may not apply in some countries if there is 
  1061.           a local dealer who handles such things as a non-shareware.
  1062.  
  1063.           NAME OF THE PROGRAM:          EXERUN.EXE ($10-$20)
  1064.  
  1065.           PURPOSE OF THIS PROGRAM:
  1066.           This modifies your .EXE softwares so that they will not run, 
  1067.           unless EXERUN.EXE is in memory.  When in memory, this can 
  1068.           1) check if file size or date/time was changed.
  1069.           2) check above + if BIOS and DOS changed.
  1070.           3) request password.
  1071.           4) check if other required softwares, such as TSR utilities 
  1072.              were already ran.
  1073.  
  1074.  
  1075.  
  1076.           my old forwarding address was
  1077.  
  1078.           Dr. Masaaki Sawada
  1079.           University of Waterloo, Faculty of Science
  1080.           Waterloo, Ontario  Canada  N2L 3G1
  1081.  
  1082.           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1083.  
  1084.           Now, contact
  1085.  
  1086.           c/o  Dr. Masaaki Sawada
  1087.                LCS
  1088.                P.O. Box 956
  1089.                Outremont, Quebec
  1090.                Canada  H2V 4R8
  1091.  
  1092.           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1093.  
  1094.  
  1095.          ----------------end-of-author's-documentation---------------
  1096.  
  1097.                         Software Library Information:
  1098.  
  1099.                    This disk copy provided as a service of
  1100.  
  1101.                         The Public (Software) Library
  1102.  
  1103.          We are not the authors of this program, nor are we associated
  1104.          with the author in any way other than as a distributor of the
  1105.          program in accordance with the author's terms of distribution.
  1106.  
  1107.          Please direct shareware payments and specific questions about
  1108.          this program to the author of the program, whose name appears
  1109.          elsewhere in  this documentation. If you have trouble getting
  1110.          in touch with the author,  we will do whatever we can to help
  1111.          you with your questions. All programs have been tested and do
  1112.          run.  To report problems,  please use the form that is in the
  1113.          file PROBLEM.DOC on many of our disks or in other written for-
  1114.          mat with screen printouts, if possible.  The P(s)L cannot de-
  1115.          bug programs over the telephone.
  1116.  
  1117.          Disks in the P(s)L are updated monthly, so if you did not get
  1118.          this disk  directly from the P(s)L,  you should be aware that
  1119.          the files in this set may no  longer be the current versions.
  1120.  
  1121.          For a copy of the latest monthly software library newsletter
  1122.          and a list of the 2,000+ disks in the library, call or write
  1123.  
  1124.                         The Public (Software) Library
  1125.                               P.O.Box 35705 - F
  1126.                            Houston, TX 77235-5705
  1127.                                (713) 665-7017
  1128.  
  1129.