Windows 10 builds contain many hidden features that are used by Microsoft to debug code or test applications that have not been officially released yet. These hidden features, though, are not enabled by default and require a special method to activate them.
This is a where a tool called Mach2 comes into play that was released by Windows expert Rafael Rivera. According to Rafael, these hidden features are located in Feature Control, which "is a system used to gate off new and unfinished features from production users in production code". Using Mach2, you are able to manage the Feature Store, a component of Feature Control, to find, disable, and enable these normally hidden features.
Before we get started using Mach2, though, we do need to perform a few steps so that you can started using this tool to find new features. First we need to compile the mach2 executable and then get Windows symbols to scan for hidden features. This article will explain how to do that below.
Rivera released Mach2 as an open source project on Github so that anyone can modify, download, and use the executable. What that means for non-programmers, though, is that you first need to figure out how to compile it.
Thankfully, you can download the free Visual Studio 2017 Express in order to compile this program if you wish to play with it. When installing it, make sure you select the "Desktop development with C++" option as shown below and also select to install the latest Window 10 SDK that is available.
Once Visual Studio is installed, you can download the GitHub project, load the solution into Visual Studio, and compile it. When done, an executable named named mach2.exe will be created.
In order to find hidden features, Mach2 needs to scan PDB files, otherwise known as Program Database files, which contain debug symbols for the Windows executables. The problem, though, is that these symbol files are not installed with Windows and you need to download them from Microsoft's Symbol Server.
To do this we need to use a specialized tool called symchk.exe, which is included in the Windows 10 SDK. When you install the Windows 10 SDK, you should select to install the Debugging Tools for Windows package, which includes symchk.exe.
Once symchk.exe is downloaded and you have located the executable (do a search for it), you can have it scan all the executables under C:\Windows and automatically download the latest symbol file for the detected files. To do this you would first create a folder called C:\symbols that will be used to store the downloaded PDB files and then execute the following command:
"C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\symchk.exe" /r c:\windows /s SRV*c:\symbols\*http://msdl.microsoft.com/download/symbols
Once you enter this command, symchk.exe will scan all the files under C:\Windows and download the associated symbol files from Microsoft's symbol server.
When files are downloaded, they will be saved in the C:\Symbols folder. This process can take quite a while, so please be patient while the files are downloaded.
Before we start, it should be noted that Rafael warned that adding development features could cause problems with your Windows 10 installation. Therefore, they should only be used on a system that you do not care what happens, such as a virtual machine with a saved snapshot.
Now that the symbol files are downloaded, we need to scan them using the Mach2 program. To do this, I suggest you use the following command, which will scan the entire C:\symbols folder, remove the paths for the PDB files (creates a lot of extra output), and then saves the discovered features in the features-found.txt file.
mach2 scan c:\symbols -s -o features-found.txt
After you enter this command, Mach2 will begin to scan the PDB files in the C:\Symbols folder for hidden features. This process can take a while, so please be patient.
When Mach2 has finished scanning the files, you will find a file called features-found.txt located in the same folder you issued the command. This file will contain a list of features and their associated ID. These IDs, such as 3728205, will be used by Mach2 to activate the feature.
Now that we have a list of features, we can see what features are currently enabled by entering the "mach2 display" command.
To enable a new feature from the list we created, we can use the "mach2 enable [id]" command. For example, the feature ID in Windows 10 Insider Build 17643 for the hidden "Screen Clip" feature is 15333818.
To enable this feature we would enter the "mach2 enable 15333818" command. Ifmach2 was able to enable the command, it will simply respond with OK. Now if you check the list of enabled features you will see that this feature has been activated.
To disable a feature, we can then use the "mach2 disable [id]" command. For example, to disable the Screen Clip feature, we would enter "mach2 disable 15333818". When disabling or enabling features, you may need to reboot the computer for it to be fully enabled or disabled.
Now that you know how to find, display, enable, and disable hidden features, it's time to start playing around and seeing what you can find. Below I have listed one of the features I was able to activate using Mach2.
I briefly went through the list of features that I could find using Mach2 and the only one that had any noticeable change was the Screen Clip feature shown below. A full list of feature IDs that I found can be found here. Let me know if any others do anything for you and I will add them to this list.
Enabling this hidden feature activated the in-development "Screen Clip" screenshot tool.