home *** CD-ROM | disk | FTP | other *** search
- _______
- / \ LockIt
- / \ version 1.30
- | |--------------------- ________________
- \ / | |
- \_______/ | | by Matthew Bloch
-
-
- with thanks to Piers Wombwell + Dick Alstein
-
- !!!! This program is SHAREWARE !!!!
- Please read the end of the file for conditions of usage
-
- What it does
- ~~~~~~~~~~~~
- Basically, if you have software which should only be used on one computer,
- this program makes sure that the software stays there. If a computer is used
- by many people, there is always the risk of some people taking copies of this
- software. So LockIt will 'chain' a particular program to a specific computer
- by several different methods.
-
- How it works
- ~~~~~~~~~~~~
- So how do we tell whether a piece of software is being run on the computer it
- should be running on? There are several ways of doing it; all of them invlove
- encoding the application to some extent, so it is *critical* that any program
- that you process with LockIt is not your only copy. Please do NOT alter
- original discs in any way. On the other hand, don't leave unencoded copies of
- the program lying around with the encoded ones.
-
- The program has actually evolved from there a bit, so read on - I've added
- some extra features here and there.
-
- Usage
- ~~~~~
- There are two programs involved, LockIt and LockItPW. To use the program you
- must first choose which protection methods you want used which are described
- below. Then drag the application or file to the LockIt window. If you want to
- save over your original, just click OK on the save box, otherwise specify a
- new name and drag it to a directory display. Anyway, here are the protection
- methods used:
-
- - Software password
- This will only let the application run if the !LockItPW program is also
- present with the correct password entered into it. The idea being that the
- password in the LockItPW program and the encoded application should match.
- Note that any programs you encode in this way will only run when the LockItPW
- program is loaded. You can easily set this to run on startup.
-
- - CMOS password
- Again this program relies on the !LockItPW program to be loaded but this time
- the password is stored in the battery-backed RAM, not the !LockItPW program.
- This is more appropriate if the program is to be put on a network where one
- password can be put into every computer.
-
- - Ask for password
- Rather than having the password previously entered in CMOS RAM or in a
- software module, the program can ask the user for a password every time the
- program is run. This can get tedious, but might be more suitable for some
- purposes.
-
- - Configuration code
- This relies on certain parts of the machine staying constant such as the
- econet station number, memory size and operating system version. If the
- config code the application is encoded with do not match those within the
- machine the program will not run. See below for how to find out a particular
- machine's configuration code.
-
- - Machine ID
- This is the most secure method but only works on the more modern Acorn
- machines. Each Acorn computer comes now with a unique 'identity' chip with a
- value inside it which will be different for every computer. If you enter a
- machine's ID into this box, it can *only* be run on that machine. See below
- for how to find out a particular machine's ID.
-
- - Start working / stop working on a certain date
- You can encode programs so that they will only work after a certain date,
- before a certain date or between two dates. Tick whichever options you want
- and enter the appropriate dates in the boxes.
-
- - Squeeze file
- Not so much to stop piracy but preserve disc space. Using Acorns own
- 'Squeeze' program, it reduces the space taken up by the program on disc. Note
- that some applications will be already squashed; if so this will have no
- effect.
-
- - Process file several times
- This will feed the same program through several times which will make hacking
- harder. Note that some programs may not like being processed too many times
- with all the other measures as well. The best tactic is to encode it once
- with all the normal measures that you want then turn them all off and
- re-process it as many times as you want. This usually works well.
-
- Since two methods rely on parts of the machine not directly accessable to the
- user, two buttons are provided in the program to read the machine's ID or
- configuration code. Click on either to enter that machine's values into the
- boxes. To find out today's date, you can click in the 'Read date' box.
-
- If you save over your original file, the program will warn you and give you
- the option to cancel this. If you want to disable this warning, you can alter
- a line in the !Run file inside the application to -warnings off. If you're
- not sure how to do this, contact me for help!
-
- Also note that the passwords are CASE-SENSITIVE. This means that you must
- enter the same combination of capitals & small letters in both the !LockIt
- and !LockItPW programs. The CMOS password can be only 31 characters long.
- Spaces and quotes are not allowed in passwords.
-
- You can also save the settings for the next time you use LockIt. To stop
- automatic loading of these settings the next time, hold down ALT as you load
- the program.
-
- If any of the conditions aren't met when a protected program is run, such as
- passwords being incorrect or the program being out of date then the computer
- will give a nasty error, not always deliberately. This *might* crash the
- machine but only if the passwords/IDs are wrong rather than just missing.
-
- Using LockIt from the command line
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- If you want to use LockIt in part of a compilation process for example, it
- can be invoked without going through the WIMP front-end:
-
- Run <LockIt$Dir>.LockIt -in -out -softpw -cmospw -inputpw -machid
- -config -from -to
-
- Fill in the correct filename/password/id/date in the appropriate spaces. All
- of these switches are optional except -in which must be specified exactly as
- written with an input filename. If no output filename is given, the input
- file is overwritten. The dates following -from and -to should be in the form
- ddmmyy (example 271179 = 27th November 1979).
-
- Note that due to programming difficulties, you must always specify the -in
- switch. All other switches can be left out and implied by the order you put
- them in.
-
- LockItPW
- ~~~~~~~~
- This program sets the passwords on the machine either in the CMOS RAM or in a
- module which can be loaded on startup. To alter the passwords, load the
- program while holding down ALT. It will ask you for new software and hardware
- passwords which will be made effective immediately. From then on, any
- programs loaded with these passwords set can work properly. The CMOS password
- will remain on that machine until changed. The software password can be
- loaded again from a boot sequence by just running !LockItPW normally.
-
- Hacking it ... can it be done?
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- The answer is of course yes. Any protection system at all can be foiled by a
- determined hacker with a bit of time on his hands. The hope is that this
- protection is sufficiently elaborate to put off most from hacking it. Also
- there is no programmer's 'back door' into programs protected with LockIt -
- honest! This means that the password is not stored anywhere within any
- protected programs. Also the date protection is of course useless if people
- turn back the clock in their computer to run a protected program.
-
- The best way to protect your programs is to encode them once in the normal
- manner, then run them through with all options deselected except the 'process
- file x times' option. Set this to about 30 to make any hacker's life
- difficult.
-
- I'm not supplying the source code to this program for obvious reasons; if you
- have any questions about the way it is written, then ask me, don't hack!
-
- Future improvements
- ~~~~~~~~~~~~~~~~~~~
- The innovative design feature of this program is that it is written in a
- completely un-modular fashion. This means that if any extra modules need to
- be added on, it is virtually impossible to pick through all the lines of
- spaghetti ARM-code. However, here is a list of some things I might try to do
- in order of priority:
-
- --- The file encoding routines need speeding up a lot. They're written in ABC
- compiled BASIC at the moment; large files can take ages.
-
- --- LockItPW really needs to be smartened up a bit; a proper window wouldn't
- go amiss but maybe it's just overkill. I'll do it one day. Likewise password
- prompting.
-
- --- I might try to write a disc-protection system whereby discs are specially
- formatted so that they cannot be copied and applications will only run if
- this disc is present. I'll put this as a higher priority if anyone is
- interested.
-
- Conditions of usage - PLEASE READ THIS
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- This program is SHAREWARE. This term means that the software is not free and
- should be payed for if you find it useful. Please recognise the fact that
- this program was not just knocked up over a week-end. The rule is that if you
- are going to use this program to protect any software then you should send £5
- to the address below. I am quite keen that schools and colleges register
- their usage of this program. You may however copy this unregistered version
- around to anyone you like providing that every file is included unchanged.
- The copyright remains mine at all times.
-
- This does not apply to people who just want to use it to squeeze their own
- programs or convert their BASIC programs to absolute code since I didn't
- write either 'squeeze' or 'Bas2App'.
-
- Incidentally if you do register, you will be entitled to updates to the
- software on receipt of a disc and postage costs. I'll also write your name in
- the info box. Please do remember, registering is not just to get rid of the
- annoying shareware box but to support a struggling programmer who currently
- needs a new hard drive.
-
- Version history
- ~~~~~~~~~~~~~~~
- If you've got an earlier version of LockIt, here's a history to show you what
- has been added over the months. Versions 1.10 and 1.24 are decidedly dodgy
- (in fact they barely work at all) due to no testing; sorry!
-
- 1.00 Original release
- 1.10 A few cosmetic changes made, suggested by Cy Booker
- Interactive help put in
- 1.11 Bloody program didn't work in v1.10 due to no testing. Ooops
- 1.20 Time-lock features added
- Protection system improved
- 1.21 Minor bug fixed
- Help file formatted to 77 columns for easy printing
- 1.22 Icons made to look prettier on RISC PC
- Save options bug fixed
- 1.23 MakeApp2 supplied (temporarily) with this release
- 1.24 Bas2App included and BASIC files are now processed 'transparently'
- Fixed little bug concerning source/destination file size
- 1.30 Added password prompting
- Fixed bug in 1.24 which only process BASIC files :-O Silly me
- Put in a 'proper' save box and facility for NOT overwriting original
- Squashing is now done from WIMP front-end
- Tidied up program a bit
-
- Thanks to...
- ~~~~~~~~~~~~
- Thanks to Piers for helping me with the time-lock bit - I wouldn't know
- anything about BCD if it wasn't for him. He also pointed out the fact that
- v1.20 corrupted the last 4 bytes of each file. Whoops. Also, thanks very much
- to Dick Alstein for writing and giving me permission to use Bas2App with
- LockIt. I should also accredit Acorn for writing the 'squash' program; I
- don't have any qualms about distributing it since it is supplied with every
- copy of RISC OS anyway, i.e. every Archi user will have it on their Support
- Disc.
-
- Contacting me
- ~~~~~~~~~~~~~
- You can write or email me, especially if you want to register! Please report
- any bugs or problems that you have with the program to me. Also if you have
- problems using any aspect of this program or if you can suggest some
- improvements; I'll be only too happy to write them in.
-
- Matthew Bloch, Internet: MBloch@arcade.demon.co.uk
- 5 Brookside, Arcade BBS: user #1644 (quicker than Internet)
- Headington,
- Oxford, OX3 7PJ.
-
-
- Bye,
-
- ..Matthew..