[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference noted::hackers_v1

Title:-={ H A C K E R S }=-
Notice:Write locked - see NOTED::HACKERS
Moderator:DIEHRD::MORRIS
Created:Thu Feb 20 1986
Last Modified:Mon Aug 03 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:680
Total number of notes:5456

151.0. "WORMS ,COOKIES" by NEAVAX::MILLER () Wed Aug 21 1985 01:11

ENOUGH ABOUT THE LIMITS OF ONES UNDERSTANDING! I'VE HEARD ABOUT THE KILLER
 WORMS AND DESTRUCTIVE COOKIES ,BUT HOW ARE THEY DONE ? I WANT THE PROGRAMS
 AND HOW TO USE THEM! IF YOU KNOW HOW PLEASE REPLY, EVERYONE!


THANKS

C.J. MILLER co CHUCK MILLER




                              /\
                              ||

                            /


----\
                           /__||__\
                             A  A

                            /\ /\
                            |||||
                           /|/|\|\
T.RTitleUserPersonal
Name
DateLines
151.1TURTLE::GILBERTWed Aug 21 1985 16:451
Magic.  That's all.  Just simple magic.
151.2VAXUUM::DYERWed Aug 21 1985 18:132
	Write your own.
		<_Jym_>
151.3ASGMKA::TOMASWed Aug 21 1985 19:184
I think you've lost all your cookies, Chuck,.... and a worm is crawlin'
around in your head!

Joe
151.4NEAVAX::MILLERThu Aug 22 1985 00:295
THIS IS CHRISTOPHER MILLER NOT MY FATHER. I AM THIRTEEN YEARS OLD I AM NOT A 
MAGICIAN OR A PROFESSIONAL COMPUTER PROGRAMER. ALRIGHT? NOW GIVE ME SOME HELP!

 C.J. MILLER co CHUCK MILLER
 ---    
151.5VAXUUM::DYERThu Aug 22 1985 01:052
	If you're not a computer programmer, the programs won't do you any good.
		<_Jym_>
151.6SPRITE::MCVAYThu Aug 22 1985 13:143
 I will be glad to cook up a worm and ship it to your father's account. 
However, you will have to explain to him why the worms are crawling around
in his CPU...
151.7SCOTTY::FISHERThu Aug 22 1985 15:4423
Look, Christopher, to answer your question slightly more directly:  There
are only three things that these kind of programs are really good for (1)
Education, (2) bragging--the author showing it of to his/her cohorts, for
example,  and (3) Malicious mischief.  Now (1) can only be gotten by writing
said code, thus making it not helpful for someone to give you a copy.
(2) is not a factor since you are not a programmer, and thus not a cohort
in this sense, and (3) should speak for itself as a reason not to float these
programs around.

I don't intend this to be a put-down!  I am just trying to explain the reason
why people are reluctant to share this kind of stuff with people they don't
know.

It is not altogether clear that anyone REALLY has such a thing in its worst
manifestations, in any case. (I.e. the kind that spread themselves all over
the world by phone).

If you are interested in this kind of stuff from an intellectual viewpoint,
why don't you think about what such programs would need to do.  First an
overall view, and then breaking it into smaller pieces.  Post your ideas
here and start a discussion!

Burns
151.8R2ME2::GILBERTThu Aug 22 1985 17:3411
Copy HARE::SYS$PUBLIC:WORM.EXE and run it.

Also, if at all possible, try to use upper and lower case, instead
of all upper case.  It makes reading far easier (in fact, that's
why lower-case letters were created).  If your terminal can't
handle mixed case, converting everything to lower case (for the
readers benefit) would be better than all upper case.  

					- Gilbert

P.S.  I've never seen the 'cookie monster' program in action, either.
151.9REX::MINOWThu Aug 22 1985 18:2339
Let's not be nasty here folks.  (Unless you guys wish to post some of *your*
code here so the rest of us magician/programmers can have fun tearing
it apart.)

The only way to learn programming is to program.  You might try
writing a program that puts a worm on your terminal screen, then moves it
around, bouncing it off the edges of the screen.  You can move a character
(say an '*') at any point by writing an escape sequence as follows:
	<esc> [ row ; col H *
where <esc> is the escape character -- decimal 27, or octal 33,
	[   is the left-square bracket character
       row  is the line number to move to: 1 is the upper-left corner
	;   is the semicolon character.
       col  is the column number to move to: 1 is the left-hand margin
	H   is an upper-case 'H' (lower-case means something different).
	*   is the character you want to display there.

(by the way, there aren't any blanks in the escape sequence.  If you are
writing in Basic, you can move the cursor by
	PRINT CHR$(27); '['; NUM1$(row); ';'; NUM1$(col); 'H'; '*';
(Watch out, not all Basic's have NUM1$, which converts a number to
text without adding any blanks.)  You might have to write your own --
which is good practice for a beginning hacker, of course.

By the way, you can clear the screen by using the sequence
	<esc> [ 2 J
(again, no blanks between the characters -- I put them there for clarity.)

That's really all you need to know to actually draw worms.  The rest
is "just" figuring out where the worm starts, ends, and how it moves.
Some of that is hacking, some "magic", but most of it is just plain
sweat.

To see what a real good hacker/magician can do, take a look at the
current (September 1985) issue of Scientific American.

Good luck.

Martin.
151.10CRLF::YERAZUNISFri Aug 23 1985 18:2034
There is a game out for the commodore computer based on "worms".  The idea
is that there is a hexagonal grid of dots on the screen. Each dot is a place
the worm can be.  Every time a worm takes a step, from one dot
to the next, that path lights up in that worm's color and no worm can 
use it again (not even the original worm)

Each worm has a set of "navigation rules" to follow, such as

	IF 
		I'm at a dot
	 and
		Straight up is blocked by being used already
	 and
		left-and-down is blocked by being used already
	 and
		no other path is blocked
	
	THEN 
		go left-and-up

When the game starts up, none of the worms have any "rules". If a player
is controlling the worm, he can command the worm to move in whatever
direction he chooses IF the worm does NOT have a rule that applies.
As soon as the player moves the worm once, the worm now has an example to follow
and the worm creates a rule for itself that covers that particular situation of
open paths out of the local dot.
	
When a worm can not move any further, it dies.  The player controlling
the last living worm wins. If there is only one player, then the computer
controls two or three other worms, by making random rules.
	
The commodore game also beeps with a different tone for each worm and 
each direction for each worm, which makes a rather interesting musical
"melody"- but this is hard to do on a VT100.
151.11AMBER::EIRIKURFri Aug 23 1985 18:4247
re .9: That sure is the right suggestion, Martin.  I second the motion.

I taught myself to program by writing a video game in Basic.  I started
with a function that I stole from a Star Trek program.  It moved the
cursor around just like Martin described in his note.  Then I started moving
a flying saucer around.  It looked like this <OOO>.  Then I wanted to
shoot at it, and so I had to learn about reading single keystrokes from the
keyboard.  Pretty soon the aliens started needing a computer function to
dodge those missles.  Then they started shooting back...

This was on a DEC computer, (PDP-11/70, RSTS/E V6C, Basic Plus).  It wasn't
a very useful project, but a few other people enjoyed playing it--actually,
I think they enjoyed finding bugs and ways to beat it, but they gave me
ideas and watched my progress.  By the time I quit working on it, I had it
send mail if the user won, asking for a rematch.  I got quite deep into the
Input/Output structures of the operating system, just by wanting to improve
my program.  (By the way, Martin, some of the tricky details were gleaned from
your "RSTS/E System Programers Notebook,"  as a fledgling hacker, I found a
copy discarded in an office that someone had moved out of.)

Maybe this doesn't look like any fun, Christopher, but I tell you:  If you want
to, you can write your own worm program.  If you have some kind of personal
computer, can you write a program that calls up a similar computer (at a
friend's house, maybe) and copies itself, (or a seperate special virus program),
over to the other computer?  If you can do that, can you start that program
running over there?  Can you make it hang up the phone and call you back,
repeating the process?  You might need to write a special "Listener" program
to run on the target machine.  If you do this, you're really getting into
what computer networks and electronic mail are all about.  In a creative
way that would make a good school project or even be good for getting a job.
I'd start by ignoring the phone part, just putting the computers next to
each other connected by a cable.  (You could even learn how to make the cable,
and what pins carry what information--I find that part fun.)  Dialing the
phone, or answering it, is a little harder, but what with new modems like
the Hayes and compatible ones, it shouldn't be too hard.  Hackers spend a lot of
time reading manuals and looking for useful info.  A good bookstore like
Waldenbooks, or B. Dalton, or the MIT or Harvard Coop will have books that
give more detail about popular computers than the simple-minded user manuals
that come with them.  Look for titles like "Inside the Apple II", or "Advanced
Commodore 64 programming."

And if you don't have a computer then hey! take that note of Martin's and
write yourself a program on the computer you're using now.  I did.

	Have fun,

	Eirikur "Saucer War" Hallgrimsson
151.12ACE::BREWERFri Aug 23 1985 16:5314
	Christopher,

	When I was 13 I was a Phone phreak... To accomplish anything fun...
creative... rewarding...  etc took a lot of tedious work exploring the
phone system. 95% of it was boring... 5% was REAL FUN! But it takes some
work! I envy your age and the potential hacking fun you could have in
the future. 

	A better phone phreak than hacker... but still trying!

	-John

	PS: You might also look for Bulletin Boards in your area. Some
	goodies are to be found there also!
151.13VAXUUM::DYERSun Aug 25 1985 05:023
	John has provided a some lists of Bulletin Boards in this very file;
Notes #57 and #58.
		<_Jym_>
151.14SCOTTY::FISHERMon Aug 26 1985 03:089
Aaaaaaaaaaaaaaaaaaaaaaaaaaaaggggghhhhhhhh! Re my over reaction in .7:  I
thought you were talking about TAPEWORM programs!  These are the kind of
things that allegedly run around inside a computer and when you least expect
it destroy everything useful there and reimplant themselves so when the things
are finally restarted, they are still there to strike again.  Perhaps you
can understand my paranoia!

Burns

151.15VAXUUM::DYERMon Aug 26 1985 04:133
	An understandable position.  We have two notes in this file (#142 and
#146), both talking about WORM programs, both meaning different things.
		<_Jym_>
151.16ERIE::CANTORMon Aug 26 1985 05:094
Worm cookies contain 98% protein.  (I actually saw them for sale in
San Diego, California.  I know; it figures.)

Dave C.
151.17SYZYGY::SOPKAMon Aug 26 1985 23:3826
Christopher,

	In the March 1982 issue of the COMMUNICATIONS OF THE ASSOCIATION
FOR COMPUTING MACHINERY there is an article entitled "The 'Worm' Programs
-- Early Experience with a Distributed Computation" by John Shoch and
Jon Hupp from Xerox Palo Alto Research Center.

	"SUMMARY:  The 'worm' programs were an experiment in
	the development of distributed computations: programs
	that span machine boundaries and also replicate them-
	selves in idle machines.  A 'worm' is composed of 
	multiple 'segments', each running on a different
	machine.  The underlying worm maintenance mechanisms 
	are responsible for maintaining the worm -- finding
	free machines when needed and replicating the program
	for each additional segment.  These techniques were
	successfully used to support several real applications,
	ranging from a simple multimachine test program to a
	more sophisticated real-time animation system harnessing
	multiple machines."

	Hope you can locate a copy and learning something from reading
it.  Good luck,
						john

151.18Why force him to re-invent the wheel?CANYON::HESTERMANScott HestermanThu Jul 03 1986 21:3622
re Note 151.7 by SCOTTY::FISHER

>There are only three things that these kind of programs are really good for
>(1) Education, (2) bragging--the author showing it of to his/her cohorts, for
>example,  and (3) Malicious mischief.  Now (1) can only be gotten by writing
>said code, thus making it not helpful for someone to give you a copy.

I must disagree.  One may definitly learn by examining the work of
other more experienced programmers.  I don't condone code copying
but making use of routines and or techniques developed by others
can save one from having to 're-invent the wheel'.

I personally have learned a great deal both by examining other's
code as well as writting my own programs from scratch and learning
by my own mistakes.

One thing I find particularly useful is to examine someones code,
and then optimize it.  That makes it at least partially my work
(not from a legal standpoint, of course) and gives me some
pride in my abilities.

SLH
151.19GALLO::RASPUZZIMichael RaspuzziSun Jul 06 1986 17:127
    It also helps to "copy" others code when you are doing operating
    system development. It is easier to stick to coding standards this
    way. You also can be pretty assured that if a chunk of code works
    in one section of the operating system, th]n it will probably work
    in where you are putting it.
    
    Mike
151.20Ooops, I almost forgotGALLO::RASPUZZIMichael RaspuzziSun Jul 06 1986 17:179
    Before someone flames,
    
    The previous note refers to similar code. It would be silly to copy
    code (as is) from one module to another within an operating system.
    If you need to use the routine, then you call it right? If the code
    is similar, then you copy it and change the parts that are not what
    you need it for.
    
    Mike
151.21I'll flame anywayHITECH::BLOTCKYFri Jul 25 1986 21:529
>    code (as is) from one module to another within an operating system.
>    If you need to use the routine, then you call it right? If the code

Only if the routine is 1) designed to be shareable thought the operating 
system or 2) the maintainer knows you are depending on his routine.  And
in case 2, you a still might get screwed should he forget; get a comment put
into source indicating who is using it.

Steve