Home > General > Revenge is sweeter than life itself. So think fools.

Revenge is sweeter than life itself. So think fools.

Last Friday my boss whipped up a program that would spam my phone with text messages.  It was cute – until I had 350 unread text messages and my phone wouldn’t stop vibrating.

Over the weekend my thirst for vengeance overpowered me, and I decided to give him a taste of his own medicine. I spent about 30 minutes writing an app that would not only spam his phone with text messages, but fill his e-mail inbox too.  Oh yes, that would show him!

Like most developers though, I can’t just leave well enough alone. An e-mail loop is just too simple, features must be added, functions must be enhanced.

Address spoofing – check.
Randomized subject lines – check.
Randomized content – check.

Then things got out of hand. Harmless subjects gave way to “Free Viagra!” and “You’re fired!”.  Messages became, “I think I’m pregnant”.  Worst of all, spoofed addresses went from mutual friends to mutual bosses.

At the time I thought my hellish little spam app was brilliant.  When Jaime called I expected him to concede victory, to beg me to stop killing his inbox.  Nope, not even close.

“Hey dude, I think you have a virus.  It’s sending e-mails to Barry.”  Barry is our boss’, boss.

Wait, what?  I didn’t code it to do that.  It would look like it came from him, but it surely wouldn’t send it to him.  How could this be?  I checked my e-mail to see if I was getting anything.  There it was, Mr. Mailer Daemon informing me that my message could not be delivered.   Apparently Jaime had disabled incoming text messages coming from e-mail gateways, and AT&T cheerily notified the sender each time one of these messages failed to deliver.  Oh, damn.  The one feature I didn’t add was the one to route the reply address back to me.  Actually, in hindsight, I think the one feature missing was common sense.

I never got my revenge.  I did get a heavy dose of humiliation, but everyone needs that once in a while.

For anyone wanting to hang themselves, or perhaps simply to amuse themselves at my expense, I posted the code below.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
using System;
using System.Collections.Generic;
using System.Net.Mail;
using System.Threading;
 
namespace MailBomb
{
 class Program
 {
  static void Main(string[] args)
  {
   new Program();
  }
 
  Program()
  {
   List recipientList = getRecipientList();
   List senderList = getSendersList();
   List subjectList = getSubjectList();
   List contentList = getContentList();
 
   string host = "localhost";
   int port = 25;
 
   int count = 400;
   TimeSpan delay = new TimeSpan(0, 0, 10);
 
   Random r = new Random();
 
   SmtpClient sc = new SmtpClient();
   sc.Host = host;
   sc.Port = port;
 
   Console.WriteLine("Mail Bomb Started");
   for (int i = 0; i < count; i++)
   {
    string sender = senderList[r.Next(senderList.Count)];
    string recipient = recipientList[r.Next(recipientList.Count)];
    string subject = subjectList[r.Next(subjectList.Count)];
    string body = contentList[r.Next(contentList.Count)];
 
    MailMessage mm = new MailMessage(sender, recipient, subject, body);
 
    sc.Send(mm);
 
    if (i != 0 && i % 10 == 9)
     Console.WriteLine(".");
    else
     Console.Write(".");
 
    Thread.Sleep(delay);
   }
  }
 
  List getRecipientList()
  {
   List recipientList = new List();
   recipientList.Add(string.Empty);
   // A bunch of e-mail addresses go here
 
   return recipientList;
  }
 
  List getSendersList()
  {
   List senderList = new List();
   senderList.Add(string.Empty);
   // A bunch of e-mail addresses go here.
 
   return senderList;
  }
 
  List getSubjectList()
  {
   List subjectList = new List();
   subjectList.Add("You're fired!");
   subjectList.Add("Navigator status");
   subjectList.Add("Something to tell you...");
   subjectList.Add("We need to talk");
   subjectList.Add("Check this out!");
   subjectList.Add("I LOL'd");
   subjectList.Add("spaceghost coast to coast");
   subjectList.Add("free VIAGRA!");
   subjectList.Add("this weekend");
   subjectList.Add("Need you to call");
   subjectList.Add("Looking for a good time?");
 
   return subjectList;
  }
 
  List getContentList()
  {
   List contentList = new List();
   contentList.Add("We need to talk.  I think I'm pregnant.");
   contentList.Add("contentList.Add(\"contentList.add(... <- its recursive!");
   contentList.Add("Starting to run out of ideas for content");
   contentList.Add("The subject lines were easier to write.");
   contentList.Add("Just got an idea!");
   contentList.Add("What gets wetter and wetter the more it dries?");
   contentList.Add("You throw away the outside and cook the inside. Then you eat the outside and throw away the inside. What did you eat?");
   contentList.Add("What goes up and down the stairs without moving?");
   contentList.Add("What can you catch but not throw?");
   contentList.Add("I can run but not walk. Wherever I go, thought follows close behind. What am I?");
   contentList.Add("What's black and white and red all over?");
   contentList.Add("What goes around the world but stays in a corner?");
   contentList.Add("I have holes in my top and bottom, my left and right, and in the middle. But I still hold water. What am I?");
   contentList.Add("Give me food, and I will live; give me water, and I will die. What am I?");
   contentList.Add("The man who invented it doesn't want it. The man who bought it doesn't need it. The man who needs it doesn't know it. What is it?");
   contentList.Add("Yup, my idea was to paste riddles!");
 
   return contentList;
  }
 }
}
  1. Jason
    November 5th, 2009 at 19:13 | #1

    You big dork,… Funny. Too funny. Its what you didn’t think of that always comes back to haunt you…

    “In life, as in chess, forethought wins” –Charles Buxton

    P.S. Don’t even think of filling up my inbox with free viagra (but the mailbox would be fine;))

  1. No trackbacks yet.