Dec 162017
 
Put your own password into the code of any .COM program.
File PUTPASS1.ZIP from The Programmer’s Corner in
Category Utilities for DOS and Windows Machines
Put your own password into the code of any .COM program.
File Name File Size Zip Size Zip Type
PUTPASS1.DOC 8576 3622 deflated
PUTPASS1.EXE 19520 9699 deflated

Download File PUTPASS1.ZIP Here

Contents of the PUTPASS1.DOC file







PUTPASS v 1.0 Copyright (C) 1987 by Danny Cornett and John Harrington
Command

DISTRIBUTION RIGHTS: allowed by authors without infringement of the copyright.

1. The work may be freely used, copied, and distributed etc. by the
processor, as long as the only charge is for reasonable media and
reproduction costs, etc.

2. Under no conditions may the work be used for commercial purposes or as
an endeavor to reap financial gain, etc. without written permission
from the authors.

3. Under no conditions may this work be distributed in modified form,
without written permission from the authors.

4. The work shall not be released in any form to the PUBLIC DOMAIN.

5. The authors retain all ownership rights of this work, as well as
distribution rights with the exception of those set out.

6. LIMITED WARRANTY: THE PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY
OF ANY KIND. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF
THE PROGRAM IS ASSUMED BY THE USER SHOULD THE PROGRAM PROVE DEFECTIVE.
YOU (AND NOT THE AUTHORS) ASSUME THE ENTIRE COST OF ALL NECESSARY
SERVICING, REGARDING THE USE OF, OR THE RESULTS OF THE USE OF, THE
PROGRAM IN TERMS OF CORRECTNESS, ACCURACY, RELIABILITY, CURRENTNESS,
OR OTHERWISE; AND YOU RELY ON THE PROGRAM AND RESULTS SOLELY AT
YOUR OWN RISK.

NEITHER THE AUTHOR NOR ANYONE ELSE WHO HAS BEEN INVOLVED IN THE
CREATION, PRODUCTION, OR DELIVERY OF THIS PROGRAM SHALL BE LIABLE
FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, OR INCIDENTAL DAMAGES
ARISING OUT OF THE USE, THE RESULTS OF USE, OR INABILITY TO USE SUCH
PRODUCT EVEN IF AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES OR CLAIM.

The authors are not aware of any known bugs in PUTPASS at this time,
but Murphy's law says there are probably several. We suggest that
in any case you keep a BACKUP of all your programs and data just in
case disaster occurs. One of may favorite statements concerning BACKUP
is:

"The only difference between a professional PC user and an amateur
is that the professional will BACKUP his system." - JR Harrington

7. THE USE OF THIS PROGRAM INDICATES ACCEPTANCE OF THESE TERMS
AND CONDITION.












Introduction to PUTPASS:
-------------------------------------------------------------------------
Danny Cornett did all the programming, John Harrington
conceived the need for PUTPASS, assisted in requirements and
assembling/editing this documentation. This program was designed
for use on an IBM Personal Computer using DOS 3.0 and greater, but
should work on DOS 2.x systems as well. However, it has not been
tested on older DOS versions nor on IBM compatibles.
-------------------------------------------------------------------------

Purpose: PUTPASS is a program that adds code to an executable file
so that a password must be supplied before the executable
will be executed. At the present time, only .COM files
are handled.


Format: The use of putpass is very straight forward:

putpass myfile.com

If myfile does not already have a password, a password
will be requested and verified (there is no echo to the
screen). The password code will then be added, with a
resulting output file named "myfile.cpm" which can then
be renamed to "myfile.com" after dealing with the original
version of "myfile.com" (BACKUP, rename or blow it away). Note
that the extension is not checked, and the program is assumed to
be a .COM file. If it isn't, it will be more or less destroyed
(But remember that the original is not bothered, so no big deal.
You will have an "executable ASCII" file, until the password
code jumps to the ASCII text, if you add password code to your
black book file).

If myfile already has the password code added, the old
password will be requested, and if successfully entered,
the password will be CHANGED. Again, "myfile.cpm" will be
the output with the original file still present.

myfile.com must be less than 64k - (password code size) - 10 bytes,
but that is no big deal for .COM files as they are limited to 64k,
and will not likely be this large. (.EXE files are another story,
but that's for another day). Presently, the password code size is
652 bytes, and the other 10 is approximate stack usage.


-----------------------------------------------------------------------
WARNING! If you forget your password, you will not be able to access
your .COM program. Plan to place the original un-passworded
program in a safe place (Backup or Archive) in case of an
emergency or future needs.
-----------------------------------------------------------------------









Remarks: MAKING PUTPASS

There are some non-automatic things that must be done to generate a new
putpass executable module; further coding can automate some of these. Here
is how to make the program.

1. Assemble the password.asm code, preserving the symbol table.
2. Run the makprogh program with the password.com file present
in the same directory, and its name as a command line argument.
This creates a file named progh.h which is needed by putpass.c.
3. From the symbol table, obtain the hexadecimal addresses of FIRST
and PSTART; edit these values in the password.h file. (This could
be "automated").
4. Compile putpass.c


There are several programs and files involved in the overall scheme:

1. C source programs

putpass.c the program that does the surgery
makprogh.c the program that converts the assembly
language password code to a C include file
encrypt.c the encryption/decryption routines, actually
done as an include in putpass.c - I was too
lazy to do a separate compile/link, but this
can be readily corrected
password.h the include file with definitions for putpass
and encrypt. This file may need editing if
the assembly code is altered.
progh.h the include file which is generated from the
makprogh program. It is a structure of the
password.com program generated from the
assembly sources.

2. Assembly source programs; actually, several files to be put
together to make the password.asm program

bxor.asm
callem.asm
extend.asm
merge.asm
pwhead.asm
pwtail.asm
scramble.asm
split.asm

The order of the assembly modules is important as follows:

pwhead.asm must be first
extend.asm must be second
callem.asm must be third
compare.asm must be fourth
pwtail.asm must be last

The other files may be anywhere between callem.asm and pwtail.asm. "makit.bat"
is included to concatenate the files, but the assumption is that the user has
the program "cat". If not, makit.bat still shows the order I used for the
files.


The assembly files were assembled using CHASM, so some rework will be
necessary if a "standard" assembler is used. These items come quickly to mind:

1) the CHASM offset function needs conversion to the OFFSET operator
2) arithmetic can be done by the assembler rather than doing
equates for coupled parameters (the "super version" of CHASM
can also handle this)
3) "movsb" == movs BYTE, etc.


The Computer Innovations C86 compiler was used for the C sources using the
big model (the whole program is brought into memory at once); there are
some gotchas here as well - see the source code for known flaws.

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

If you wish to report bugs, make suggestions for improvements, or just
relate your experience with PUTPASS, you may contact:

John R. Harrington
1147 Willowood Dr.
Milford, Ohio 45150

MICROLINE, 513 243-0188 (Data) SYSOP

CPCUG MIX, 301 480-0350 (Data) SYSOP Utility Conference

Danny D. Cornett
2417 Monatana Ave. #B6
Cincinnati, Ohio 45211

PLEASE, DO NOT SEND ANY FORM OF MONEY, this program is provided as a
thanks to those who have contributed fine software for PC users.

Enjoy!





 December 16, 2017  Add comments

Leave a Reply