On the morning of April Fool’s Day 2011, I was the victim of a prank. I was on my merry business enjoying what seemed like an uneventful day. At 10:23 am, I got a text declaring “Its FRIDAY FRIDAY.” This is an obvious reference to the godawful Rebecca Black Friday video that was a viral sensation a few weeks ago. Following that initial text, I got a barrage of similar texts. Over the next few hours, I must have gotten upwards of a hundred texts, many from friends of mine, but also many from people not in my contacts list.
My first reaction was that this prank must have been some kind of sensation that I hadn’t heard about. After all, I can’t be the only one experiencing this, right? I was completely wrong. Later that day, the joker mastermind confessed. Apparently, I was the sole victim. I was not the original victim, however. He had sent a text to about 35 friends, telling them to send me “Friday” texts and to pass it on. One zealous helper sent the text to 37 of his friends, telling them to prank me and continue the process.
Now, this raises some interesting questions. It would be really cool to have the data of who sent the text to whom and who decided to prank me. We could then overlay that data with their social proximity to me to determine the likelihood of someone passing the message on or sending the message to me. We could further subdivide all of that data with regard to age, gender, and the like. But, I’d say it would be hard to obtain the data without actually contacting everyone who was involved. Doable, but not as simple as scraping a website, for example.
Of course, there’s one question remaining. How do I get back at them? I decided to write Pradbot.
Pradbot is an email spambot that sends spam to people via text via email-SMS gateways. It spams people so I don’t have to. I had an email-sender program from a while ago. It was quite simple, using the JavaMail library to connect to an SMTP server, authenticating, constructing, and sending the message. All I had to do was figure out how to send text messages via email gateways, which is also a simple process.
Almost every carrier has an email that you can send to that will forward the message to the phone number. That email is the SMS gateway. You just need to append the number to the front of the email. (“firstname.lastname@example.org” to send to an AT&T number, for example.) Wikipedia conveniently has a list of these gateways. And since there is no easy way of determining a phone number’s carrier, I decided to send to the gateways of all four major carriers (AT&T, Verizon, T-Mobile, Sprint).
I just put in a list of many of the numbers that had messaged me and let the bot loose. It used one of my new Pradbot gmail addresses to send the email. I knew from the beginning that this bot could only do limited damage though. SMS gateways limit the number of messages you can send. My bot, with the express intention of sending as many texts as possible, got to that limit pretty quickly. I used other email accounts, but they hit the limits pretty quickly too.
I think I sent around a dozen texts to the people that the texts actually got to. Ironically, the chief prankster didn’t receive any. AT&T handles their gateways differently from others, I suspect. Here’s the Eclipse project if you want to run it yourself.
At the end of the day, it was fun being the victim. Although they ate up about a third of my month’s supply of texts, it was good fun. Though my bot didn’t devastate their inboxes, some people did get annoyed. I also broke several TOS’s, but hey, it was April Fool’s Day. Remember kids, don’t go all techno-prankster on CS majors. Mildly annoying things might happen to you.