Step-by-Step DRM Test Instructions

A rough overview of the experiment is described here. This page lists more explicit step-by-step instructions to create/re-create such an experiment. For questions about the network setup, please see the experiment overview.

Step 1: Setup

This experiment requires four computers:

If, for whatever reason, the XP machines come with WMP9 by default simply make a note of that fact and skip over all of the WMP8 tests for those OS'es.

Linux-side, do not capture any network traffic during the install procedure; it is unnecessary and will most likely just clutter the logs. Windows-side, leave all application default alone after the install; we will change them later, but at first we want to examine what Microsoft decides for the user out-of-the-box.

Step 2: Getting the Media

For this test, we will need a decent number of audio CDs. We have three "lab rat" Windows machines, two versions of WMP to test for each machine, two different application settings, and three CDs for each experiment (an experiment tests a particular OS/WMP combination). Thus we will need 3 x 2 x 2 x 3 = 36 CDs. Of these CDs, we will want one "enhanced" CD for each experiment: 12 "enhanced" CDs in all.

"Enhanced" CDs are recording industry lingo for CDs that have some sort of copy protection built into them, or require special programs (usually Windows-only) to play on a PC. Examples of these CDs sold in the US include the two Lord of the Rings soundtracks, the latest Foo Fighters CD, among others. Usually these CDs have a small logo on them listing them as being "enhanced" or otherwise non-standard. For each CD that we use, make a list of the

  1. Artist
  2. Album Title
  3. Year of manufacture
  4. A list of the logos on the back (Red-book CD compliant, Enhanced, even any corporate logos)
  5. Any warnings that the CD will or will not play on PCs

Step 3: Start Logging

Once you have fully installed Linux and Windows on the respective machines, power off the three Windows machines and start the logging facilities on the Linux node. This includes starting the DNS server with some degree of logging/verbosity and starting tcpdump. Make sure the Windows machines have "public" IP addresses (i.e., not 192.168.x.x or 10.x.x.x addresses) so they can communicate with anyone they want to, and anyone can "phone home" with requests for information. Remember, the goal is not to circumvent or impede the DRM systems, but merely observe what they plan to do.

Once DNS is running and tcpdump is logging, power up the three Windows machines. This is so we can see exactly what information they send off to MS (or anywhere else) when they start up. Once all three Windows machines are up and running, we can start the bulk of the experiments.

Step 4: Do and Observe

Step 4.1: Using Defaults

At this point all three Windows machines are up and running, WMP8 is (or should) be installed on each machine, and all the WMP[89] application defaults are intact (cddb lookups, store preferences, etc). At this point we will start the process of playing, ripping, and encoding. Each experiment -- regardless of the OS, WMP version, or WMP settings -- will consist of the following steps:

  1. Insert the CD into the tray. If the CD attempts to perform an autorun or install software, or requests that you install software, the experiment for this particular CD is over. Make a note of the fact that you cannot play the CD without special software and move to the next CD.
  2. Presumably WMP has noticed the CD is in the drive and will start. If WMP does not start automatically, start WMP up.
  3. If the CD does not automatically start playing when WMP starts up, hit "play" to start CD playback. If the CD does not start or has other problems playing, do not fight with it to get it to work. Make a note of the fact that you cannot play the CD on that particular OS/WMP version and move to the next CD.
  4. Play the first two tracks of the CD, and listen for any obvious sound defects that do not occur during playback on a stand-alone CD player. Obviously
  5. Close WMP, and restart it to clean out any soft-state.
  6. Once you have finished playing the first two tracks of the CD, attempt to rip and encode those two tracks to Windows Media Audio (WMA) format, which should be natively supported by WMP. If you cannot rip them for whatever reason, take note of that fact and move onto the next CD.
  7. Once you have finished ripping the two tracks, close and restart WMP to clean out any soft-state.
  8. Attempt to play back the two tracks using WMP. If there are any sound defect, take note of this and move to the next CD.
Whenever you move to the next CD on a particular CD, send an ICMP ping from that Windows machine to the Linux machine. This will let us correlate the network data with particular CD events.

Step 4.2: Run Silent, Run Deep

In this part of the experiment, we will attempt to make all network communication between the Windows machines and the outside world disappear. After all, you're just playing a CD, and the computer shouldn't need to talk to anyone else. Before you start changing options, though, make sure you write down any and all changes you make. We will need to go through and undo these options later before upgrading to WMP9. Also, for repeatability it is important to know what was changed. The options you should turn off include, but are not limited to

As an interesting side note, I can't find the option to disable CD track lookups. If anyone can find it or knows how to do it, please contact me at
justin at cs dot duke dot edu.

Once you have made and recorded these changes, repeat steps 1 - 7 listed in section 4.1 with a new set of CDs for this experiment. We don't want cached results/data from previous runs interfering with the new tests. Remember to send the pings between tests so we can correllate the data later.

Step 4.3: "We can rebuild him, ..."

All the tests up until this point used WMP8. At this point we will upgrade to WMP9 and re-run the tests. To upgrade,

  1. Restore all application settings changed in step 4.2 to the defaults used in step 4.1.
  2. Go to the Windows Update site and pull in the updates for WMP9.
    Keep logging during this, even though there will be a lot of network traffic. Who knows if MS will sneak content library data into a Windows Update session?
  3. Once you have fully updated each OS to use WMP9, reboot the machine (of course) and re-run the tests in step 4.1 using WMP9. Again, make sure to use a different set of CDs for this part.

Step 4.4: Run Silent, Run Deep (redeux)

How quiet can we make WMP9? Go through the WMP9 options and disable as much as possible again, similar to the changes made in step 4.2. Again, remember to keep a record of all the options changed, what they were, and what they are now. Once that is done, re-run the tests with a new set of CDs and send pings between each experiment.

Step 5: Wrap-Up and Analysis

For now this is a bit nebulous. We'll need to look through the records to glean data about what information went out over the 'net, when it went out, and if any other computers responded. For starters, a bit of useful information might be a list of machines that WMPs contacted, broken down into OS/WMP/application settings categories. For example:
WindowsWMP VersionDefault/QuietAddresses
20008D1.2.3.4
1.2.3.5
cd.microsoft.com
XP8Qcd.microsoft.com
drm.microsoft.com
XP SP19Dlogging.microsoft.com
cd.universal.com
etc

Happy DRM-logging!

-jdm

Experiment Overview

Copyright Main