解决方案

解决方案

我想下载 Windows 8 磁盘映像,但我可以下载的文件是SDM.pkg100189659562.sdx。如何在运行 Ubuntu 的计算机上打开这些文件?

答案1

我从以下网站下载了免费的 VirtualBox Windows XP VM:微软为 Web 开发人员提供的 VM 资源(modern.ie),并使用虚拟机内的 SDM 将图像下载到主机系统上的 VirtualBox“共享文件夹”中。(Wine 对我来说不起作用(尝试了 Bernd 的方法,Ubuntu 13.10)。)

答案2

我也遇到了同样的问题,经过几周的逆向工程,我终于写了一个可以解压 SDC 文件的程序。你可以在我的页面上找到分步说明这里

大约一个月前,我急需从 Dreamspark 下载一份 Microsoft Windows。不幸的是,我当时还没有安装 Windows,所以不得不使用 Linux 来下载。成功交易后,我获得了一个 SDX 文件和名为 SDM 的程序的链接。这看起来很容易。但事实并非如此。我被鼓励下载的程序是带有 .pkg 扩展名的存档。几分钟后我发现它是 OS X 应用程序包。因此,下一步是尝试下载 Windows 版本并尝试在 Wine 的帮助下执行它。失败了。然后我尝试在网上寻找一些技巧。我发现其他几个人也遇到了同样的问题。他们中的一些人可以使用 Wine 下载,而有些人则不能。对我来说,只有一个解决方案:自己动手。您可能已经猜到了,这种方法(几乎)完全成功了。

解决方案

如果您已经有 SDC 文件,请不要跳过,因为您可能仍然没有解压文件所需的密钥。第一步是在您最喜欢的文本编辑器中打开 SDX 文件。您将看到一个链接。在网络浏览器中打开它。现在您需要获取页面源代码。完成此操作的方式取决于您的网络浏览器。现在我们需要在代码中找到一些奇怪的值。实现此目的的最简单方法是搜索关键字“edv*”,其中 * 是您要下载的文件数,从 1 开始计数(它们位于您打开的页面上的“项目”列表中)。现在您需要将以下变量的值复制到某处:“oiopu*”、“oiop*”、“fileID*”(-见上文)。我们需要的最后一个是“dlSelect' 但对于那个,您需要搜索,因为它在不同的地方。现在您可以构建 URL,它将允许您访问包含两个有趣值的文件:文件 URL 和解密字符串。此 URL 的格式为:

http://[SDXdomain]/WebStore/Account/SDMAuthorize.ashx?oiopu=[oiopu]&f=[fileID]&oiop=[oiop]&dl=[dlSelect]

现在您应该看到与此类似的 XML 文件:

<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>

这里的最后一步是从 fileUrl 下载文件并将 edv 值保存在文件中。重要的是,带有密钥的文件应与 SDC 文件完全一致,并添加“.key”后缀。

更新:

我刚刚发现,当文件大小超过 2.0 GB 时,情况会有所不同。在这种情况下,Dreamspark 会将文件拆分为两个或更多文件。这种情况很容易识别,因为 sdc 文件名的后缀是:“.01.sdc”。在这种情况下,您需要尝试下载 URL 仅相差一位数字的文件,即“.01.sdc”、“.02.sdc”、“.03.sdc”。当您遇到最后一个文件时,它应该比其他文件小,并且将该数字增加一应该会给您 BlobNotFound 错误。

下载完所有文件后,只需将它们合并为一个即可。使用 dd 即可轻松实现。

 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

然后可选

 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

此后,您将获得准备解压的 sdc 文件。

解开SDC

现在,既然您有了 SDC 文件,您就可以开始解压它了。至少对我来说,前面的部分非常简单。当我试图发现文件是如何存储在该容器中的时,问题就开始了。但别担心,我已经编写了一个简单的程序来为您完成这件事。截至目前(6 月 1 日),它仍处于非常早期的 alpha 阶段,并且有很多限制。它能够解压仅包含一个文件的容器,不会创建任何目录,无法验证文件的校验和,可能还有一些我不记得或不知道的其他问题。

如果你在互联网上搜索一下,你可能会发现过去有人破解过这个容器。不幸的是,微软从那时起就改变了格式。也有可能为了响应这篇文章而再次改变格式。为了让他们更难阻止我的软件,我在 github 上发布了源代码,在逆向工程完成后,我将撰写第二篇文章,描述底层工作原理并描述 sdc 文件格式。

现在让我们回到解压阶段。现在你需要下载来自 github 的 xSDM。最新版本可以通过输入下载

git clone https://github.com/v3l0c1r4pt0r/xSDM.git

在您的终端中(当然您需要安装 git)。不过,我建议您下载最新的标记版本。您可以通过单击项目页面上的版本,然后选择顶部的版本(或第一个 beta/stable 版本,如果有的话)并单击“tar.gz”来执行此操作。tar.gz 可以通过键入

tar -zxvf xSDM-[tag-name].tar.gz

进入控制台。然后通过输入以下内容进入 xSDM 目录

cd xSDM

(或你的发布目录)并按标准编译程序

./configure
make
make install

安装是可选的。现在要解压文件,你只需要输入

 src/xsdm [path-to-your-sdc-file]

就这样,您现在应该可以打开下载的文件了。如上所述,该程序处于早期 alpha 阶段,因此我无法保证它在任何情况下都能正常工作。如果您遇到任何问题,请随时在 github 上的项目页面上打开问题。

SDC 解包器可以从以下网址下载github

答案3

“.pkg” 是安装程序文件的扩展名,通常用于安装软件程序,它们主要用于在 Mac OS X 中安装应用程序。这些文件可以单独安装,也可以使用作为软件一部分的安装程序脚本进行引用。1

您提到的 .pkg 文件是安全下载管理器 (SDM) 的安装程序。该程序无法在 Ubuntu 下运行,需要使用 Mac 操作系统才能运行。它只能在 Mac 上打开,因为它无法在 Ubuntu 下正确提取或安装。2

因此,您首先需要 MSI 安装程序来获取所需的软件包。要在 Ubuntu 机器上获取此程序,您可能需要将用户代理更改为 Windows 机器的用户代理,以便它为您提供下载 MSI 软件包的链接。这可以在许多浏览器中通过扩展程序完成 - 例如对于 Firefox。然后,您可以将其设置为浏览器的 Windows 版本,下载 MSI 和 SDX 文件,并根据需要禁用扩展程序

现在您可以使用 WINE 来运行此仅适用于 Windows 的文件。WINE 是一个软件包,它允许一些 Windows 应用程序在 Linux 上运行。要安装,只需按键盘上的Ctrl+ Alt+T打开终端。打开后,运行以下命令:

sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get install wine
sudo apt-get install winetricks

确保在 WINE 中使用 IE6 作为浏览器 — SDM 只适用于此浏览器,而不适用于 IE9。因此,您需要获取 winetricks 包

然后,设置 wine。

export WINEARCH=win32
export WINEPREFIX=~/.wine32
winetricks ie6

现在,安装 SDM。

cd directory-where-you-saved-SDM.msi
wine msiexec /i SDM.msi    

单击安装程序。将安装目录更改为 C:\SDM\ 或类似目录

现在您需要获取 .sdx 文件。保存它。该文件的名称类似于 100001234.sdx。

现在,把所有内容放在一起:

wine ~/.wine32/drive_c/SDM/e-academy\ Inc/SecureDownloadManager/SecureDownloadManager.exe 100001234.sdx

如有必要,请记得更改 sdx 文件的名称和可执行文件的路径。

1来源:特奇夫

2来源:Thomas W 的回答

来源:科学线索

答案4

我目前正在使用的最简单的解决方案是使用较新的 SDM.msi 和 SDX 文件:

使用最新的 winetricks 并安装 .net 4.5.2

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
bash winetricks dotnet452 corefonts

安装下载管理器

wine msiexec /i SDM.msi

享受

相关内容