如何在 Ubuntu 上打开 SDM.pkg 和 .sdx 文件?

iai*_*ker 17 files file-type

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

小智 9

我从Microsoft 面向 Web 开发人员的 VM 资源 (modern.ie)下载了一个免费的 VirtualBox Windows XP VM ,并使用 VM 内部的 SDM 将图像下载到主机系统上的 VirtualBox“共享文件夹”中。(Wine 对我不起作用(尝试了 Bernd 的方式,Ubuntu 13.10)。)


小智 7

我遇到了同样的问题,最后经过几周的逆向工程编写了一个能够解压 SDC 文件的程序。您可以直接找到我的网页上一步一步的指示在这里

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

解决方案

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

http://[SDXdomain]/WebStore/Account/SDMAuthorize.ashx?oiopu=[oiopu]&f=[fileID]&oiop=[oiop]&dl=[dlSelect]
Run Code Online (Sandbox Code Playgroud)

现在您应该会看到与此类似的 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>
Run Code Online (Sandbox Code Playgroud)

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

更新:

我刚刚发现当文件大小超过 2.0 GB 时,情况会有所不同。在这种情况下 Dreamspark 将文件拆分为两个或多个文件。这种情况很容易识别,因为 sdc 文件名的后缀是:'.01.sdc'。在这种情况下,您需要尝试下载 URL 仅相差一位数的文件,即。“.01.sdc”、“.02.sdc”、“.03.sdc”。当您遇到最后一个文件时,它的大小应该比其余文件小,并且将该数字增加 1 应该会给您 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
Run Code Online (Sandbox Code Playgroud)

然后可选

 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
Run Code Online (Sandbox Code Playgroud)

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

开箱SDC

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

如果您在互联网上搜索一下,您可能会发现过去有人破解了该容器。不幸的是,微软从那时起改变了格式。也有可能针对这篇文章再次修改。为了让他们更难阻止我的软件,我在 github 上发布源代码,在逆向工程完成后将写第二篇文章,描述事情在幕后是如何工作的,并描述 sdc 文件格式。

但是让我们回到开箱。现在您需要从 github下载xSDM。可以通过键入下载最新版本

git clone https://github.com/v3l0c1r4pt0r/xSDM.git
Run Code Online (Sandbox Code Playgroud)

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

tar -zxvf xSDM-[tag-name].tar.gz
Run Code Online (Sandbox Code Playgroud)

进入控制台。然后通过键入进入 xSDM 目录

cd xSDM
Run Code Online (Sandbox Code Playgroud)

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

./configure
make
make install
Run Code Online (Sandbox Code Playgroud)

其中安装是可选的。现在要解压缩文件,您只需要键入

 src/xsdm [path-to-your-sdc-file]
Run Code Online (Sandbox Code Playgroud)

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

SDC 解包器可以从github下载。


Mit*_*tch 4

\n

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

\n\n

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

\n
\n\n

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

\n\n

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

\n\n
sudo add-apt-repository ppa:ubuntu-wine/ppa\nsudo apt-get install wine\nsudo apt-get install winetricks\n
Run Code Online (Sandbox Code Playgroud)\n\n

确保您使用 IE6 作为 WINE \xe2\x80\x94 中的浏览器,SDM 仅适用于此,而不适用于 IE9。所以,这就是为什么你需要获取 winetricks 包

\n\n

然后,设置 wine。

\n\n
export WINEARCH=win32\nexport WINEPREFIX=~/.wine32\nwinetricks ie6\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,安装 SDM。

\n\n
cd directory-where-you-saved-SDM.msi\nwine msiexec /i SDM.msi    \n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n\n

现在,把它们放在一起:

\n\n
wine ~/.wine32/drive_c/SDM/e-academy\\ Inc/SecureDownloadManager/SecureDownloadManager.exe 100001234.sdx\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

1来源: Techyv

\n\n

2资料来源: Thomas W 的回答

\n\n

资料来源:科学线索

\n

  • 尝试从此链接下载SDM http://e5.onthehub.com/Static/Installers/SDM_EN.msi (3认同)