SECDRV.SYS Not Loading in Windows 10; this will break thousands of older games.

Anonymous
2015-08-01T20:13:40+00:00

Hello,

I have discovered an unfortunate problem with Windows 10.

Many games from the early-mid 2000's used Macrovision's SafeDisc (version 2) as a means of copy protection. At game startup, Windows loaded SECDRV.SYS to verify an original game disc was in the drive, after which the game would start.

When you try to run ANY game which uses this SafeDisc form of copy protection in Windows 10, the following happens:

 - You get an error window that tells you to log in with Administrator Privileges and to try again. This happens on any account, even those with Administrator access. The game fails to start.

 - If you then set "Run as Admin" compatibility mode on the game's startup file, the message disappears, but the game doesn't start.

 - Keeping a window open for C:\WINDOWS\SYSWOW64\DRIVERS shows SECDRV.SYS appearing at the moment you try to start the game. Based on its size, it appears to be the file that is present on the game disc (tested across several games), even though I see no disc activity and cannot find the file elsewhere on my system.

 - The Windows event log shows that SECDRV.SYS failed to load.

 - This happens both with an upgraded install (Windows 8.1 > Windows 10) and with a fresh Windows 10 install, with one of the games being installed immediately upon the fresh install completing.

 - On my Windows 64-bit 8.1 system, C:\WINDOWS\WINSXS has a folder called amd64_macrovision-protection-safedisc_31bf3856ad364e35_6.3.9600.16384_none_4e6b3758913c9240 with a SECDRV.SYS in it, presumably the one that ships with Windows. Windows 10 had such a folder in early builds, but it is missing from the release build. It appears SafeDisc support is missing entirely.

OTHER TESTING I HAVE DONE:

 - I updated one of the games to a version that no longer required the CD check, and it started immediately and ran perfectly once the check was removed. However, this is possible only with a very limited number of games, or resorting to fixes that violate the game's EULA or put the user's system security at risk.

 - I tried disabling driver signature verification and installing one of the games again; same problem.

 - Multiple compatibility modes; same problem. XP (Service Pack 3) mode and / or Run as Administrator mode make the error message go away, but the games still fail to launch.

SIGNIFICANCE:

Unless this is fixed in Windows 10, a massive catalog of older games will cease to function in Windows 10 for the simple reason that they cannot pass the SafeDisc copy protection check. I am accustomed to some games breaking with every new version of Windows as technology progresses (for example, the loss of the ability to run 16-bit programs in 64-bit Windows), but this seems to be an unnecessarily harsh change.

Windows for home | Windows 10 | Gaming

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

293 answers

Sort by: Newest
  1. Anonymous
    2017-06-28T05:27:03+00:00

    Microsoft does provide a way to re-enable SECDRV.

    • Install a game that brings (a recent version of) SECDRV.sys.
    • Install the Windows 10 SDK from Get the standalone Windows 10 SDK. Just install all components, cuz who cares.
    • Start PowerShell as Administrator.
    • Find makecat.exe, makecert.exe and signtool.exe and add the path to your PATH:

    dir -Directory -Path 'C:\Program Files (x86)\Windows Kits\10' -Recurse |

    where BaseName -eq "x86" |

    where { (dir $_.FullName -Filter makecert.exe) -ne $null } |

    where { (dir $_.FullName -Filter makecat.exe) -ne $null } |

    where { (dir $_.FullName -Filter signtool.exe) -ne $null } |

    select -First 1 |

    foreach { $env:Path = "$env:Path;$($_.FullName)" }

    • The ones in a x86 subfolder are always OK on all Intel architecture chips. No need to match the hardware or the OS bitness.
    • Create a new folder, copy SECDRV.sys in it. If it's an old version, use this one here. Its from September 2006.

    mkdir "$env:USERPROFILE\Downloads\SECDRV" | Out-Null

    cd "$env:USERPROFILE\Downloads\SECDRV"

    • If it's an old version, use this one here. Its from September 2006.

    curl -UseBasicParsing -Uri "https://github.com/ericwj/PsSecDrv/raw/master/tools/SECDRV/SECDRV.sys" -OutFile "SECDRV.sys"

    • Enable test signing boot mode.

    bcdedit /set "{current}" testsigning on

    • Pick a subject for the certificate.

    $Subject = "SECDRV.sys signing for $env:USERDOMAIN$env:USERNAME on $("{0:dd-MMM-yy HH:mm}" -f [datetime]::Now)"

    • Create a root certificate.

    makecert -r -sr LocalMachine -ss My -n "CN=$Subject"

    • Open Local Machine Certificates.

    certlm.msc

    • Go to Personal, Certificates and select the certificate created, there usually is only one, or match the subject, right click Copy.
    • Go to Trusted Root Certification Authorities, Certificates. Paste.
    • Go to Trusted Publishers, Certificates. Paste.
    • Make a text file called SECDRV.cdf in the folder and put this in it.

    [CatalogHeader]

    Name=SECDRV.cat

    PublicVersion=0x1

    EncodingType=0x00010001

    CATATTR1=0x10010001:OSAttr:2:6.0

    [CatalogFiles]

    <hash>SECDRV=SECDRV.sys

    • Make a driver catalog file in the folder.

    makecat -o SECDRV.txt -r SECDRV.cdf

    • Sign the driver. Use the thumbprint as shown in certlm for the certificate created, just double click it and look around, without spaces. Or get it in PowerShell with dir:

    $Cert = dir Cert:\LocalMachine -Recurse | where Subject -Match ([regex]::Escape($Subject)) | select -First 1

    $Thumbprint = $Cert.Thumbprint

    signtool sign /sm /s Root /sha1 "$Thumbprint" /t "http://timestamp.verisign.com/scripts/timstamp.dll" secdrv.cat

    • Install the driver.

    signtool catdb /u secdrv.cat

    • Reboot.
    • Test if it works.

    sc.exe start secdrv

    If it doesn't work,

    • one reason is the SECDRV.sys on your system is too old. Then the driver doesn't start.
    • Another reason is Secure Boot is enabled. Run bcdedit again after disabling it.
    • Another reason is you didn't reboot. You will have to reboot.
    • On 64-bit systems, SECDRV might still report 'This driver is blocked from loading' if it is configured with C:\Windows\SysWOW64\drivers\SECDRV.sys as the binary path. To 1) verify and fix this, 2) copy SECDRV.sys and 3) change the binary path of the driver service:

    sc.exe qc secdrv

    copy C:\Windows\SysWOW64\drivers\SECDRV.sys C:\Windows\System32\drivers

    sc.exe config secdrv binpath= C:\Windows\System32\drivers\SECDRV.sys

    In PowerShell, don't omit the ".exe." in sc.exe. Nothing will appear to happen, but you will have ended up with a file called "start", "qc" or "config" that contains the text "secdrv" because sc is short for Set-Content...

    Now play games.

    Was this answer helpful?

    5 people found this answer helpful.
    0 comments No comments
  2. Anonymous
    2017-06-28T04:44:06+00:00

    Was this answer helpful?

    0 comments No comments
  3. Anonymous
    2017-06-28T04:04:31+00:00

    I tried the solutions involving the "Drive Enforcement Overrider" to no avail. I got this laptop for my birthday after my old one failed after many years of use, and to my surprise, pretty much every non-Steam game I owned was royally screwed by this new "feature".

    The fact that Microsoft doesn't allow us a means to re-enable Safe Disc and SECDRV.SYS is what angers me, not that Microsoft disabled the thing due to a gaping security hole.

    Most of the information I've Googled repeats the Override solution or only applies to Windows VIII and earlier.

    Is there anything I can do besides installing a virtual machine? This laptop is higher end than my desktop and than any other PC my family owns, so it can DEFINITELY take it.

    Was this answer helpful?

    0 comments No comments
  4. Anonymous
    2017-06-25T21:02:29+00:00

    Eric there is no much difference between Security Essentials on Windows 7, 8.0, 8.1 or 10.

    "Once you load it, it goes off at light speed and you just can't see all of what it in fact does."

    I haven't suggested to turn off AV, then there are firewalls.

    But I hear you that it is nothing for anyone, not an universal solution.

    Instead of dualboot or cracks, one might also consider to setup a Windows 10 in a Hyper-VM and reaching through the GPU into the Hyper-VM using Remote-FX to play games. The performance is really good.

    The user needs to enable Hyper-V role and everything else is quite easy to do.

    Was this answer helpful?

    0 comments No comments
  5. Anonymous
    2017-06-25T15:14:35+00:00

    If you mean Windows Defender, then you're right. If you insist on calling that Security Essentials, that's just the wrong name for it. If you insist downloading and installing the actual Security Essentials product, it's stupid as I said. That's an old product for Windows XP and Windows 7. Just don't do anything after getting Windows 10 and you'll have the best AV there is. Microsoft is serious about that being true.

    Installing cracks is a major security issue. Full stop. You load untrusted software, potentially with elevated permissions, suppose the game requires that. Sure you can have a measure of awareness and protection, but the risk comes from the crack. It's that simple. Once you load it, it goes off at light speed and you just can't see all of what it in fact does.

    Many games I've tried it with don't install from .iso's. I'd say it is about 50-50 whether going through the hassle of trying it out ever pays off.

    Was this answer helpful?

    0 comments No comments