Jump to content

(FIXED) How to watch Amazon Prime Video on Windows XP


sdfox7

Recommended Posts

3 hours ago, xp128bit said:

I ran it on Windows XP (CENSORED) edition. It is a modified version of XP so I guess it messed up Silverlight in some way. It worked perfectly fine in a clean XP build that was manually updated and on Windows 10 on my main PC back then.

 

Hi, better edit out that edition name from the post, it's considered to be non-legitimate here.

Link to comment
Share on other sites


Supermium Version 121.0.6167.81 is compatible with XP and 2003 and it includes the Widevine CDM.  To activate it you have to go to chrome://components and click "Check for update" which will download version 4.10.2710.0.  widevinecdm.dll requires imports from kernel32.dll missing in Windows XP so I have changed the entry for kernel32.dll in the widevinecdm.dll import table to the OneCore API xpspkernel32.dll after having renamed it to kernelxp.dll and placed it in the %UserProfile%\Local Settings\Temp\Supermium\User Data\WidevineCdm\4.10.2710.0\_platform_specific\win_x86 folder.  I am almost there because when I go to this DRM stream test site I receive the notification "EME is supported by your current browser." with a tick next Widevine.  However the player will not load and it displays the error message "General source error". 

 

Link to comment
Share on other sites

... I don't want to "burst your bubble" :P , but even if you manage to sort out all dependencies of the DLL under NT 5.1, the CDM will be practically non-functional on most popular DRM'ed services (e.g. Netflix, Amazon Prime, Hulu, Spotify, Apple Music, Tidal, etc.) :( ; since years now, Google :realmad: (owners of Widevine CDM) have implemented the Verified Media Path (aka VMP) security feature: 

https://www.expressplay.com/products/google-widevine-drm/

Quote

The Verified Media Path (VMP)

Another important aspect to consider is the Google Widevine DRM Verified Media Path (VMP). The Widevine DRM Desktop Browser Content Decryption Module (CDM) includes support for VMP, which provides a method to verify the validity of the browser framework. All Widevine DRM browser-based integrations (platforms and applications) must support VMP, but VMP support is not available for Linux platforms.

In layman's terms, this means that the application within which the CDM is run (Supermium in your case) must've been previously whitelisted/sanctioned by Google :realmad: ; this process involves acquiring special certificates from Google, for DRM purposes only, and signing various browser components (e.g. "chrome.dll") with said certificates; when the CDM is requesting decryption keys (aka "licence") from a Widevine lic server, it first sends (obfuscated) a payload with extreme detail of the environment it's currently running on; this detail includes exact browser specifics, as well as the OS/device the browser is running on; the WV lic server can reject the licence request if the CDM version/browser/OS/device is not to Google's :realmad: liking; browser applications are being accepted if they have been signed with that special VMP certificate, and this fact limits the selection to ones offered by the major vendors, ONLY (Google Chrome/Mozilla Firefox and a few Chromium variants) ... Supermium hasn't been granted VMP compliance (being a one-man, open-source, project) and even if its author (win32) applied for such, it could well take several years for this to materialise, if at all :( ...

In addition to VMP, you said you manually edited the DLL

6 hours ago, Zorba the Geek said:

so I have changed the entry for kernel32.dll in the widevinecdm.dll import table to the OneCore API xpspkernel32.dll

This fact alone changes the CDM's hash value/invalidates its file signature (which is SHA-2, BTW, incompatible with XP) and when the CDM identifies itself to the WV lic servers (yes, it does send its hash inside that obfuscated payload I mentioned earlier), it "screams": "I've been tampered with, just ignore me", thus no decryption keys are delivered to it :( ...

FYI, some Supermium issues relating to its DRM (Widevine) support: 

https://github.com/win32ss/supermium/issues/127

https://github.com/win32ss/supermium/issues/169

https://github.com/win32ss/supermium/issues/242

FWIW, Widevine related documentation used to be publicly accessible until a few years ago, when evil Google :realmad: decided to put it behind corporate gmail accounts, for media-enterpises members only, who also have to sign strict NDA:angry: ...

At this point in time, it seems DRM-savvy private individuals are to be found only inside private discord servers, no more open to "outsiders"; I used to be part of such a server back in the day, but got kicked-out because I wasn't "active enough" (at least according to the server's owner ;) ) ...

Edited by VistaLover
Link to comment
Share on other sites

On 29 February 2024 at 11:17 PM, VistaLover said:

In addition to VMP, you said you manually edited the DLL

This fact alone changes the CDM's hash value/invalidates its file signature (which is SHA-2, BTW, incompatible with XP) and when the CDM identifies itself to the WV lic servers (yes, it does send its hash inside that obfuscated payload I mentioned earlier), it "screams": "I've been tampered with, just ignore me", thus no decryption keys are delivered to it :( ...

 

My previous post must have seemed naive to an expert like VistaLover, but I had anticipated that the CDM client would calculate a checksum of it's main dll to detect tampering, and if the checksum did not match the correct one in the client's code a signal would be sent to the widevine server to halt the download of the encrypted keys. 

Castlabs are now offering a free service for Widevine/VMP signing of application packages derived from official releases of Electron.  They also offer a commercial VMP certification of custom Chromium/Electron adaptations which sounds like it is not free.  Perhaps VistaLover could study this page Electron for Content Security VMP signing service and make some recommendations to the Supermium developer.

Edited by Zorba the Geek
Link to comment
Share on other sites

10 hours ago, Zorba the Geek said:

and make some recommendations to the Supermium developer.

... ;) Well, the relevant info has been already posted inside Supermium's official GitHub issue tracker

https://github.com/win32ss/supermium/issues/127#issuecomment-1868304931

so its author should be aware already :P ; given that the linked comment hasn't received yet any reaction or subsequent reply ;) , one can assume that the "CastLabs route" isn't being considered, at least not at this point :whistle: ... 

Link to comment
Share on other sites

The Throrium browser and Throrium browserW7 author did make a chromium 49 fork

– Codecs, Widevine, and Google Sync (Widevine wont work though)
– Compiler optimizations (see SSE3 note down below)
– Fixed building with Visual Studio 2015 and the 10586 WinSDK
– Re-enabled hardware acceleration (and things like WebGL!), via SwiftShader
– Backported a few M54 patches
– Added some patches from Thorium

https://github.com/Alex313031/chromium-xp/releases

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...