A hacker claims to have found a method of bypassing the code integrity mechanism in Windows RT, therefore allowing for desktop-style programs to be installed on the platform.
The hacker, who uses the online moniker "clrokr", documented the bypass method in a blog post on Sunday.
[ Learn how to greatly reduce the threat of malicious attacks with InfoWorld's Insider Threat Deep Dive PDF special report. | Stay up to date on the latest security developments with InfoWorld's Security Central newsletter. ]
Windows RT is a special version of Microsoft Windows designed for lightweight PCs and tablets that are based on the ARM architecture, including Microsoft's Surface tablet. Compared to Windows 8, Windows RT only allows Metro apps downloaded from the Windows Store to be installed. These applications are designed only for the Metro interface and don't have access to the regular Windows desktop.
That said, Windows RT does come with a few preinstalled desktop-enabled applications, like Microsoft Office RT, a special version of Microsoft Office 2013, and Internet Explorer 10.
According to clrokr, the restriction of installing only Metro-style apps on Windows RT is enforced through a code integrity mechanism that checks the application's signature before allowing it to be installed. This prevents users from simply taking a desktop application compiled for the ARM architecture and installing it on their Windows RT devices.
"Deep in the kernel, in a hashed and signed data section protected by UEFI's Secure Boot, lies a byte that represents the minimum signing level," clrokr said. "The minimum signing level determines how good an executable's signature is on a scale like this: Unsigned(0), Authenticode(4), Microsoft(8), Windows(12). The default value on x86 machines [Windows 8 and previous versions] is of course 0 because you can run anything you like on your computer. On ARM machines, it defaults to 8."
The minimum signing level enforced by Windows RT can be changed by exploiting a vulnerability in the Windows kernel that had existed for some time and is also present in Windows RT, in order to modify that special byte in memory, clrokr said.
The hacker decided to disclose the bypass method publicly because he feels that Microsoft's decision to artificially ban traditional desktop applications on the platform is a bad marketing move that decreases the value of Windows RT devices.
"Windows RT needs the Win32 ecosystem to strengthen its position as a productivity tool," he said. "There are enough 'consumption' tablets already."
"The reason I tried to disable Code Integrity has nothing to do with Win32 or WinRT," he said in a discussion thread on Reddit. "It has to do with choice. Microsoft wants devs to go through the [Windows] Store, and it is understandable from a money standpoint. But allowing Win32 apps could have helped the chicken-and-egg problem the Surface is going to die from."
Clrokr doesn't agree with the argument that traditional desktop applications require more resources and consume more battery power than Metro-style apps, which might have led to Microsoft's decision to ban them in Windows RT.