IEEE Spectrum December, 2007 - 25
SANDbox StuDIo
other wannabe knights and knaves do battle in EverQuest (dubbed
"EverCrack" for its addictiveness), World of Warcraft, and other
games. Schoolchildren, college students, and GenXers are playing
such online games as Halo 3 on the Xbox 360 or Madden NFL 2008
on the Playstation 3. Many graying gamers take to casual online
games, such as bridge and chess. It doesn't take much more than
a computer and an IP address to access your passion.
Thurman started playing Ultima Online as an undergraduate in
1997. He couldn't help but wonder if, through a few hacks, there
was a way to make his game-playing experience better. After
surfing around, he came upon software such as UOAssist and
EasyUO. When run in conjunction with a game, those programs
gave players advanced macros, which are keyboard shortcuts to
speed up mundane tasks such as healing yourself after battle.
He realized he was on to something.
Thurman left Phoenix in 1998, moved to Dallas, and began working full time as a support engineer for a large software company,
which he also prefers not to name. He continued thinking about
hacking Ultima Online, and he became aware of the growing realworld market for virtual gold. The problem was that he couldn't
amass it fast enough to make a decent buck. But, he thought, if he
could create an auto-playing robot, something that could basically
play the game for him-then maybe he could cash in.
Drawing on his programming knowledge and with the help of
DIY hacker sources online, such as Fravia.com, Thurman got to
work. He started by shelling out $800 for a reverse-engineering
software tool called IDA Pro from DataRescue of Liège, Belgium.
IDA Pro lets users see the structure of a program's logic. Point
it at a program, and it creates a flowchart of how the software
works. Thurman directed the tool to the "client" software he'd
downloaded to his PC to let him to play Ultima Online. (The client
software is what every player downloads in order to play.)
Basically, IDA Pro reverse-engineered Ultima Online's inner
workings. Not only did it let Thurman see the basic functions
of the client software, it also let him see the specific memory
addresses where the software stored key variables such as the
player's location in the game world, an inventory of the player's
possessions, and the status of the player's health.
That information led Thurman to write a chunk of C++ code
that he inserted into the client software to allow it to communicate with Microsoft.Net, a development environment for
Windows computers. In effect, the C++ code functioned as a
kind of outlet to the servers running the game. With that done,
he needed, essentially, to write a plug to stick into the outlet.
He wrote that plug in Visual Basic. Once complete and installed
in his machine, it could exchange information with the Ultima
Online client in his computer and, through that client software,
the Ultima Online servers at the Redwood City headquarters of
Electronic Arts. In other words, he got access to the brains running the game.
Next, Thurman set up his bank of computers. He chose the
cheapest off-the-shelf PCs available that had enough power to
run Ultima Online, and he bought 30 of them. Each was equipped
with an Intel Pentium 4 or a Celeron processor, a gigabyte
of RAM, and a 20-GB hard drive. He connected the
bank of PCs to three monitors and
a network of six cable
modems, four routers,
and a Toshiba tablet PC
that he used to manage the
whole operation.
Then he got down to business. The plan was that each
www.spectrum.ieee.org
of the 30 PCs would play the game individually, creating a character and then using that character to perform tasks that would
earn gold. Thurman wrote software to randomly generate details
about the characters-names, classes (fisherman, say, or fighter),
and skills (such as magic or cooking), saving him the trouble
of creating each character manually. He cloaked his identity by
purchasing anonymous gift cards to set up accounts rather than
paying for them with a personal credit card (the gift cards are
no longer being sold).
Once his computers logged into a game, communication
between them and the game server was fairly straightforward.
For every action happening in the game that involved one of
Thurman's 30 characters, the game server sent the details back
to the relevant client computer, and vice versa. The details
included the skills of a character, the status of its health, and the
size of its bank account. Thurman eliminated the human element-
cut out the middleman, you might say-by programming his
computers to automatically respond to the incoming data from
the game server.
The application performed the functions that a normal player
would have to do with many repetitive keystrokes (Ultima Online
players use keyboards, not joysticks). One thing the program
couldn't do was sniff out moneymaking opportunities, so
Thurman did that himself. But once he identified an opportunity, he would quickly write code that told his characters what
to do to capitalize.
For example, in Ultima Online, gamers can make money by
cooking and selling chickens to tavern keepers. Thurman programmed his characters to buy raw birds from the butcher and
then prepare the food. Ordinarily, a gamer can cook only one
bird at a time, but Thurman automated the process so that his
30 PCs could cook as many as 500 birds at a time; he sold them
in huge quantities to the taverns. In minutes, his bank of computers could rack up an amount of virtual money that it would
take an individual player weeks to earn.
But wouldn't it be easy to spot a user who was cooking
and selling, in minutes, enough chicken to feed an army?
Absolutely. And that's where the real finesse of being a game
hacker comes in. A big part of the tradecraft is simply managing to avoid getting busted by the company game masters,
whose job it is to prowl for hackers. If they even suspect illicit
activity, they look up the associated Internet Protocol address
and can take action. "They would mass-ban your accounts,"
Thurman notes.
So he installed countermeasures. First, he got a separate account
for each of the 30 computers. He had six cable modems, with five
accounts tied to each one. He also paid his Internet service provider
an extra $16 per month to get four IP addresses to use (most households have just one), and wrote software to instruct the modems
to release one of those IP addresses every six hours and grab a
new one to replace it. In a network with dynamically assigned IP
addresses, any modem outage and reboot results in a new address
assigned; Thurman effectively generated his own outages so that
he could get new IP addresses. His constantly
shifting array of IP addresses made it hard
for the sleuths at Electronic Arts to notice
the fantastic quantities of chicken he was
selling, to say nothing of the ore he
was mining, melting into
ingots, and exchanging
for game currency.
But churning the IP
addresses wasn't a fool-
December 2007 | IEEE Spectrum | NA 35
http://www.Fravia.com
http://www.Microsoft.Net
http://www.spectrum.ieee.org
Table of Contents for the Digital Edition of IEEE Spectrum December, 2007
IEEE Spectrum December, 2007 - Cover1
IEEE Spectrum December, 2007 - Cover2
IEEE Spectrum December, 2007 - 1
IEEE Spectrum December, 2007 - 2
IEEE Spectrum December, 2007 - 3
IEEE Spectrum December, 2007 - 4
IEEE Spectrum December, 2007 - 5
IEEE Spectrum December, 2007 - 6
IEEE Spectrum December, 2007 - 7
IEEE Spectrum December, 2007 - 8
IEEE Spectrum December, 2007 - 9
IEEE Spectrum December, 2007 - 10
IEEE Spectrum December, 2007 - 11
IEEE Spectrum December, 2007 - 12
IEEE Spectrum December, 2007 - 13
IEEE Spectrum December, 2007 - 14
IEEE Spectrum December, 2007 - 15
IEEE Spectrum December, 2007 - 16
IEEE Spectrum December, 2007 - 17
IEEE Spectrum December, 2007 - 18
IEEE Spectrum December, 2007 - 19
IEEE Spectrum December, 2007 - 20
IEEE Spectrum December, 2007 - 21
IEEE Spectrum December, 2007 - 22
IEEE Spectrum December, 2007 - 23
IEEE Spectrum December, 2007 - 24
IEEE Spectrum December, 2007 - 25
IEEE Spectrum December, 2007 - 26
IEEE Spectrum December, 2007 - 27
IEEE Spectrum December, 2007 - 28
IEEE Spectrum December, 2007 - 29
IEEE Spectrum December, 2007 - 30
IEEE Spectrum December, 2007 - 31
IEEE Spectrum December, 2007 - 32
IEEE Spectrum December, 2007 - 33
IEEE Spectrum December, 2007 - 34
IEEE Spectrum December, 2007 - 35
IEEE Spectrum December, 2007 - 36
IEEE Spectrum December, 2007 - 37
IEEE Spectrum December, 2007 - 38
IEEE Spectrum December, 2007 - 39
IEEE Spectrum December, 2007 - 40
IEEE Spectrum December, 2007 - 41
IEEE Spectrum December, 2007 - 42
IEEE Spectrum December, 2007 - 43
IEEE Spectrum December, 2007 - 44
IEEE Spectrum December, 2007 - 45
IEEE Spectrum December, 2007 - 46
IEEE Spectrum December, 2007 - 47
IEEE Spectrum December, 2007 - 48
IEEE Spectrum December, 2007 - 49
IEEE Spectrum December, 2007 - 50
IEEE Spectrum December, 2007 - 51
IEEE Spectrum December, 2007 - 52
IEEE Spectrum December, 2007 - Cover3
IEEE Spectrum December, 2007 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1217
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1117
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1017
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0917
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0817
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0717
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0617
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0517
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0417
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0317
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0217
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0117
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1216
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1116
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1016
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0916
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0816
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0716
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0616
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0516
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0416
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0316
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0216
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0116
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1215
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1115
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1015
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0915
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0815
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0715
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0615
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0515
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0415
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0315
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0215
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0115
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1214
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1114
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1014
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0914
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0814
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0714
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0614
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0514
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0414
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0314
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0214
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0114
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1213
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1113
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1013
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0913
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0813
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0713
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0613
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0513
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0413
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0313
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0213
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0113
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1212
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1112
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1012
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0912
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0812
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0712
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0612
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0512
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0412
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0312
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0212
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0112
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1211
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1111
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1011
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0911
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0811
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0711
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0611
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0511
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0411
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0311
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0211
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0111
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1210
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1110
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1010
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0910
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0810
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0710
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0610
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0510
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0410
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0310
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0210
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0110
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1209
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1109
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1009
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0909
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0809
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0709
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0609
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0509
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0409
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0309
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0209
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0109
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1208
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1108
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1008
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0908
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0808
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0708
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0608
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0508
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0408
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0308
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0208
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0108
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1207
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1107
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1007
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0907
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0807
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0707
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0607
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0507
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0407
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0307
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0207
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0107
https://www.nxtbookmedia.com