Live data from Hacker News

Morris Worm Decompiled (1988)

foo.be

21–30 of 30 posts

Re: Morris Worm Decompiled (1988)

#21
post #7

@gnosis and sparky, text offsets are also put in comments next to the function declarations. For example: "h_clean() /* 0x31f0 */"

Indeed. Those I figured were from a tool, but the ones with confused-sounding prose were dead giveaways.

Re: Morris Worm Decompiled (1988)

#23

according to legend, this was supposed to be merely a proof of concept, but a bug in the code caused it to replicate uncontrollably. does anybody know what that bug was?

> The worm could have determined whether to invade a new computer by asking if there was already a copy running. But just doing this would have made it trivially easy to kill; everyone could just run a process that would answer "yes" when asked if there was already a copy, and the worm would stay away. The defense against this was inspired by Michael Rabin's mantra, "Randomization." To compensate for this possibility, Morris directed the worm to copy itself even if the response is "yes", 1 out of 7 times.[2] This level of replication proved excessive and the worm spread rapidly, infecting some computers multiple times. Morris remarked, when he heard of the mistake, that he "should have tried it on a simulator first."

-http://en.wikipedia.org/wiki/Morris_worm

Re: Morris Worm Decompiled (1988)

#25
post #13

Excerpt from the Wikipeida article about the worm's author: Morris is an American professor at Massachusetts Institute of Technology. He co-founded the online store Viaweb, one of the first web-based applications, with Paul Graham. http://en.wikipedia.org/wiki/Robert_Tappan_Morris

He also wrote a good chunk of the code you used to post this comment.

http://news.ycombinator.com/user?id=rtm

Re: Morris Worm Decompiled (1988)

#26

according to legend, this was supposed to be merely a proof of concept, but a bug in the code caused it to replicate uncontrollably. does anybody know what that bug was?

> The worm could have determined whether to invade a new computer by asking if there was already a copy running. But just doing this would have made it trivially easy to kill; everyone could just run a process that would answer "yes" when asked if there was already a copy, and the worm would stay away. The defense against this was inspired by Michael Rabin's mantra, "Randomization." To compensate for this possibility…

"One in seven?! rtm, you jerk! Why seven?"

Excerpted from the book Cyberpunk: Outlaws and Hackers on the Computer Frontier (published 1991). The quoted speaker is Paul Graham.

Re: Morris Worm Decompiled (1988)

#28
post #6
post #5

Earlier quoted context omitted.

Just out of curiosity, what makes you think that?

The comments, mostly. For example: object objects[69]; /* Don't know how many... */ /* This report a sucessful breakin by sending a single byte to "128.32.137.13" * (whoever that is). */ /* This appears to be a structure unique to this program. It doesn't seem that * the blank slots are really an array of characters for the hostname, but * maybe they are. */ /* There are pieces of "stub" code, presumably from somethi…

>>(whoever that is)

Berkeley, apparently.

Re: Morris Worm Decompiled (1988)

#29
post #16

If anybody's curious: http://en.wikipedia.org/wiki/Morris_Worm

More hilarious, though, is the local news coverage of the event: http://www.youtube.com/watch?v=G2i_6j55bS0

I love the taglines (somebody make this movie!):

"The students were safe. Their computers weren't."

"The suspect, somewhere, a dark genius."

"I suspect it's an 'A' student. A good 'A' student."

Re: Morris Worm Decompiled (1988)

#30
This isn't the actual source code. As far as I know, only a small piece of the real worm's code ever got published, and that was in the Cornell Report, Cornell University's post mortem. This isn't the code in the Cornell Report.

Someone in 1989 or 1990 ran an ad in the back of "2600" magazine, selling the source code on paper. I bought a copy back then, I can remember the date because of the apartment I was in when I read the code. I think the "2600" version is the same as this one, but with someone different header comments.

I have a copy of this code from a tar archive with date of 1991-06-05 on it, so it's been floating around the Internet for almost 20 years at this point.

Post reply on HN