Powered by glolg
Display Preferences Most Recent Entries Chatterbox Blog Links Site Statistics Category Tags About Me, Myself and Gilbert XML RSS Feed
Sunday, Oct 30, 2011 - 21:54 SGT
Posted By: Gilbert

The Huntster Awakens

Me: "Mr. Robo, after two weeks of waiting, this had better be good."

Mr. Robo: "No worries. Presenting... Roborovhunt!"

[Download Roborovhunt v0.11 for Windows (1.2MB)]


Me: "And what the beep is this?"

Mr. Robo: "Relax. Well, you see, when you took me on as your research assistant assistant, you gave me free rein to explore, right?"

Me: "Uh huh."

Mr. Robo: "My preliminary study revealed that the greatest hit to your productivity is due to online distractions. Therefore, I wrote this program to play your MouseHunt for you!"

Me: *Silence*

"Mr. Robo, you're a genius!"

Mr. Robo: "The only tricky part was the CAPTCHAs, termed King's Challenges, that periodically pop-up. Otherwise, I could have just scriped the mouse to click every fifteen minutes or so. Very fortunately, you said something about this back in late 2008, which I built on."

Me: "Impressive."

Mr. Robo: "The format has changed somewhat over the past three years, but the basics remain the same. Nowadays, they don't even rotate the letters, but that would be at most a minor inconvenience."

"In any case, the main challenge remains dividing the image up into individual characters, also known as segmentation, which is made difficult by the overlaying of spurious lines atop the letters:"


"Clustering by colour gave unreliable results, so I hit upon the expediency of searching for the ends of the lines; the candidate pixels are in red in the middle example above. I then considered all possible pairings of these points, and assumed that pairs that were far enough apart, *and* had coloured pixels along almost their full length, were true spurious lines; they are then marked in grey in the bottom example, with doubtful pixels in green. Whatever remains in black is indeed highly likely to be part of an actual character."

"All that remains is to repair the image a little, retain only the black pixels, and retrieve the five largest connected components. For each of these candidate characters, we simply compare them with all possible letters and numbers with sufficiently similar length-to-width ratio."

Unsurprisingly, the character tends to be most similar to the correct character...

"In the above example, black and white pixels are shown where the (resized) candidate matches the template; red is shown where the template has a black pixel and the candidate a white one, and blue for the reverse."

"I added some simple multi-scale detection, so Roborovhunt knows whether MouseHunt is open/the horn is ready/there is a King's Reward, and acts accordingly. Alternatively, the program may be run in non-automated mode, in which case it becomes a glorified timer that nags you to sound the horn every fifteen minutes or so."

Me: "Cute."

Mr. Robo: "Some final technical specs: Roborovhunt was coded in C++ with wxWidgets, statically-linked to avoid DLL dependancies, and the executable compressed with UPX."

Here Be Mods

*Mr. Robo pulls on his white hat*

Mr. Robo: "Now, this is all proof-of-concept only, although the King's Reward solver works about 80% of the time (tested on twenty samples), you're not supposed to actually use it, m'kay?"

Me: "Sure, sure."

Mr. Robo: "I could probably get more than 80% if I spent more time on the OCR algorithm, possibly incorporating an exhaustive search, but I believe it's good enough for practical purposes; a typical design goal for such challenges is that computers should be able to solve them less than 0.01% of the time (whereas humans can do over 90%), a standard which we have far exceeded in this case."

Me: "Don't worry, it's good enough - I often mistype anyway."

Mr. Robo: "Indeed, machines are getting so good at this that CAPTCHAs have often become so contrived that humans get a headache looking at them - see page two of this paper for some examples."

"Obviously, failing too many CAPTCHAs is a surefire way to detect a cheater, but administrators have to be careful of hammering people in this way, lest they offend the less visuospatiallinguistically-gifted. However, there are may other possible telltail signs."

Me: "Being active for days in a row being one of them?"

Mr. Robo: "Correct. So it's important for those who use bots not to be too greedy. You're not one of them, of course."

"There are many other little things: Clicking on the exact same pixel, for example, or accessing the service exactly the same period of time apart, most of which I have tried to avoid with Roborovhunt. Technically speaking, what you want is for your bot to generate a set of data that is basically indistinguishable from, or overlaps sufficiently with, an average user."

"The fewer rights a service provider has to your computer's data, the easier this is to achieve. Some games insist on running GameGuard or equivalent software, which requires more involved measures than your typical webgame. However, this is still theoretically circumventable with some external sensor-actuator design, for example a robotic arm hooked to a mouse controlled by a webcam fixed on the monitor."

Me: "Or you could just pay a Chinese gold farmer to play the game for you."

Mr. Robo: "But that wouldn't be nearly as cool!"

Me: "Point taken."

Mr. Robo: "Then again, many games publishers are probably not too eager to root out bots and multiple-account-players, since it inflates their membership, which is often good monetarily."

Me: "Uh huh. Extend it to play my other games for me. Just to make sure that you can."

"And fix the HD on the mio TV box, would you? I had to switch channels every ten seconds while watching United play Everton yesterday, just to keep the stream going."

Mr. Robo: "It was a stupid idea to build a HD network over decades-old copper wires in the first place."

Me: "You tell me."

Mr. Robo: "Anyway. The ham-teams still can't get a break, Tottenham beat Blackburn 2-1 when I had them for two or more goals last weekend."

Me: "My fault? At least they didn't try to defend by putting the defender behind the striker on crosses, like United tried against City."

Mr. Robo (0/800 seeds): "Heck it. 25 seeds each on five (8.00), six (16.00), seven (28.00) and eight (40.00) goals in Tottenham vs. QPR later."

FAKEBERT (814/800 seeds): "I'll just go for the Tottenham win (1.30), thanks."

comments (0) - email - share - print - direct link
trackbacks (0) - trackback url

Next: Passings

Related Posts:
It Was A Honest Mistake
Notes From A Cult Leader
That Day Again
Image Concerns

Back to top

Copyright © 2006-2022 GLYS. All Rights Reserved.