<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Detecting Microsoft virtual machines</title><link>http://blogs.msdn.com/virtual_pc_guy/archive/2005/10/27/484479.aspx</link><description>From time to time it is handy to be able to detect that you are running inside of a virtual machine (for instance - you may have maintenance scripts that you want to run on all of your computers - but have them behave differently inside of your virtual</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Detecting Microsoft virtual machines</title><link>http://blogs.msdn.com/virtual_pc_guy/archive/2005/10/27/484479.aspx#486046</link><pubDate>Fri, 28 Oct 2005 08:53:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:486046</guid><dc:creator>AC</dc:creator><description>Minor correction -- I think you meant &amp;quot;tenets&amp;quot;, not &amp;quot;tenants&amp;quot;, in this sentence:&lt;br&gt;&lt;br&gt;&amp;quot;One of the key tenants of virtual machine design...&amp;quot;</description></item><item><title>re: Detecting Microsoft virtual machines</title><link>http://blogs.msdn.com/virtual_pc_guy/archive/2005/10/27/484479.aspx#486054</link><pubDate>Fri, 28 Oct 2005 09:05:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:486054</guid><dc:creator>Virtual PC Guy</dc:creator><description>Thanks - you are right (I have fixed it up).&lt;br&gt;&lt;br&gt;Cheers,&lt;br&gt;Ben</description></item><item><title>re: Detecting Microsoft virtual machines</title><link>http://blogs.msdn.com/virtual_pc_guy/archive/2005/10/27/484479.aspx#486068</link><pubDate>Fri, 28 Oct 2005 09:52:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:486068</guid><dc:creator>gedoe</dc:creator><description>Actually I hopen Microsoft never decides to create a motherboard now as this might mess up detection :) .&lt;br&gt;&lt;br&gt;I hink it would have been nice to have the motherboard echo Microsoft Virtual PC somewhere as this assures that it will not collide with other activities Microsoft might consider (Microsoft corporation is quite big I guess)</description></item><item><title>re: Detecting Microsoft virtual machines</title><link>http://blogs.msdn.com/virtual_pc_guy/archive/2005/10/27/484479.aspx#486089</link><pubDate>Fri, 28 Oct 2005 10:53:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:486089</guid><dc:creator>zzz</dc:creator><description>How can that be changed, so that for example if the VM was running as a honeypot, the bad guy couldn't use that script to determine if it the machine, for example, was a microsoft honeypot for trapping spammers and decide not to try spamming?&lt;br&gt;&lt;br&gt;</description></item><item><title>re: Detecting Microsoft virtual machines</title><link>http://blogs.msdn.com/virtual_pc_guy/archive/2005/10/27/484479.aspx#486120</link><pubDate>Fri, 28 Oct 2005 12:14:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:486120</guid><dc:creator>Alessandro Perilli</dc:creator><description>Ben,&lt;br&gt;thank you for this new script.&lt;br&gt;&lt;br&gt;I posted during 2004 other three methods you could check:&lt;br&gt;&lt;br&gt;1) &lt;a rel="nofollow" target="_new" href="http://www.virtualization.info/2004/03/how-application-can-detect-if-is.html"&gt;http://www.virtualization.info/2004/03/how-application-can-detect-if-is.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;2) &lt;a rel="nofollow" target="_new" href="http://www.virtualization.info/2004/03/how-application-can-detect-if-is_17.html"&gt;http://www.virtualization.info/2004/03/how-application-can-detect-if-is_17.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;3) &lt;a rel="nofollow" target="_new" href="http://www.virtualization.info/2004/11/how-to-detect-virtual-machines.html"&gt;http://www.virtualization.info/2004/11/how-to-detect-virtual-machines.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;HTH&lt;br&gt;Alessandro</description></item><item><title>re: Detecting Microsoft virtual machines</title><link>http://blogs.msdn.com/virtual_pc_guy/archive/2005/10/27/484479.aspx#486356</link><pubDate>Fri, 28 Oct 2005 22:14:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:486356</guid><dc:creator>mikeb</dc:creator><description>&amp;gt;&amp;gt; One of the key tenets of virtual machine design is to ensure that the virtual machine is completely isolated from other virtual machines and from the host operating system.  This means that there should be nothing that can be done inside of a virtual machine to adversely affect the host or other virtual machines. &amp;lt;&amp;lt;&lt;br&gt;&lt;br&gt;However, we have the example of the 'Additions' or 'Tools' that show that interaction between the host &amp;amp; guest is in fact possible.  It's clear that the mechanisms used by the Additions could be used for evil purposes.&lt;br&gt;&lt;br&gt;But, VMs would be so very much less nice to use without them (ah, those damn tradeoffs!).&lt;br&gt;&lt;br&gt;I'd actually like it if the mechanisms for host/guest interaction used by the additions were documented, because I think that many interesting and useful technologies could be built on them.  &lt;br&gt;&lt;br&gt;If this were done (and even if not), there might be a need for the VM implementation to be able to configure that the communication mechanism be disabled (which would also disable the additions) in the interest of making the host secure from the guest.&lt;br&gt;</description></item><item><title>re: Detecting Microsoft virtual machines</title><link>http://blogs.msdn.com/virtual_pc_guy/archive/2005/10/27/484479.aspx#486489</link><pubDate>Sat, 29 Oct 2005 02:11:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:486489</guid><dc:creator>Patrick M. Slattery</dc:creator><description>Here's a portion of a CMD script that I use to detect if it's running in a VM. It uses DEVCON, a command line version of Device Manager. It's really useful for detecting exactly what hardware is in a system.&lt;br&gt;&lt;br&gt;REM Virtual Server and Virtual PC both have the device named &amp;quot;Virtual HD&amp;quot; for their IDE disks&lt;br&gt;devcon hwids * | xgrep -c &amp;quot;Virtual HD&amp;quot;&lt;br&gt;IF %errorlevel% EQU 0 CALL VMAdditions.Exe&lt;br&gt;&lt;br&gt;REM In the case the disk is SCSI then the disk device is named differently so we need to check for that too.&lt;br&gt;devcon hwids * | xgrep -c &amp;quot;MS Virtual SCSI Disk Device&amp;quot;&lt;br&gt;IF %errorlevel% EQU 0 CALL VMAdditions.exe</description></item><item><title>re: Detecting Microsoft virtual machines</title><link>http://blogs.msdn.com/virtual_pc_guy/archive/2005/10/27/484479.aspx#487118</link><pubDate>Mon, 31 Oct 2005 05:13:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:487118</guid><dc:creator>Norman Diamond</dc:creator><description>&amp;gt; Yes - there are various methods out there.&lt;br&gt;&amp;gt; They usually rely on detecting common&lt;br&gt;&amp;gt; shortcuts taken by today's virtualization&lt;br&gt;&amp;gt; offerings.  But just because these shortcuts&lt;br&gt;&amp;gt; are common doesn't mean that they are&lt;br&gt;&amp;gt; necessary - nor does it mean that they will&lt;br&gt;&amp;gt; always be reliable&lt;br&gt;&lt;br&gt;Not always reliable, of course.  But they are necessary.  Microsoft doesn't make all VMs.  Once upon a time they didn't even make yours.</description></item><item><title>re: Detecting Microsoft virtual machines</title><link>http://blogs.msdn.com/virtual_pc_guy/archive/2005/10/27/484479.aspx#487764</link><pubDate>Tue, 01 Nov 2005 21:09:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:487764</guid><dc:creator>mike</dc:creator><description>Interesting - so this is how Virtual PC knows that isn't not supposed to run one virtual machine inside another?&lt;br&gt;&lt;br&gt;Is there any way to hack this so that you can do that, nevermind the performance and possible stability issues that might arise?&lt;br&gt;&lt;br&gt;</description></item><item><title>re: Detecting Microsoft virtual machines</title><link>http://blogs.msdn.com/virtual_pc_guy/archive/2005/10/27/484479.aspx#488010</link><pubDate>Wed, 02 Nov 2005 06:43:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:488010</guid><dc:creator>SJ</dc:creator><description>Ah, I was worried for a while there.  &lt;br&gt;&lt;br&gt;Ben's blog just wouldn't be the same without Norman's negative posts, and its been a while.&lt;br&gt;</description></item></channel></rss>