How can i open SDM.pkg and .sdx files on Ubuntu?
I would like to download Windows 8 disk images, but the files I have for the download are SDM.pkg
and 100189659562.sdx
. How can I open these files on my computer running Ubuntu?
Solution 1:
I downloaded a cost-free VirtualBox Windows XP VM from Microsoft's VM resource for web developers (modern.ie), and used the SDM inside of the VM to download the images into a VirtualBox "Shared Folder" on the host system. (Wine didn't work for me (tried Bernd's way, Ubuntu 13.10).)
Solution 2:
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.
Solution
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:
http://[SDXdomain]/WebStore/Account/SDMAuthorize.ashx?oiopu=[oiopu]&f=[fileID]&oiop=[oiop]&dl=[dlSelect]
Now you should see XML file that looks similar to this:
<information> <oiopua>01234abcd-0123-4567-890a-0123456789ab</oiopua> <edv>0123456789^^0123456789QwErTyUiOpAsDfGhJkLzXc0123456789QwErTyUiOpAsDfGhJkLzXc12345678</edv> <linkAvailable>1</linkAvailable> <errorTextKey/> <invokeExternalDownload>0</invokeExternalDownload> <fileUrl><![CDATA[http://software.dreamspark.com/dreamspark/ENGLISH/SDCfileName.sdc]]></fileUrl> </information>
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.
Update:
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.
Unpacking SDC
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
cd xSDM
(or your release directory) and compile the program by standard
./configure make make install
where installation is optional. Now to unpack your file you just need to type
src/xsdm [path-to-your-sdc-file]
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.
SDC unpacker can be downloaded from github.
Solution 3:
The ".pkg" is an extension for the installer files that are usually used to install a software program, and they are mostly used for installing applications in Mac OS X. These files may be installed individually or they can as well be referenced using an installer script which is part of the software.1
The .pkg file you've mentioned is the installer for the Secure Download Manager ("SDM"). That program does not operate under Ubuntu, and requires the use of a Mac operating system to make it work. It can only be opened on Mac as it does not correctly extract or install under Ubuntu. 2
So you will first need the MSI installer to get the needed packages. To get this on a Ubuntu machine, you likely will need to change your user agent to that of a Windows machine so it gives you the link to download the MSI package. This can be done in many browsers via a extension - e.g. for Firefox. You can then set it to the Windows equivalent of your browser, download the MSI and SDX files, and disable the extension if you wish
Now you can use WINE to allow you to run this Window-only file. WINE is a software package that allows some windows applications to run on Linux. To install, just press Ctrl+Alt+T on your keyboard to open Terminal. When it opens, run the command(s) below:
sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get install wine
sudo apt-get install winetricks
Make sure that you use IE6 as the browser in WINE — the SDM just works with this and not with IE9. So, that' why you need to get the winetricks package
Then, setup wine.
export WINEARCH=win32
export WINEPREFIX=~/.wine32
winetricks ie6
Now, install the SDM.
cd directory-where-you-saved-SDM.msi
wine msiexec /i SDM.msi
Click through the installer. Change the install directory to C:\SDM\ or something similar
Now you need to get the .sdx file. Save it. The file is named something like 100001234.sdx.
Now, to put it all together:
wine ~/.wine32/drive_c/SDM/e-academy\ Inc/SecureDownloadManager/SecureDownloadManager.exe 100001234.sdx
Remember to change the name of the sdx file and the path to the executable, if necessary.
1Source:Techyv
2 Source: Thomas W's answer
Source:Threads of Science
Solution 4:
I just found Linux-SDM-Downloader from GitHub
It downloads the SDC files fine.
However, it cannot extract the key files anymore.
I think it's worth a try, though :-)
This program is to be followed and who knows, some day the key extraction will work.