Make your own free website on

Gatekeeper version 1.3 of 12-Nov-93 by Chris Johnson (c)1988-1993


This distribution consists of the following files:

1. Gatekeeper READ ME.txt - TeachText document
2. Gatekeeper Introduction - Microsoft Word document
3. Gatekeeper Introduction.txt - Text version of item 2.
4. Gatekeeper FAQ.txt - TeachText document
5. Gatekeeper Mailing List.txt - TeachText document
6. Gatekeeper - system extension (INIT)
7. Gatekeeper Aid - system extension (INIT)
8. Gatekeeper Controls - control panel (cdev)
9. Gatekeeper Extras Folder - folder containing the following:
9.1. Gatekeeper Extras READ ME.txt - TeachText document
9.2. Gatekeeper Privilege Mover - control panel (cdev)
9.3. Gatekeeper Privileges.txt - Privilege Mover text file
9.4. Gatekeeper Application - application

If you haven't used Gatekeeper before, begin by reading "Gatekeeper
Introduction." If you are familiar with previous versions, but not
1.2.x, note that enough has changed that a glance at that introduction
wouldn't hurt. Take a look at the installation instructions, in

The Microsoft Word documents included in this distribution use the
Helvetica, Times and Monaco/Courier fonts, and were setup for a
LaserWriter printer. In order to appreciate the reasonably decent
formatting in those documents, make sure you have those fonts
installed, and select the LaserWriter driver in your Chooser, if
that's convenient. Unfortunately, if you won't be opening these
documents in Microsoft Word, but will be reading them into some
other word processor, the nice formatting will probably be lost in
translation. Sigh.

By the way, Gatekeeper's Help display will also look a lot better
if the Helvetica, Times and Monaco fonts are present in your system.

Of course, no claims or promises are made regarding Gatekeeper's
effectiveness or suitability, and some functions and capabilities of
Gatekeeper are non-trivial to use and may require a careful reading
of the documentation.

Gatekeeper 1.3 Release Notes 12-Nov-93

Gatekeeper 1.3 was created the day after 1.2.9 was released to fix
a bug that caused all pre-7 systems to hang during startup, and
crashed some System 7.x machines.

For those of you wondering about the story behind the bug, and
why 1.2.9 missed its scheduled release date by three days, it's
pretty simple. When the new viruses appeared, I was in the middle
of work on a new and improved Gatekeeper which was going to be
version 1.2.9 in a couple of months. Unfortunately the work, while
mostly complete, still wasn't quite finished at the time those
viruses appeared. So I had to either (a) try to finish the new
improvements very quickly, or (b) rip them all out and return,
more or less, to the functionality of 1.2.8. I went for option
'b'. Unfortunately, while I was ripping out the nifty new code, I
overlooked one file in one of the ten or so projects that currently
combine to form Gatekeeper. Consequently, some of that new code
which wasn't quite finished was built into one portion of version
1.2.9. Since it was mostly working, it passed all my in-house
(actually "in-office" would be more accurate) tests prior to
release, but failed when it finally met up with the real world.

Why didn't I just go back to the archived 1.2.8 source? Because
there were some bug fixes and various uncontroversial (but
significant) improvements already in 1.2.9 which I certainly
wanted to be part of any new release.

So, here's 1.3; use it in good health. Please delete any copies of
1.2.9 that you may have laying around and spread the word that 1.3
is available.

[Thanks, BTW, go to Brian Price for allowing himself to be
dragooned into running some last minute tests.]

Gatekeeper 1.2.9 Release Notes 11-Nov-93

Gatekeeper 1.2.9 was created to deal with the CODE 1 and MBDF-B
viruses. The latter, MBDF-B, was already dealt with by previous
releases, but code was added to explicity identify the virus as the
"B" strain instead of as an "unknown" strain.

At the same time, some improvements have been made. These include
the elimination of a known false-positive identification of the
INIT 1984 virus, the further refinement of address sanity checking
code (and its application in a couple of new places), the addition
of some new privileges, the elimination of the conflict between
version 1.2.8 and System 7 Tuner, and probably a couple more things
I can't remember at the moment. :-)

BTW, there's now a mailing list for Gatekeeper update notices, etc.
See the "Gatekeeper Mailing List.txt" document for details.

Special thanks go to John Norstad for his analysis of CODE 1 which
saved me a lot of time over doing my own.

Gatekeeper 1.2.8 Release Notes 17-Aug-93

Gatekeeper 1.2.8 is a maintenance release which corrects problems
found in 1.2.7, works around weirdness in some forthcoming Apple
software, and extends the default privilege list as usual.

Remember that in order to see the new privileges, you must first throw
away the existing "Gatekeeper Prefs" file. Don't bother trying to
empty the Trash, just put the prefs file in there. Once you've
installed the new Gatekeeper and rebooted, you'll be able to empty the
Trash. If you don't do all this, Gatekeeper will continue to use the
old prefs file, and you won't benefit from any of the new privileges
that have been added.

Some of the changes include:

€ Copying files from the Finder when QuickDraw GX is installed no
longer generates privilege violations. 1.2.8 includes a less than
wonderful, but good-enough-for-now, workaround for the strange
changes made to the Finder supplied with GX. (Just make sure the
Network Extension is installed on your Mac.)

€ Four patches have been eliminated. Examination of their practical
value showed that Gatekeeper would work just as well without them,
and every patch eliminated is, of course, one less source of
problems down the road....

€ Behavior under interrupt conditions has been improved.

€ Address sanity-checking code has been added/improved.

The effects of these changes include the elimination of conflicts
with GraceLAN Responder and the VersaTerm ftp server.

A few problems are still reported to exist in 1.2.8. One tester
reports that neither it, nor 1.2.7, will work in a Mac IIci equipped
with a Daystar 33MHz Turbo 040 accelerator. Another tester reports a
conflict with the Global Village TelePort fax modem control panel, but
only on a PowerBook 170, not on other CPUs. Mysterious bus errors are
reported by another tester. Everyone else, however, gives it a clean
bill of health. As usual, there's no such thing as bug free software.

Gatekeeper 1.2.7 Release Notes 19-Jan-93

Gatekeeper 1.2.7 does two things: (1) it corrects a number of bugs
found in 1.2.6 following its release, and (2) it significantly
improves Gatekeeper's ability to determine the identity of the
programs whose activity it monitors. This last change involved a
complete replacement of the host identification code in 1.2.6,
which was, itself, a significant enhancement over the same code
in all previous versions. The new code is not only far more
effective, but significantly smaller and faster as well.

A few of the bugs eliminated:

€ A 68000 incompatibility normally associated with expanding the
privilege list. Typically this caused Mac Pluses, SEs, etc.
to crash when adding a new item to the privilege list.

€ The After Dark screen saver loaded very slowly in the presence
of 1.2.6. The problem was that code added in 1.2.6 had not
been optimized for performance due to the need to deal with the
T4 virus as quickly as possible. While the performance effects
of this unoptimized code were not limited to After Dark, it only
seems to have been obvious there for reasons that aren't
especially clear.

€ A conflict with version 4.0 of the Apple CD-ROM driver.

€ A conflict with MediaManager.

Lots of other bugs are history, too, but it'd take too long to sort
through all the old bug reports and put together a list. Basically,
1.2.7 is just a heck of lot smarter and more stable (if the last six
months of testing can be trusted) than 1.2.6.

If it hadn't taken six and a half months and twelve test versions to
track down a few weird bugs in 1.2.7, it would have been released
months ago.

One new feature has been added: Gatekeeper will now resolve aliases
to its "Gatekeeper Prefs" and "Gatekeeper Log" files if the names of
the aliases are *identical* to the names of the files they represent.
An alias named "Gatekeeper Prefs alias" won't work, for instance.

This feature may possibly be useful to people configuring Macs with
read-only System Folders, as it allows the Prefs and Log files to
be stored in other locations that are can be accessed in a read/write

The release notes for previous versions are included below for your
amusement. They are no longer of any importance at all.

Gatekeeper 1.2.6 Release Notes 9-Jul-92

Gatekeeper 1.2.6 began as a simple maintenance release intended to
correct a few bugs in 1.2.5. Unfortunately, the appearance of the
T4 virus required the sudden addition of a lot of code heretofore
scheduled to debut in version 1.3. Although only a little of this
code was required to deal with T4, it was all so interrelated that
it made sense to add the entire body of code at the same time. This
code gives Gatekeeper a much better idea of "who's who" in the Mac,
and should make it possible to grant privileges to programs
(especially those loaded by INITs) that could not be identified
properly by previous versions.

While 1.2.6 was still in testing, a new and destructive Trojan
Horse program aslo appeared. Gatekeeper Aid was updated to search
for this program. Aid will warn you anytime it encounters this

While all this was going on, a little time was found on a couple of
already late nights to add a much requested feature: an OFF switch
with a user-configurable time limit. Previous versions of
Gatekeeper have only supported a 30 minute time limit on the OFF
switch (once known as the Override switch). Version 1.2.6 allows
you to choose any time limit from 99:59:59 to as little as 0:00:00
HMSέ. With a maximum time limit of just over four days, there
should be time enough to install even Microsoft Word 5. :-)

Finally, a couple of bugs in version 1.2.5 were found and fixed.
The most important of these bugs was one which caused all of
Gatekeeper's settings, including the contents of the privilege
list, to revert to their defaults after a couple of new privileges
were added to the privilege list and the system was rebooted.

[έHMS means "Hours, Minutes, Seconds" and refers to the
significance of the three colon-separated fields of the times
displayed. The first field is hours, the second is minutes andŠ
well, you get the idea.]

Gatekeeper 1.2.5 Release Notes 19-Mar-92

The primary reason for the release of Gatekeeper 1.2.5 is the INIT
1984 virus. This version includes an updated Gatekeeper Aid which
can detect and remove that virus on the fly. Previous versions of
Gatekeeper could prevent the spread of INIT 1984, but could not
disinfect infected files.

Version 1.2.5 also contains a fix for the bug that caused THINK
Pascal's debugger to complain of system heap corruption. This is
likely to resolve some of the reported conflicts between Gatekeeper
and other publisher's products. Thanks to whomever implemented the
excellent heap consistency checking code in THINK Pascal's debugger
for bringing this problem to light.

Finally, version 1.2.5 should include a complete set of workarounds
for the conflict between AutoDoubler and Gatekeeper. Although the
products do work together now, some performance problems may exist
when launching compressed applications. Yes, this can be annoying,
but remember that AutoDoubler is *commercial* software, so you have
to make allowances for these sorts of troubles.... ;-)

Gatekeeper 1.2.4 Release Notes 20-Feb-92

The primary reason for the release of Gatekeeper 1.2.4 was the
MBDF A virus. This version includes an updated Gatekeeper Aid
which can detect and remove the MBDF A virus on the fly.

Version 1.2.4 should also, at last, include a complete set of
workarounds for System 7 Tuner's mischief. In addition it includes
workarounds that may eliminate the conflict between AutoDoubler and
Gatekeeper, although there wasn't enough time prior to release to
test this thoroughly. In any case, it's an improvement over 1.2.3
in this respect.

WARNING: If you use THINK Pascal, see the NOTE TO THINK PASCAL
USERS included in the Gatekeeper 1.2.2 section below. It should
still apply. In an effort to resolve the problem mentioned there,
I have been in touch with some people in the THINK portion of
Symantec, but until they get back to me, things are at a

Gatekeeper 1.2.3 Release Notes 27-Jan-92

Gatekeeper 1.2.3 corrects two stupid oversights found in 1.2.2.
One involved the display of entries in the Gatekeeper Log which
dealt with resource privilege violations (the format for file
violations was used inadvertently), and the other involved an
internal table which believed it was shorter than it actually was.

Nothing else has changed since 1.2.2.

Gatekeeper 1.2.2 Release Notes 21-Jan-92

The primary purpose of version 1.2.2 is to correct problems that
prevented Gatekeeper 1.2 and 1.2.1 from loading during startup.
Those problems resulted in Gatekeeper and/or Gatekeeper Aid
crashing, refusing to load during startup, or incorrectly drawing
their startup icons. Unlike version 1.2.1, which was also intended
to fix this problem, version 1.2.2 actually *does* fix it (had to
happen sooner or later ;-).

Two Gatekeeper 1.2.2 testers reported that, with 1.2.2 installed
on their Macs, the THINK Pascal debugger would complain that the
system heap was corrupt. In both cases, examination of the system
heap with the low-level MacsBug and TMON debuggers revealed NO
corruption present, so I am forced to suspect that the THINK Pascal
debugger is incorrect in its diagnosis. Testing using MacsBug on
other systems also failed to find any case in which Gatekeeper
1.2.2 was corrupting the system heap. In addition, the TMON user
noted that after using TMON to check the system heap integrity once,
the THINK Pascal debugger would also give the system heap a clean
bill of health.

Some (but not all) of the other changes and fixes include:

€ Version 1.2.2 includes a workaround for Apple's System 7 Tune-Up
problem. This workaround eliminates the need for the Finder to be
granted Res(Self) privileges. If you have granted those privileges,
please revoke them once you've installed 1.2.2. Note that this was
(and is) a problem with Apple's Tune-Up widget; it was NOT a
problem with Gatekeeper.

€ Gatekeeper Aid now records its activities in the Gatekeeper Log.

€ Gatekeeper records more of its own activities in the log. This
includes changes to everything in the "Settings" section of
Gatekeeper Controls except for the Startup Icon setting, which I
regard as unimportant.

€ Gatekeeper Aid now respects Gatekeeper's ON/OFF, "Notify &
Veto"/"Notify Only", "Display an Alert", "Record it in the Log
File" and "Startup Icon" settings.

If Gatekeeper is OFF or in Notify Only mode, 'Aid will NOT remove
any implied loader resources it detects, although it WILL remove
any known viruses (or their close relatives) that it finds.
Strictly speaking, this isn't really what "OFF" implies to users,
but it seemed silly for 'Aid to overlook things it KNOWS are
viruses under any circumstances. Input on this point is welcome.

If Gatekeeper's "Display an Alert" option is off, 'Aid won't
display its alerts, either. The same goes for the "Record it in the
Log File" and "Startup Icon" settings.

€ Gatekeeper Controls and Gatekeeper Privilege Mover will no longer
crash pre-7 Macs if the Control Panel DA is opened when Gatekeeper
is NOT installed.

€ Gatekeeper 1.2.2 protects some additional toolbox functions and
resource types which could heretofore have been exploited by

€ Gatekeeper used to give some people trouble by failing to
identify the applications performing certain privileged operations.
Instead, it would blame the operations on an application whose
name was a string of gibberish. This was caused by an obscure,
unitialized boolean variable and has been fixed.

€ Gatekeeper Aid is no longer confused by Desktop files outside of
the root directories of volumes.

€ Gatekeeper Controls should now work on Quadras. The code
resource segmentation scheme employed in THINK C 4.x was
responsible for the incompatibility. Since Gatekeeper 1.2.2 has
been built entirely under THINK C 5.0.2, the problem is history.

€ If, during startup, Gatekeeper finds that there is no Gatekeeper
Prefs file, it will create one containing a complete default
privilege list. (Gatekeeper used to create a new Prefs file
containing an *empty* privilege list ­ this caused some folks who
didn't follow the installation instructions some problems.)

€ Self extracting archives (SEAs) created by the
soon-to-be-released Zoom archiver will automatically get the
File(Other) privileges they need. Gatekeeper already provides this
privilege to SEAs created by StuffIt (Classic and Deluxe), Compact
Pro and Disk Doubler.

€ Gatekeeper Controls now has a flexible system for translating log
file entries into readable alerts, based on easily edited
resources. This may be of use to people trying to internationalize

€ The Gatekeeper, 'Aid, 'Controls and 'Privilege Mover icons have
been updated in System 7 style, i.e. the icons for the INITs look
like puzzle-pieces, and the icons for the cdevs have little slider
controls running down their left sides.

Note that in order to see all these new icons, you'll need to
remove *all* previous versions of Gatekeeper from your disk(s) and
rebuild your desktop file(s).

€ The "puzzle-piece" icons for Gatekeeper and Gatekeeper Aid will
appear connected on the startup screen if the icons would otherwise
be adjacent. This is of no practical value whatever, but it is
kinda cute.

Gatekeeper 1.2.1 Release Notes 4-Jul-91

(This release contained some fixes and enhancements over version 1.2,
but my records don't go back far enough to tell me what they were

Chris Johnson

UUCP: {husc6|uunet}!!ut-emx!chrisj
BITNET: chrisj@utxvm.bitnet
CompuServe: >