I think this is related to this question, but I would like to know if there's also a way to prevent "third party" applications from seeing hardware IDs (motherboard, hard disks, and others), or giving them fake values, on real OS, not using a virtual machine. I'm interested here in modern mainstream desktop OSes, (and especially interesting are Windows 7 and Windows 8 for x86-64).

  • 1
    can you also specify which "software" you mean? drivers are software. Shareware is software. A webbrowser is software. surely it might matter Commented Apr 7, 2014 at 16:13
  • @humanityANDpeace I mean all the software except the OS itself. Commented Apr 7, 2014 at 16:18
  • No, you cannot prevent a software from accessing hardware IDs, as this is how its designed in most operating systems. However, for changing the IDs you'll need root access to the OS.
    – xkcd
    Commented Apr 7, 2014 at 18:05

2 Answers 2


There is a way to do this via Google's Native Client. However, executables have to be compiled for this environment explicitely.

It is difficult to achieve otherwise (i.e. without a sandbox). DEP can't do this for you, as it only prevents memory segments without the executable flag from being executed.

Just think of reading the CPUID, which is a simple instruction which you can normally not prevent from being executed.

Anyway, there may be programs to do this which utilize debugging features, but I am not aware of any.


Hardware enforced DEP may be able to prevent, unsure about returning false values

  • How it does this? From my understanding, it only disallows executing instructions that are stored in memory that's not marked as executable. Commented Apr 7, 2014 at 16:20
  • You're likely going to get a quicker more accurate answer asking on the Microsoft forums if you ask me... social.technet.microsoft.com/Forums/windows/en-US/…
    – munkeyoto
    Commented Apr 7, 2014 at 16:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .