Monthly Archives: November 2016

Using a SLIC license in a VM

SLIC licenses are interesting.  In my last post, I covered how you can get the SLIC installation medium for select HP machines.  Now, obviously, I went back to Linux, but it did open some experimenting opportunities using virtual machines.

Now, let’s be clear, my Windows needs are tiny and most are covered by a VM I run on my infrastructure and I connect using RDP+SSH.  I really just like to mess around and see where the limits of these things are.

So, back in Linux, I installed VirtualBox and looked how I could use the SLIC enabled license within a virtual machine.  Obviously, I need the installation medium, which I have in WIM format (look up the package wimtools on Linux: Invaluable for working with WIM images).  So, ignoring anything else, I used that installation medium to install Windows 7 Pro.  That worked fine, albeit it was a hassle to try boot from USB (Solution: Don’t. Boot from a second SATA disk containing an image of the USB).  It obviously wasn’t activated, and I though “VirtualBox Guest Additions will take care of it, right?”.  Well, no…

Googling around gave me the solution.  You can make your information from your firmware available to the machines running1.  Theoretically, you could use the following:

VBoxManage setextradata "DummyVM" "VBoxInternal/Devices/acpi/0/Config/CustomTable" "/sys/firmware/acpi/tables/SLIC"

(Where “DummyVM” is the name of your virtual machine)
It would be the most honest form, as you directly use the license information from the host machine.  It won’t work, though, because the rights of that table are readonly for root only.  No problem!  Everything is a file, so do simply copy the SLIC table and give yourself the rights:

sudo cp /sys/firmware/acpi/tables/SLIC ${HOME}/VirtualBox\ VMs/DummyVM/SLIC.bin ; sudo chown ${USER}:${USER} ${HOME}/VirtualBox\ VMs/DummyVM/SLIC.bin

At this point, you can tell VirtualBox to use the SLIC file:

VBoxManage setextradata "DummyVM" "VBoxInternal/Devices/acpi/0/Config/CustomTable" "${HOME}/VirtualBox VMs/DummyVM/SLIC.bin"

The path to the SLIC.bin file must be fully qualified.  Dispite my best efforts, I couldn’t get it to use relative paths.  Doesn’t matter as the vbox configuration file is littered with absolute paths.

Anyway, launch the Windows 7 virtual machine and it will be instantly activated.  It gets better though: cloning a COA (Certificate Of Authority) based Virtual Machine, will almost always trigger an activation, because normally cloning changes system-ids and MAC addresses.  Cloning this won’t, because Windows 7 thinks it runs on a machine that’s licensed based on the SLIC table.  Theoretically, but I didn’t try, it should not even complain when moving to a totally different host machine.

Starting from a clone, I investigated what would happen upon Windows 10 upgrade.  So, I launched the “Assistive Technologies Upgrade” and got Windows 10 Pro, fully activated running inside the VM.  I was still curious what would happen if I removed the SLIC file from that VM.  After all, under Windows 7, removing it would make it unactivated.  To remove the SLIC file from the VM execute:

VBoxManage setextradata "Dummy10VM" "VBoxInternal/Devices/acpi/0/Config/CustomTable" ""

The activation remained!

This is an upgrade, so perhaps I want a fresh install?  No problem.  Keep the Virtual Machine configuration as is, but delete the associated hard disk.  Create a new empty one, and hand the Win10 iso to the optical drive.  Boot, go through installer, skip license key.  Wait… a… long… time… and: Activated Windows 10 Pro.

Conclusion: neither SLIC, nor the hard disk are in the hash submitted to Microsoft.  Well, if they are, they do not count towards activation.  Oh, and the difference between a fully patched Win7 vs Win10 regarding disk usage?  Seventeen fucking Gigabytes!  Windows 7 patching eats storage for breakfast:

find /home/${USER}/VirtualBox\ VMs/ -name Win*.vdi -exec ls -sh {} \; | sed s/\\/.*\\///g
29G Win7Pro.vdi
12G Win10Pro.vdi

Reminds me, that I should write up on how to get a Windows 7 machine up to patch-level in minimal time.  It’s a nightmare frankly.


1 Source https://forums.virtualbox.org/viewtopic.php?f=2&t=43678&p=227455

Recovering an SLP license for an “OS-less” machine.

Marketing stickers

Microsoft Windows and Intel marketing stickers

Windows 10 is actually awesome. Not for the reason you think, but you’ll understand soon. You see, I got myself a second hand HP ProBook 4340s. Sandy Bridge i3, 4GB RAM, 320GB HDD. Nothing fancy. It’s a business machine and it’s in an excellent state, it was worth the 200€ I paid for it.

It was sold without operating system, which really is quite odd for a HP machine. I checked the spot, under the battery, where the COA (Certificate of authenticity) sticker should be and it wasn’t there. Now, one thing you need to understand about Windows licenses, prior to Windows 8, was that for each computer you get two types of licenses. The SLP license, and the COA license (The “sticker with the key”). The SLP is tied to the manufacturer of your computer and is some kind of “mass pre-activation”, which is done by the installation medium provided by the manufacturer. So, if every manufacturer would provide you with an installation medium, you would never actually need the COA sticker/license.  We all know you rarely get installation media.  You also need to understand that you can’t actually both at the same time: if you use the COA, you can’t use the SLP and inversely.
The COA is something like a “backup” license. You could use any OEM installation medium and activate your Windows. So, if you have a COA sticker, I could give you a Dell installation DVD (and I have a few of those), and you could install it on your Lenovo and while it wouldn’t activate, you could use the sticker to get it activated.  Alas, COA stickers fade (my fathers old Alienware has a totally unreadable COA) or get accidentally ripped off.  Both happen very often on laptops.
All this explains why Microsoft wanted to get away from this system quickly and went for firmware-tied keys from Windows 8 on: every Windows 7 COA sticker was a potential “pirate” installation.

Now, what made me suspicious that this machine wasn’t actually originally OS-less, was that it had the “Windows” sticker next to the “Intel i3 Inside” sticker. You know, the marketing ones that actually have no value and I usually remove any way. I have seen quite a few “true” OS-less machines, and I can assure you, there won’t be a “marketing Windows” sticker on those. So, after I did my initial Linux install for my usage, I took out the disk and slammed in a 160GB HDD that I had lying around. Next I installed Windows 10 Pro, on it while skipping the activation. At this point, I have a fully functional Windows 10 that simply isn’t activated. (I downloaded and burned the Windows 10 installation ISO using Linux, on the machine itself)

After Googling, I found out about “HP Cloud Recovery Tool“. I downloaded it, and ran it. It detected which machine I had (including serial number) and told me that it originally came with “Windows 7 Pro” and I could download it, including drivers.

Now, I do not know why, but it failed… several times. I don’t really know why, perhaps my 16GB USB stick was bad (doesn’t look like it), perhaps something else. What I do know for certain is that it downloaded something big. Very big. Well, I found a file called “650434-DN6.WIM” in %USERPROFILE%\AppData\Local\Temp [This is equivalent to %TMP%. Corrected: Originally I wrote “C:\Windows\Temp”] and a WIM file is nothing else than a certain kind of Windows image file. I copied it over to the desktop, and used 7Zip to extract the contents and… indeed… it looks like a Windows 7 Pro installation DVD. At that point I just ran the setup.exe in the extracted folder and it started installing Windows 7. Half an hour later, it booted in a clean Windows 7 Pro installation which was activated. This due to the magic of SLP.

At this point, I could have stopped, because… well, there I have it: a running activated Windows 7 and that’s basically the best that Microsoft has to offer. However, the legality of this installation is debatable. Windows 10 is the way to make your installation “legal”, in the sense it doesn’t need a COA any more and gets a digital entitlement.  Well, that isn’t hard… Use the “Assistive Technologies” loophole. After installing a network driver, I downloaded the Windows 10 Assistive Technologies Upgrade and ran it.

In the morning1, I had a shiny activated Windows 10 Pro waiting for me. So, by using only Microsoft and HP approved tools, I went from a machine with a missing COA, to a digital entitled Windows 10 Pro. You know, the one that “never expires” and doesn’t require stickers, license keys or anything. Just a hash stored by Microsoft. The installation has become indistinguishable from a totally legit machine (with COA ripped off, which… well happens in reality)

If you wonder: At this point I put back the 320GB disk and it is running Linux again. The 160GB disk has been formatted. Even if it’s free, I don’t want their junk. I just like a challenge from time to time.


1 I’m simplifying. In reality it took several, attempts to get through the Windows 7 “update hell” before the upgrade tool actually did what it needed to do. Never mind the upgrade tool cannot be interrupted and when it hung on 99%, I aborted it and I had to do it all again. Disable Windows Update in services before you even try the upgrade tool.