Flooding the m-net BBS

Once upon a time I got banned from m-net for computer hacking. Then, maybe like a week ago, the powers that be let me back on the system. I noticed right away that nothing changed. All I saw were a bunch of hose head “IT Professionals” gloating about all their wonderful work experience. Yet the same old crappy software bugs still existed. Then I started to wonder out loud “What good is all the fucking professional IT experience if you can’t even fucking fix the damn software on this site. I mean, it’s not the the admins are telling you no. In fact, the three stooges that run this dump actually encourage people to do software patches on the system.”

So after like 2 hours on the BBS, I was once again having war of the words in the regulars. I would call some of the regulars “fat and bald”. And in return, they would call me “A drunk pervert that has confessed to wearing pantyhose out in public.”

There was one particular jerk off IT professional that really irked me. I kept telling this homo to go fuck off. But yet, he still argued with me. So I got fed up and wrote a BBS respond flooder. Basically, more or less, the script would automatically do a shit load of responses in any given thread. Ie a topic.

For example, Here would be a list of threads…

1 48 welcome to the december general conference item
2 4 december system problems item
3 250 december announcements item
4 2 december other conferences on m-net item
5 62 december happy item

Thread 5 would be the “december happy item”. The number 62 would represent the number of actual responses, by various users, in thread number 5.

The lead up to the abuse
For whatever reasons, this ‘IT Professional, whom I shall refer to as the “homosexual ninny from england”, was really annoying me in thread 125. So I unleashed my script on this thread. Here is what the thread looked like..

125 1833 What would you buy Julian Assange for Christmas?

That’s right. There were over 1800 responses in that thread. And is part out the output from the script itself..

Item 125 entered Sat, Dec 18, 2010 (15:29) by Sam (chiquita)
What would you buy Julian Assange for Christmas?

1816 new of 1833 responses total.

#18 Proud wife beater (duality) Sat, Dec 18, 2010 (18:56):
mart isnt bright

#19 Proud wife beater (duality) Sat, Dec 18, 2010 (18:56):
mart is a homosexual

#20 Proud wife beater (duality) Sat, Dec 18, 2010 (18:56):
mart takes it up the ass from cross

#21 Proud wife beater (duality) Sat, Dec 18, 2010 (18:57):
mart can go fuck off

#22 Proud wife beater (duality) Sat, Dec 18, 2010 (18:57):
mart is a queer ass virgin

#23 Proud wife beater (duality) Sat, Dec 18, 2010 (18:57):
mart is a fag

Shortly after this happened, I was got all these lame accusations that I was just doing some kind of copy and paste job. So to rebuke all these fags, I posted the entire working code on this site. And here it is…

#The script starts in non-interactive mode (aka bot mode).
#Press ctrl-c to get into interactive mode and 'ctrl ^]' to
#get back into non-interactive mode.
#And now a few comments...
#a)The script only works on the Linux Operating System.
#  This is because the program relies on the concept of a
#  "psuedo terminal". As far as I know, the closest you
#  can get to a "psuedo terminal" in Windows is using something
#  like cygwin.
#b)Using something like 'ctrl ^]' to get back into non-interactive
#  mode is something that is mentioned python pexpect module,
#  but not in the actual pexpect document itself. 

import pexpect, time, signal, getpass

#I need a large list of profanity because the computer doesn't always
#follow the Gaussian Probability curve.

profanity = ["mart is a fag", "mart is a homo", "mart is dumb",
             "mart is a retard", "mart is a moron", "mart is stupid",
             "mart is a virgin", "mart is gay", "mart isnt witty",
             "mart sucks dans dick", "mart sucks his moms dick",
             "mart can go fuck off", "mart likes little boys",
             "mart isnt bright", "mart is a homosexual",
             "mart takes it up the ass from cross", "mart can go fuck off"]

x = 1

def mode(sig, data):
    global x
    x = x + 1
def get_name():
    user = raw_input("Username: ")
    password = getpass.getpass("Password: ")
def idle(user,password):
    y = 1
    max = len(profanity)
    count = 0
    bbs = pexpect.spawn('telnet arbornet.org')
    print bbs.before,bbs.after,

    while bbs.isalive():
        if ((y % x ) == 0):
            bbs.expect('Ok: ')
            bbs.sendline('r noresp 125')
            bbs.expect('Respond or pass?')
            if count < max:
                count = count + 1
                count = 0
                bbs.sendline('mart is a queer ass virgin')
            y = y + 1
if __name__ == "__main__":
    signal.signal(signal.SIGINT, mode)

The actual deleting of the BBS item
So I began to wonder if I could max out the number of responses in any given thread. And if so, what would happen. This line of thinking stems from freshman level Calculus at UW. You see, I had professor that always told us “All the interesting math happens at the boundaries of a function.” So, uhhh…, like… I just extended this concept to the realm of computer programming. I swear to god this isn’t made up. Quit laughing and fucking give me some mother fucking support.

So I ran the script for like maybe 90 minutes. After that, I got the following error messages on my computer…

[cdalten@localhost oakland]$ ./mnut.py
Username: duality
Connected to arbornet.org (
Escape character is ‘^]’.

FreeBSD/i386 (m-net.arbornet.org) (ttypn)

Traceback (most recent call last):
File “./mnut.py”, line 97, in ?
File “./mnut.py”, line 45, in get_name
File “./mnut.py”, line 82, in idle
File “/usr/lib/python2.4/site-packages/pexpect.py”, line 1311, in expect
return self.expect_list(compiled_pattern_list, timeout, searchwindowsize)
File “/usr/lib/python2.4/site-packages/pexpect.py”, line 1325, in expect_list
return self.expect_loop(searcher_re(pattern_list), timeout, searchwindowsize)
File “/usr/lib/python2.4/site-packages/pexpect.py”, line 1409, in expect_loop
raise TIMEOUT (str(e) + ‘\n’ + str(self))
pexpect.TIMEOUT: Timeout exceeded in read_nonblocking().

version: 2.3 ($Revision: 399 $)
command: /usr/kerberos/bin/telnet
args: [‘/usr/kerberos/bin/telnet’, ‘arbornet.org’]
searcher: searcher_re:
0: re.compile(“>”)
buffer (last 100 chars): ? r
Too many responses on this item!

Respond or pass?
before (last 100 chars): ? r
Too many responses on this item!

Respond or pass?
after: pexpect.TIMEOUT
match: None
match_index: None
exitstatus: None
flag_eof: False
pid: 30555
child_fd: 3
closed: False
timeout: 30
delimiter: pexpect.EOF
logfile: None
logfile_read: None
logfile_send: None
maxread: 2000
ignorecase: False
searchwindowsize: None
delaybeforesend: 0.05
delayafterclose: 0.1
delayafterterminate: 0.1

Basically, I had entered in too many responses in thread 158. Uhh… yeah, more or less I tested my theory on thread 158. Why that thread? I have no idea. I was fucking drunk at the time, and uh like, I just sounded like the cool thing to do.

And here is what happened when I logged into the system to manually enter a response…

#1999 Proud wife beater (duality) Sun, Dec 26, 2010 (13:12):

Respond or pass? r
Too many responses on this item!

That’s right, The m-net bbs wouldn’t let me enter in response number 2000.

I saw the following when I looked looked at the threads on m-net…

158 1999 What did you get, fuckers?
159 5 Why the Hell didn’t she just call her neighbors?
160 0 The cat was allowed back upstairs after being the basement for two days. He is not quick to forgive…


And then, when I browsed the threads again, I saw the following..

m-net% bbs
YAPP 3.1.1 Copyright (c)1995 Armidale Software
Registered to: Arbornet
Invalid format of sum file

155 2 ho hoe whoe
156 10 oy vey
157 7 ho rudolph red nosed reindeer got his red nose


155 2 ho hoe whoe
156 10 oy vey
157 7 ho rudolph red nosed reindeer got his red nose
161 0 Nice censorship


Threads 158 (the one I maxed out the responses with), 159, and 160 got deleted.

At first I thought the m-net admins just deleted the shit. But they told me no. So when I asked what happened, they told me it was a “system glitch”.

The aftermath
I’ve had a few people ask me to explain how the code works. I refuse to do that since I couldn’t do any justice to the explanation. I would say use google, but like googling isn’t enough. Instead, let me cite one of the comments made in one of the python modules used in this code..

[cdalten@localhost ~]$ more /usr/lib/python2.4/pty.py
“””Pseudo terminal utilities.”””

# Bugs: No signal handling. Doesn’t set slave termios and window size.
# Only tested on Linux.
# See: W. Richard Stevens. 1992. Advanced Programming in the
# UNIX Environment. Chapter 19.
# Author: Steen Lumholt — with additions by Guido.

The book is kind of expensive, hard to find, and not exactly easy to read. But I still feel that’s better than some half baked moronic response found on some loser unix forum site dominated by a bunch of moron “IT professionals” who have zero academic publications to their name.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: