Multiplayer Game Forensics
June 10th, 2010 |Massively Multiplayer Online Role Playing Game, that’s a mouthful, so most people shorten the full moniker to the acronym, MMORPG.
A little background for those who don’t play games online. MMORPGs are just one flavor of many types of online games. MMORPGs include such games as World of Warcraft, Sims Online, Everquest, Everquest II, Second Life, Age of Conan, Hello Kitty Adventure Island, Free Realms, and dozens more.
However, that list does not include other types of on-line games such as Party Poker, Red Baron, Call of Duty, Enemy Territory, Quake, and so many others; I cannot begin to list them all here.
Currently there are over one hundred and fifty of these games being played by millions of people throughout the world, and there are over one hundred new games currently in development for release over the next two years.1
These games have target audiences including games just for children such as Free Realms, Hello Kitty Adventure Island, and others. They can be played on personal computers, Playstation, and X-Box consoles and even on phones.
Online games have reached a level of popularity that means that you will more than likely encounter this type of evidence in a case at some point. World of Warcraft alone claims millions of subscribers. And that is just one game of literally dozens of online game titles.
Anywhere people congregate and interact over time you will find crime or some form of bad behavior. A quick Google search will turn up dozens of news stories where people are accused of committing real-world crimes where one of these games has played a part. Here are excerpts from just a few of those published news stories:
“A Houston mom is accused of luring a then 15-year-old Canadian boy into a sexual relationship after “meeting” him through the online game World of Warcraft, according to a report from Fox.
Lauri Price, 42, apparently thought this through. She decided she’d fly to Canada to have relations with the boy when he turned 16—as a way to sidestep U.S. statutory rape laws. (In Canada, the age of consent is 16.)”2
“A South Korean couple whose three-month-old daughter died of malnutrition while they were raising a virtual child in an online game pleaded guilty to negligent homicide on Friday.”3
“A Portland woman who met a 14-year-old Tennessee boy while playing the online game ‘World of Warcraft’ is accused of engaging him in sexual chats and trading explicit photos.”4
“PORTLAND, Ore. – The Multnomah County Sheriff’s Office has launched an investigation into allegations that a local corrections deputy bragged about using a Taser gun on people in an Internet chat room.
“Lt. Jason Gates of the Multnomah County Sheriff’s Office said he is appalled at the alleged online comments of the county corrections officer.
“According to Gates, Thompson used a county work computer to play the online video game ‘City of Heroes’ while on the job and then boasted about the joy he gets from hurting people in jail in the chat room.
“Budnick said that according to Trafalgar’s online chat, the deputy has posted more than 1,700 messages on the ‘City of Heroes’ Web site since January. At one point, he allegedly posted 64 messages in 24 hours.”5
People are people, and when they interact with others, online affairs and other relationships can bubble up. Some people get addicted to these games and play them many, many hours per week; sometimes to the exclusion of all else in their lives.
And in online games, the only representation you get of the person is their game avatar and chats, whether they are text or voice. Is it easy for a person to get attached to another’s online persona. And that persona can be entirely made up to suit the person projecting that persona, for whatever reason they may have to do so.
Be aware that child predators also see these games as a place to groom potential victims.
Are you handling a case of child neglect? Could game logs show what the person was doing instead of caring for a child?
Could game logs reveal a connection to someone that will help solve a missing persons case?
Can the presence of a game lead you to look for other information such as forum memberships and posts?
Data is everywhere. Not all of it is relevant, but the only way to know is to look. Don’t overlook possible evidence just because it is a game.
A Forensic Analysis of Everquest II
Most of these games keep logs of their activities. In addition to the automatic logs kept by the games, many times players will keep additional log files by setting in-game logging to occur.
In addition, inside the files in the program directory you will find the names of the player’s accounts and characters (avatars) that they play.
Everquest II also keeps a handy little file that captures the most recent commands sent to the game by the player. This is not something the player is aware of, since they have no control over it.
The majority of these automatically generated logs have date and time stamps in them, so even if the date and time of the file is changed by someone, the original time stamp may still be in the log for recovery.
Everquest II keeps a log of when the game was installed, when it was last logged in, and the session times. By analyzing the all of the logs, you can determine play session times and dates.
If the player has turned on in-game logging, you have a treasure trove of information. In-game logging records everything the player types into the game, with time stamps, as well as everything anyone else in the game types in a message to the player.
By analyzing in-game logging files, you can determine dates and times of play sessions along with the length of time for each session.
And of course you get all the conversations the person had while playing the game, if they are using the game interface for chatting via the keyboard.
However, bear in mind that many players also use voice chat to talk directly to other people in the game using a microphone and headset. Those conversations are not logged unless you are a party to the conversation and have a method to record the audio.
All of the files analyzed in this article are located in the Everquest II directory or in the Station directory.
Finding Player Account Names and Characters
The Station Launcher Properties.ini file contains a list of all user accounts that have been accessed on the computer.
The install-location.xxxxxxxxxxx.eq2-live would have the player’s account name where you see the string of x’s. I have redacted the actual account names in this example. This is a player’s actual account name for logging into the game and not their character name.

Figure 1 – Station Launcher Properties.ini
Using the information from the file above, you can locate a particular account name and open the xxxxxxxxxxx_characters.ini file to see the character names that are active for that account. Remember that the xxxxxxxxxxx would actually be a name of an account.

Figure 2 – Account File That Contains Character Names
Inside the xxxxxxx_characters.ini file you will find the character name and the SONY server where that character is located. Note that character names are only unique by server and not for the entire game.

Figure 3 – Character Names for the Selected Account
In addition, the eq2_recent.ini file stores the last logged in account. In this case, I have redacted the account name and replaced it with x’s. Note that you also see the server name the player last logged into.

Figure 4 – The Last Logged In Account
Finding an Account’s Friends List
You can locate the friend’s list for a character by opening the Server_CharacterName_eq2_notes.txt file. CharacterName would be the name of the actual character.

Figure 5 – A Character’s Friend’s List
Daily Connection Logs
Every time a player logs into Everquest II, a daily connection log is created for that day. Only one log is created per day, so if the player has multiple sessions, they will be recorded in that day’s log. These files are located in the log’s subdirectory.

Figure 6 – Daily Connection Logs
The time stamp for the Daily Connection Log is the time of the first session for that day.

Figure 7 – Inside a Daily Connection Log
Inside the Daily Connection log, viewed here in WordPad, you can see the end of the play sessions for that day.
Parsing Log Files
If the user has logging turned on in the game, Everquest II will keep extensive detailed logs of everything the player interacts with, including all private chats. In the game, a private chat is initiated by the /tell command. To locate the log files for a particular character, you navigate to the logs subdirectory, then to the server subdirectory, and finally to the play log file.

Figure 8 – Server Log Folders
Once you are inside a server’s sub directory you will see a listing of all the log files for that server.

Figure 9 – Log Files in the Unrest Server Directory
These log files can get extremely large and contain a great deal of information you don’t care about from a forensic analysis standpoint.
Parsing Logs in Microsoft Access
In their raw format, the log files are difficult to read.

Figure 10 – Log File Viewed in WordPad
The easiest way to parse the log files to extract the information you would want in a forensic exam is to import the text file into an Access database. Here are the steps to import and then analyze the log files using Access queries.
Step 1: Open MS Access and select Get External Data – Import

Figure 11 – Step 1
Step 2: Locate the log file you want to import into Access

Figure 12 – Log Files
Step 3: Start the import process
Since the log can contain punctuation, the best method is to import the log as fixed width.

Figure 13 – The Text Wizard Import Dialog
Step 4: The lines with the arrows pointing up below are where the wizard thinks the fields should be divided. Double click on the leftmost arrow to remove that field break. That will keep the time stamp field whole with the year. See Figure 15 for the completed step.

Figure 14 – Import Text Wizard Field Breaks Dialog

Figure 15 – Import Text Wizard with the Field Break Removed
Step 6: Complete the import process by clicking Finish to import the log files into a new table.

Figure 16 – Import the Log File into a new table
Creating Queries to Parse the Log File
Step 1: In Access, select the Queries menu selection and then click on Create Query in Design View.
Step 2: Select the table you created earlier when you imported the log file and click Add.

Figure 17 – Select the Table Created from the Log File
Step 3: Drag the fields to the grid in the lower pane of the Design Query window.

Figure 18 – Drag the fields to the Query Grid
At this point, if you run the query, you would see the data in the view below:

Figure 19 – Initial Query View
Step 4: Add descriptive names to the column headers. To add the descriptive header, click in the field name and type in what you want to show as the column name. I.e. Time Stamp:. The colon is required to tell Access that you are putting a label in the field.

Figure 20 – Query with Descriptive Headers

Figure 21 – Query View after Adding Header Names
Step 5: Add the ID field by dragging it to the grid. The ID field is automatically created by MS Access and is an autonumber field.

Figure 22 – Add the ID Field to the Query

Figure 23 – Query View with the ID Field
The reason we want the ID field in the query is to add some forensic tracking to the query. Note that when you attempt to delete a record, the ID (3 in this case) would be deleted also. You cannot manually manipulate the auto-number field, so any deletions would be shown by the missing ID number.

Figure 24 – Deleting a record deletes the ID for that record.
Parsing the Log File by Using Criteria
To parse the information you want to see from the log file, you add selection criteria to the Log Text field. In this case, you need to add two criteria: One for tells sent by the user and one for tells received by the user. In MS Access, the Like keyword tells the database engine to find anything “like” the phrase you entered. The asterisks tell the engine to grab anything before and after the phrase.

Figure 25 – Criteria for Parsing Private Tells

Figure 26 – Parsed Query for Incoming and Outgoing Private Tells
To find the user log in and log out times, you add criteria that tell you when the character logs in and out. For Everquest II, the start of a session begins with the notice that logging is on and ends with the keyword “camp”.

Figure 27 – Criteria for Session Start and Stop

Figure 28 – Query View Showing Session Starts and Stops
Other Information Available
Everquest also maintains a file called eq2cmdhistory.txt. This file records the last thirty commands typed by the player. Since the /tell or a private chat is a command, this file records that activity. However, you can only get one side of a conversation this way.

Figure 29 – Location of the eq2cmdhistory.txt File
The figure below shows the content of the eq2cmdhistory.txt file. Note the /tell commands and the text following them. While the file does not record any date or time information internally, its modified date is updated for each gaming session.

Figure 30 – Content of the eq2cmdhistory.txt File.
Everquest II also has an in-game browser capability. You can find the in-game browser history in the Everquest II, ozilla folder.

Figure 31 – In Game Browser History
Getting Even More Information
Sony Online Entertainment keeps extensive server-side logs for each character and account. You should be able to get these via their custodian of records. Their corporate address is Sony Online Entertainment LLC, 8928 Terman Ct., San Diego, CA 92121.
References:
- MMORPG.com – Your Headquarters for Online Multiplayer Games, RPG Online Games, Online Role Playing Free Games! Web. 15 May 2010. www.mmorpg.com.
- “Houston Mom Accused of Luring Teen for Sex through Online Game? Moms At Work? Orlando Sentinel.” Orlando Sentinel Blogs – OrlandoSentinel.com. Web. 15 May 2010. blogs.orlandosentinel.com/features_momsatwork/2010/01/houston-mom-accused-of-luring-teen-for-sex-through-online-game.html.
- “Couple: Internet Gaming Addiction Led to Baby’s Death – CNN.com.” CNN.com – Breaking News, U.S., World, Weather, Entertainment & Video News. Web. 15 May 2010. www.cnn.com/2010/WORLD/asiapcf/04/01/korea.parents.starved.baby/index.html.
- “Portland Woman Accused of ‘World of Warcraft’ Chat with Boy That Turned Sexual | OregonLive.com.” Oregon Local News, Breaking News, Sports & Weather – OregonLive.com. Web. 15 May 2010. www.oregonlive.com/portland/index.ssf/2010/03/portland_woman_accused_of_worl.html.
- “Officer Accused Of Bragging Online About Using Taser Gun – Portland News Story – KPTV Portland.” Portland News, Oregon News and Local Weather from KPTV FOX 12 News. Web. 15 May 2010. www.kptv.com/news/14065232/detail.html.
Larry E. Daniel is a computer and cell phone forensics consultant working with clients throughout the U.S. and handling all types of civil and criminal cases. He has testified as a qualified computer forensics expert witness in several cases, in multiple states. Larry is a member of the American College of Forensic Examiners and is Chairman of the Ethics Committee for the American Society of Digital Forensics and eDiscovery. Larry is the CEO of Guardian Digital Forensics, a Digital Forensics Certified Practitioner, author of the popular digital forensics blog Ex Forensis, and host of the Talk Forensics Internet radio show.
NetClean Analyze focuses on three key issues. It minimizes the time investigators have to spend looking at old or duplicate images and videos, it eases collaboration between police units, and it enables more efficient reporting with an engine that allows easy creation of either customized or standardized reports.
Recent Comments
:) :) Avete avvertito la PSI per le indagini sulla scena cr...
Be', noi una volta abbiamo QUASI ricevuto una denuncia per u...
Giovedì 15 aprile 2010 Ciao, nel mio blog non c’è più la ba...
Ciao, nel mio blog non c'è più la barra laterale e vorrei in...
Grazie Xian :) Sei sempre il mio lettore più accanito :) :)...