I had the same problem and finally after a few weeks of reverse engineering wrote a program that is able to unpack an SDC file. You can find step-by-step instruction on my page right here:
About a month or so ago I had an urgent need to download a copy of
Microsoft Windows from Dreamspark. Unfortunately I haven’t Windows
installed then so had to do this using Linux. After successful
transaction I was given a link to SDX file and program called SDM. It
looked that it would be easy. But it wasn’t. Program that I was
encouraged to download was archive with .pkg extension. As I
discovered few minutes later it was OS X application package. So the
next step was to try to download Windows version and try to execute it
with help of Wine. It failed. Then I tried to find some tips on the
Net. I found a few other people having the same problem. Some of them
could download using Wine and some not. For me there was only one
solution: do it myself. As you probably guessed that way was a
(almost) full success.
If you already have SDC file please do not skip since you probably
still don’t have a key needed to unpack the file. The first step is to
open SDX file in your favorite text editor. You will see a link. Open
it in a web browser. Now you need to get to page source. The way it
can be done depends on your web browser. Now we need to find few
strange values in the code. The easiest way to achieve this is to
search for keyword ‘edv*’ where * is the number of file you want to
download counting from 1 (they are on ‘Items’ list on page you
opened). Now you need to copy somewhere values of the following
variables: ‘oiopu*’, ‘oiop*’, ‘fileID*’ (-see above). The last one we
need is ‘dlSelect’ but for that one you need to search cause it is in
a different place. Now you can build URL that will let you to file
containing two interesting values: file URL and decryption string.
This URL’s format is:
Now you should see XML file that looks similar to this:
The last step here will be downloading file from fileUrl and saving
edv value in file. The important thing is that the file with a key
should be named exactly as SDC file with addition of ‘.key’ suffix.
I’ve just discovered that things are getting a bit different when the
file size exceeds 2.0 GB. In that case Dreamspark is splitting file in
two or more files. That situation could be easily recognized, because
sdc file name’s suffix is: ‘.01.sdc’. In that case you need to try to
download file which URL differs by only that one digit, ie. ‘.01.sdc’,
‘.02.sdc’, ‘.03.sdc’. When you encounter last file it should have
smaller size than the rest and incrementing that number by one should
give you BlobNotFound error.
After downloading all the files they just need to be joined into one.
It can be easily achieved with dd, ie.
dd if=pl_windows_7_professional_with_sp1_x64_dvd_u_676944.02.sdc >> pl_windows_7_professional_with_sp1_x64_dvd_u_676944.01.sdc
and then optionally
dd if=pl_windows_7_professional_with_sp1_x64_dvd_u_676944.03.sdc >> pl_windows_7_professional_with_sp1_x64_dvd_u_676944.01.sdc
After that you will get sdc file prepared to unpack.
Now since you have SDC file you can start unpacking it. The previous
part was, at least for me, very easy. The problem started when I tried
to discover how the file is stored in that container. But don’t worry,
I’ve written simple program to do it for you. As of now (1st June) it
is still in really early alpha stage and have lot of constraints. It
is able to unpack containers that contains only one file packed,
doesn’t create any directories, cannot verify file’s checksum and
probably few other problems I don’t remember or don’t know about.
If you were searching a bit in the Internet, you probably found out
that someone cracked that container in the past. Unfortunately
Microsoft changed format since then. It is also possible that in
response to this article it will be changed again. To make it a bit
harder for them to block my software I’m publishing source code on
github and after the process of reverse engineering is finished will
write second article describing how things works under the hood and
describe sdc file format.
But let’s get back to unpacking. Now you need to download xSDM from
github. The newest version can be downloaded by typing
git clone https://github.com/v3l0c1r4pt0r/xSDM.git
in your terminal (of course you need to have git installed).
Nevertheless I advice you to download newest tagged release. You can
do this by clicking on releases on project page and then choosing the
one on the top (or first beta/stable if any) and clicking on “tar.gz”.
tar.gz can be unpacked by typing
tar -zxvf xSDM-[tag-name].tar.gz
into console. Then get into xSDM directory by typing
(or your release directory) and compile the program by standard
where installation is optional. Now to unpack your file you just need
And that’s it, you should now be able to open file you downloaded. As
mentioned above the program is in very early alpha so I cannot
guarantee that it will work in any case. If you will encounter any
problems feel free to open issue on project page at github.