It would be interesting if a patch that worked for ehshell.exe on Windows XP, would work on 7 or 8.1's version. As Windows Media Center for Vista was completely re-written and again (not fully) on Windows 7. No, I missed your post for some reason but, I just checked out, good idea!!!!, on Windows 7 now, I'll reboot to 10 later tonight and check it out. I checked it out on my 7 machine (I installed it to this machine for the heck of it, never noticed that) looking forward to checking it out on 10.... I'm wondering if this is the KEY we are looking for here. As I understand it Windows 7 still had the kernel checks(thought this started in XP), this version I have DID run (maybe changing version would fix it) and it's version 6.1.XXX. The ONLY way they could of gotten it to work was to PATCH the file. I assure you when Windows 8 first came out, this little program did install WMC and it did work (never tested with cablecards but, a standard QAM tuner did work). I will provide it to devs trying to help here but, I don't want this out everywhere. So public download not going to happen. Let me do some testing tonight and I will post back. Edit: Tried that, I changed that line to newVersion="10.0.10240" and went through all the config files in folder where it's installed. No go, still does the same thing, also confirmed that the correct .NET is installed, so that cant be a factor. As it didn't work in Windows 8 last time I used it I will try this with a plain no WMC install of Windows 8 and change the version to see if that helps (if I runs, then I know it's something in 10 that is causing this.
It appears that Media Center is controlled by Software Plateform Protection and blocked by it if MediaCenter-EnabledSku is not set. Or maybe it is Media Center which checks against SPP if it is autorized to run. Changing ProductPolicy registry key requires to disable sppsvc, and disabling sppsvc seems to blocks Media Center (ehshell.exe does nothing at all). According to forums.mydigitallife.net/threads/39411-Windows-Product-Policy-Editor sppsvc reads licenses located in System32\spp. It tried to copy ProfessionalWMC licences/tokens to Professional but nothing worked. Links are dead
No I'm not saying to use XP MediaCenter on Windows 7 or 10 but instead using the method used for XP to patch the Windows 10 Pre-RTM Media Center files. Opening eshell.exe with ildasm.exe tool gives this error "has no valid CLR header and cannot be disassembled". But eshell.dll opens with ildasm.exe tool and can be dumped to eshell.il format which can be opened with notepad. In the same site there's a topic about patching eshell.exe for only running MCE on Non-MCE OS, it says like this Code: 11) Optional/Not Necessary In Most Cases -> (Not necessary for converted and original Xp MCE 2005 OS) Porting MCE executable (ehshell.exe) to work on any non Xp MCE 2005 OS (Xp Pro, Home, Tablet PC, 2003, Home Server, even maybe Vista Basic) as well as my Windows Media Center installer : OK, Here are the steps (Just for your information/knowledge): - After disassembling ehshell.exe by ildasm, open ehshell.il by using above way (text editor) then find string "StartupError.NotFreestylePID" (without quotes), using Find and Replace function, then you should see the routines like this: IL_0019: call int32 [EhCM]eHome.Native.Win32::GetSystemMetrics(int32) IL_001e: brtrue.s IL_002d IL_0020: ldc.i4.1 IL_0021: stloc.0 IL_0022: ldstr "#StartupError.NotFreestylePID" IL_0027: starg.s id IL_0029: br.s - look at "GetSystemMetrics" function call string, In MSDN here, it's just the function to retrieves various system metrics and system configuration settings (Note: System metrics are the dimensions (widths and heights) of Windows display elements). But here it's actually an internal function to recognize the OS is MCE or not (e.g Xp Pro, Home, etc). So i just reversed the call (make it would recognize non Xp MCE as Xp MCE, but if you used it on original Xp MCE, of course the load string function (below that) would give error message (small window) like "Media Center only works in Windows Xp MCE" or something stupid like that, (So it's just optional, as you can also totally disable and skip this step on Xp MCE 2005) change IL_001e: brtrue.s IL_002d to IL_001e: brfalse.s IL_002d save and recompile it as usual as the above way (step 6 & 9). Done. I'm using the same method to find any values that is checking for the OS is MCE or not. I'm trying with eshell.dll for possible solution, will update later with the results.
I read somewhere that someone was able to run the WMC from vista on Server2008 doing a token exchange . But now W10 surely stores those info somewhwere else (at least in part) Indeed the old tools to backup/restore the activation aren't working in W10
I tried that and ehshell.exe shown the same error message. I also removed parts of code and nothing changed. By removing more parts of code ehshell.dll finally doesn't compile (so I wasn't dumb and I changed the good file). This code seems not to be used at all: Code: IL_0017: call int32 [Microsoft.MediaCenter.UI]Microsoft.MediaCenter.Interop.UIHelper::GetMCSkuPolicyFromLicense() IL_001c: brtrue.s IL_002b IL_001e: ldc.i4.1 IL_001f: stloc.0 IL_0020: ldstr "#StartupError.NotFreestylePID" IL_0025: starg.s id IL_0027: br.s IL_002b
I didn't mean exactly the same code but smiliar to that which may have changed post XP MCE versions. Here, it's not just modified eshell.il but even the dumped original eshell.il is not able to compile back to eshell.dll using the ilasm.exe tool, it's giving error for both patched and unpatched files. May be there might some more files to be patched but the proper piece code has to be patched which is yet to be found. Edit: Sorry that's the same code you had specified, I didn't see it properly.
Did you change ilasm command line in order to compile a dll not an exe? Code: D:\Username\Desktop>dir ehshell.* 20/08/2015 12:18 63 378 717 ehshell.il 20/08/2015 10:28 702 804 ehshell.res D:\Username\Desktop>C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm /resource:ehshell.res /dll ehshell.il [---8<--- snip ---8<---] Method Implementations (total): 446 Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved Writing PE file Operation completed successfully D:\Username\Desktop>dir ehshell.* 20/08/2015 12:18 6 316 544 ehshell.dll 20/08/2015 12:18 63 378 717 ehshell.il 20/08/2015 10:28 702 804 ehshell.res Is this correct?
Yes I used the same command dll and not an exe but's not working here don't know why? Installed VS2015 and used the ildasm.exe from C:\Program Files\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools Then using ildasm.exe dumped the eshell.il then edited the eshell.il using Notepad2 and saved it. Then tried ilasm /resource:ehshell.res /dll ehshell.il to compile back to dll but it's giving error. May be something else might be the error, will check again with the sdk files and try out.
I didn't read through all of this but it's interesting that you guys keep trying, so just some thoughts that come into mind... For recompilation of IL sources, I'd suggest to use the same version of the IL assembler of the original target runtime version. In case of MCE, I assume it was built on the v2.0 rather than the v4.0 CLR because .NET 4.x wasn't RTM before April 2010. About the ehshell.EXE - if that's not a managed assembly, it must be a native executable that is hosting the CLR inside to load MCE, so it's possible that the actual (or additional) license checking is happening in native code before the managed part is run. I mean, it would make sense to do it in native code instead of easy-to-disassemble IL. Is it proven it's done on the managed side? Keep it up, and good luck
Not needed, actually I just discovered that ehshell.dll is also located in Code: C:\Windows\Microsoft.NET\assembly\GAC_MSIL\ehshell\v4.0_10.0.0.0__31bf3856ad364e35 We have to rename it in order to use the first one located in ehome directory. Thank for your advice. ehshell.exe (native) loads ehshell.dll (managed) and license checking is done by GetMCSkuPolicyFromLicense() method. Bypassing this method prevent the message box to show but MCE doesn't run either.
The Win8.1/Win10 package is using NET 4 assemblies, so i guess it was recompiled on v4.0 CLR That one is just a copy of the one in ehome directory it's used by .NET to create the NativeImage so, when patching ehshell.dll it should replaced in both folders
Good idea! With patched version of ehshell.dll, ehshell.exe does nothing but a WER file is created: Code: Version=1 EventType=CLR20r3 EventTime=130847209414830736 ReportType=2 Consent=1 UploadTime=130847209417175080 ReportIdentifier=3aa649d9-48cb-11e5-a9f3-b4b676cd93e3 IntegratorReportIdentifier=c066d6f1-c852-405a-b61b-aea1316119f8 NsAppName=ehshell.exe Response.BucketId=526fc62f6468d5838a1753ffd5c876d1 Response.BucketTable=5 Response.LegacyBucketId=128898398312 Response.type=4 Sig[0].Name=Problem Signature 01 Sig[0].Value=ehshell.exe Sig[1].Name=Problem Signature 02 Sig[1].Value=10.0.10135.0 Sig[2].Name=Problem Signature 03 Sig[2].Value=556bc9d1 Sig[3].Name=Problem Signature 04 Sig[3].Value=mscorlib Sig[4].Name=Problem Signature 05 Sig[4].Value=4.6.76.2 Sig[5].Name=Problem Signature 06 Sig[5].Value=555037df Sig[6].Name=Problem Signature 07 Sig[6].Value=328 Sig[7].Name=Problem Signature 08 Sig[7].Value=10 Sig[8].Name=Problem Signature 09 Sig[8].Value=System.Security.Security DynamicSig[1].Name=OS Version DynamicSig[1].Value=10.0.10135.2.0.0.256.48 DynamicSig[2].Name=Locale ID DynamicSig[2].Value=1036 DynamicSig[22].Name=Additional Information 1 DynamicSig[22].Value=2b67 DynamicSig[23].Name=Additional Information 2 DynamicSig[23].Value=2b673111b13284750fd073fe2abf7f18 DynamicSig[24].Name=Additional Information 3 DynamicSig[24].Value=3ba6 DynamicSig[25].Name=Additional Information 4 DynamicSig[25].Value=3ba65c3f214abcfe4ca896c84bd1a1db UI[2]=C:\Windows\ehome\ehshell.exe UI[3]=Windows Media Center has stopped working UI[4]=Windows can check online for a solution to the problem. UI[5]=Check online for a solution and close the program UI[6]=Check online for a solution later and close the program UI[7]=Close the program LoadedModule[0]=C:\Windows\ehome\ehshell.exe LoadedModule[1]=C:\Windows\SYSTEM32\ntdll.dll LoadedModule[2]=C:\Windows\system32\KERNEL32.DLL LoadedModule[3]=C:\Windows\system32\KERNELBASE.dll LoadedModule[4]=C:\Windows\system32\msvcrt.dll LoadedModule[5]=C:\Windows\system32\ole32.dll LoadedModule[6]=C:\Windows\system32\combase.dll LoadedModule[7]=C:\Windows\system32\RPCRT4.dll LoadedModule[8]=C:\Windows\system32\sechost.dll LoadedModule[9]=C:\Windows\system32\GDI32.dll LoadedModule[10]=C:\Windows\system32\USER32.dll LoadedModule[11]=C:\Windows\system32\OLEAUT32.dll LoadedModule[12]=C:\Windows\system32\SHLWAPI.dll LoadedModule[13]=C:\Windows\system32\ADVAPI32.dll LoadedModule[14]=C:\Windows\SYSTEM32\mscoree.dll LoadedModule[15]=C:\Windows\system32\IMM32.DLL LoadedModule[16]=C:\Windows\system32\MSCTF.dll LoadedModule[17]=C:\Windows\system32\kernel.appcore.dll LoadedModule[18]=C:\Windows\SYSTEM32\bcryptPrimitives.dll LoadedModule[19]=C:\Windows\system32\uxtheme.dll LoadedModule[20]=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscoreei.dll LoadedModule[21]=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll LoadedModule[22]=C:\Windows\SYSTEM32\MSVCR120_CLR0400.dll LoadedModule[23]=C:\Windows\assembly\NativeImages_v4.0.30319_64\mscorlib\014890703e5c42c2722328563df2e1a6\mscorlib.ni.dll LoadedModule[24]=C:\Windows\system32\clbcatq.dll LoadedModule[25]=C:\Windows\SYSTEM32\sxs.dll LoadedModule[26]=C:\Windows\SYSTEM32\VERSION.dll LoadedModule[27]=C:\Windows\SYSTEM32\CRYPTSP.dll LoadedModule[28]=C:\Windows\SYSTEM32\bcrypt.dll LoadedModule[29]=C:\Windows\system32\rsaenh.dll LoadedModule[30]=C:\Windows\SYSTEM32\CRYPTBASE.dll LoadedModule[31]=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clrjit.dll LoadedModule[32]=C:\Windows\assembly\NativeImages_v4.0.30319_64\System\ec17f3882fadad0b2fa421b559d7c7ef\System.ni.dll LoadedModule[33]=C:\Windows\assembly\NativeImages_v4.0.30319_64\Microsoft.M1fb29482#\cc4e727b71e45cd60bd8f323484abc50\Microsoft.MediaCenter.UI.ni.dll LoadedModule[34]=C:\Windows\assembly\NativeImages_v4.0.30319_64\mcstore\9c5837b9f983c9a43acbe777da1a87ef\mcstore.ni.dll LoadedModule[35]=C:\Windows\assembly\NativeImages_v4.0.30319_64\Microsoft.Mac4b2f20#\dbc8a64a01a97cd1b97bbc83451f8a4c\Microsoft.MediaCenter.Shell.ni.dll LoadedModule[36]=C:\Windows\ehome\EhUI.dll LoadedModule[37]=C:\Windows\system32\POWRPROF.dll LoadedModule[38]=C:\Windows\system32\WS2_32.dll LoadedModule[39]=C:\Windows\system32\NSI.dll LoadedModule[40]=C:\Windows\system32\SHELL32.dll LoadedModule[41]=C:\Windows\system32\windows.storage.dll LoadedModule[42]=C:\Windows\system32\shcore.dll LoadedModule[43]=C:\Windows\system32\profapi.dll LoadedModule[44]=C:\Windows\system32\SETUPAPI.dll LoadedModule[45]=C:\Windows\system32\CFGMGR32.dll LoadedModule[46]=C:\Windows\SYSTEM32\d3d9.dll LoadedModule[47]=C:\Windows\SYSTEM32\dxgi.dll LoadedModule[48]=C:\Windows\SYSTEM32\DSOUND.dll LoadedModule[49]=C:\Windows\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.10135.0_none_04423f32705deafa\gdiplus.dll LoadedModule[50]=C:\Windows\SYSTEM32\MSIMG32.dll LoadedModule[51]=C:\Windows\SYSTEM32\WINMM.dll LoadedModule[52]=C:\Windows\SYSTEM32\WTSAPI32.dll LoadedModule[53]=C:\Windows\SYSTEM32\dwmapi.dll LoadedModule[54]=C:\Windows\SYSTEM32\WINMMBASE.dll LoadedModule[55]=C:\Windows\SYSTEM32\DEVOBJ.dll LoadedModule[56]=C:\Windows\ehome\ehtrace.dll LoadedModule[57]=C:\Windows\SYSTEM32\msftedit.DLL LoadedModule[58]=C:\Windows\ehome\ehuihlp.dll LoadedModule[59]=C:\Windows\system32\WINTRUST.dll LoadedModule[60]=C:\Windows\system32\MSASN1.dll LoadedModule[61]=C:\Windows\system32\CRYPT32.dll LoadedModule[62]=C:\Windows\SYSTEM32\ATL.DLL LoadedModule[63]=C:\Windows\SYSTEM32\SLC.dll LoadedModule[64]=C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.10135.0_none_39f9c1ef56881315\COMCTL32.dll LoadedModule[65]=C:\Windows\SYSTEM32\NETAPI32.dll LoadedModule[66]=C:\Windows\SYSTEM32\WINSTA.dll LoadedModule[67]=C:\Windows\SYSTEM32\WINSPOOL.DRV LoadedModule[68]=C:\Windows\SYSTEM32\IPHLPAPI.DLL LoadedModule[69]=C:\Windows\SYSTEM32\sppc.dll LoadedModule[70]=C:\Windows\SYSTEM32\wkscli.dll LoadedModule[71]=C:\Windows\SYSTEM32\srvcli.dll LoadedModule[72]=C:\Windows\SYSTEM32\netutils.dll LoadedModule[73]=C:\Windows\SYSTEM32\WINNSI.DLL LoadedModule[74]=C:\Windows\SYSTEM32\ntmarta.dll LoadedModule[75]=C:\Windows\ehome\ehres.dll LoadedModule[76]=C:\Windows\SYSTEM32\SspiCli.dll LoadedModule[77]=C:\Windows\SYSTEM32\samcli.dll LoadedModule[78]=C:\Windows\SYSTEM32\SAMLIB.dll LoadedModule[79]=C:\Windows\SYSTEM32\sqmapi.dll LoadedModule[80]=C:\Windows\System32\MMDevApi.dll LoadedModule[81]=C:\Windows\System32\PROPSYS.dll LoadedModule[82]=C:\Windows\SYSTEM32\AUDIOSES.DLL LoadedModule[83]=C:\Windows\SYSTEM32\wintypes.dll LoadedModule[84]=C:\Windows\Microsoft.Net\assembly\GAC_64\mcstoredb\v4.0_10.0.0.0__31bf3856ad364e35\mcstoredb.dll LoadedModule[85]=C:\Windows\SYSTEM32\RASAPI32.dll LoadedModule[86]=C:\Windows\SYSTEM32\rasman.dll LoadedModule[87]=C:\Windows\system32\psapi.dll LoadedModule[88]=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\diasymreader.dll State[0].Key=Transport.DoneStage1 State[0].Value=1 FriendlyEventName=Stopped working ConsentKey=CLR20r3 AppName=Windows Media Center AppPath=C:\Windows\ehome\ehshell.exe NsPartner=windows NsGroup=windows8 ApplicationIdentity=56FA83629436B0D95CD66B6A5ACF38AB A .NET Runtime event is logged: Code: Application: ehshell.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.Security.SecurityException Stack: at System.ThrowHelper.ThrowSecurityException(System.ExceptionResource) at Microsoft.Win32.RegistryKey.OpenSubKey(System.String, Boolean) at Microsoft.MediaCenter.Store.ObjectStore.GetClientId(Boolean) at MediaCenter.Store.SqlLite.ObjectStore.Open(System.String) at MediaCenter.Store.SqlLite.ObjectStoreManager.Open(System.String, Boolean) at Microsoft.MediaCenter.Store.ObjectStore.Open(System.String, System.String, System.String, System.Reflection.Assembly, Boolean) at Microsoft.MediaCenter.Store.ObjectStore.Open(System.String, System.String, System.String, Boolean) at Microsoft.MediaCenter.Store.ObjectStore.AddObjectStoreReference() at Microsoft.MediaCenter.Store.ObjectStore.get_DefaultSingleton() at ServiceBus.UIFramework.UserControlPoint.Launch(System.String) An application error event is logged: Code: Faulting application name: ehshell.exe, version: 10.0.10135.0, time stamp: 0x556bc9d1 Faulting module name: KERNELBASE.dll, version: 10.0.10135.0, time stamp: 0x556bca96 Exception code: 0xe0434352 Fault offset: 0x0000000000031928 Faulting process id: 0x63c Faulting application start time: 0x01d0dcd7fcc7bbc5 Faulting application path: C:\Windows\ehome\ehshell.exe Faulting module path: C:\Windows\system32\KERNELBASE.dll Report Id: c066d6f1-c852-405a-b61b-aea1316119f8 Faulting package full name: Faulting package-relative application ID: