<?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>The Audio Fool : Windows</title><link>http://blogs.msdn.com/audiofool/archive/tags/Windows/default.aspx</link><description>Tags: Windows</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Tweaking Legacy Installers</title><link>http://blogs.msdn.com/audiofool/archive/2007/05/23/tweaking-legacy-installers.aspx</link><pubDate>Wed, 23 May 2007 22:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2821696</guid><dc:creator>RyanBemrose</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/audiofool/comments/2821696.aspx</comments><wfw:commentRss>http://blogs.msdn.com/audiofool/commentrss.aspx?PostID=2821696</wfw:commentRss><description>
&lt;p&gt;Last time I talked about &lt;a href="http://blogs.msdn.com/audiofool/archive/2007/03/20/categories-of-legacy-applications.aspx" mce_href="http://blogs.msdn.com/audiofool/archive/2007/03/20/categories-of-legacy-applications.aspx"&gt;legacy applications&lt;/a&gt;, I hinted at a hole in the UAC model that could be exploited by a social engineering attack.&amp;nbsp; The issue lies in the "installers" category.&amp;nbsp; Because it's a legacy app and doesn't have a manifest, Windows doesn't have any way of knowing whether an installer actually needs elevation to perform the install.&lt;/p&gt;
 
&lt;p&gt;For the sake of backward compatibility to make sure that legacy apps just work, Microsoft decided that Windows should just elevate legacy installers by default.&amp;nbsp; In most cases, this is the correct thing to do; legacy apps were developed primarily in a culture where every user was an admin, and most installers take advantage of that.&amp;nbsp; So, Vista runs all legacy installers as administrator.&amp;nbsp; The problem with this is that, if you're a power user, you know that not everything needs to run as administrator.&amp;nbsp;&amp;nbsp;The power user is savvy to the intricacies of ACLs and permissions,&amp;nbsp;and knows that while his antivirus might need administrative privileges to install, the latest downloaded java game probably does not.&amp;nbsp; And while you&amp;nbsp;might be willing to trust the makers of that java game enough to run their silly software, you don't trust them to administer your machine.&lt;/p&gt;
 
&lt;p&gt;The meat of the&amp;nbsp;problem is that if Windows determines that a program is a legacy&amp;nbsp;installer, then by default you're limited to only two choices: Run elevated, or don't run at all.&amp;nbsp; This can be a real pain if you have a legacy program that isn't really an installer, but the heuristic treats it as one (Some archive programs&amp;nbsp;are like this).&lt;/p&gt;
 
&lt;p&gt;Fortunately the third option, run as a standard user, is available if you know what you're doing.&amp;nbsp; On a per-app basis, you can set the __COMPAT_LAYER environment variable to suppress the installer heuristics.&amp;nbsp; Just open a (non-elevated) cmd window, and&amp;nbsp;type "&lt;i&gt;set __COMPAT_LAYER=RunAsInvoker&lt;/i&gt;", and any legacy app you launch from that cmd window will run as standard user.&amp;nbsp; As standard user, you can install your game applet with much less worry that it will install a rootkit or overwrite your registry.&amp;nbsp; This is the recommended way to run legacy installers with low privileges.&lt;/p&gt;
 
&lt;p&gt;If the recommended way doesn't work for you, you can instead shut off the heuristic entirely at a loss of&amp;nbsp;some backcompat functionality.&amp;nbsp; There is a switch in the group policy for Windows that disables auto-elevation for legacy installers completely.&amp;nbsp; The backcompat problem is that legacy installers which really do need elevation will now crash on install, often with few clues as to why they didn't work.&amp;nbsp; You have to remember to right-click the executable and select "Run as Administrator".&amp;nbsp; If you don't, then you can waste a lot of time frustrated because "Vista doesn't work with this software!"&lt;/p&gt;
 
&lt;p&gt;Disclaimer: As with all advanced system tweaks, make sure you Really Know What You're Doing before trying this.&amp;nbsp; I am not responsible for any damage you may do to your computer.&amp;nbsp; To flip the switch, run gpedit.msc, and open the tree to Computer Configuration -&amp;gt; Windows Settings -&amp;gt; Security Settings -&amp;gt; Local Policies -&amp;gt; Security Options.&amp;nbsp; Scroll down in the right pane to find "User Account Control: Detect application installations and prompt for elevation", and set it to 'Disabled'&lt;/p&gt;
 
&lt;p&gt;So why didn't Microsoft just ship like this?&amp;nbsp; Put yourself in the chair of my fictional Aunt Gertrude, as suddenly programs that worked fine on XP fail&amp;nbsp;to install on Vista .&amp;nbsp;&amp;nbsp;How do you&amp;nbsp;explain to Gertrude&amp;nbsp;what it means when&amp;nbsp;her program fails with strange and&amp;nbsp;unhelpful&amp;nbsp;errors messages?&amp;nbsp; Even if you added a dialog saying to re-try as an admin,&amp;nbsp;it wouldn't help much.&amp;nbsp; We all know that users don't read dialogs.&amp;nbsp; Vista broke&amp;nbsp;Aunt Gertrude's&amp;nbsp;program, and to the average user, that's all that matters.&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2821696" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/audiofool/archive/tags/Windows/default.aspx">Windows</category><category domain="http://blogs.msdn.com/audiofool/archive/tags/Usability/default.aspx">Usability</category></item><item><title>Categories of Legacy Applications</title><link>http://blogs.msdn.com/audiofool/archive/2007/03/20/categories-of-legacy-applications.aspx</link><pubDate>Wed, 21 Mar 2007 03:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1922463</guid><dc:creator>RyanBemrose</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/audiofool/comments/1922463.aspx</comments><wfw:commentRss>http://blogs.msdn.com/audiofool/commentrss.aspx?PostID=1922463</wfw:commentRss><description>&lt;p&gt;If you've used Vista, you've probably been exposed to the UAC dialog.&amp;nbsp; It's the security dialog that pops up when the screen goes gray, and asks you permission to perform a task which requires admin-level &lt;i&gt;elevation&lt;/i&gt;.&amp;nbsp; The idea behind it is that once programs are written for Vista (with UAC in mind), they'll sort themselves into two categories:&amp;nbsp; Trusted programs that require administrative privileges (and have to pass a UAC prompt) to do their jobs, and programs that run fine without administrative privileges.&lt;/p&gt;
 
&lt;p&gt;The big problem with rolling out UAC is how to deal with all of the legacy applications that have to still work.&amp;nbsp;&amp;nbsp;I roughly divide legacy&amp;nbsp;(pre-Vista) programs into &lt;strike&gt;five&lt;/strike&gt; six categories:&lt;/p&gt;
 
&lt;ol&gt; 
&lt;li&gt;&lt;b&gt;Programs&amp;nbsp;that don't need or request admin privileges.&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
 
&lt;p&gt;The majority of programs that run&amp;nbsp;don't try to do anything forbidden like writing to system directories or opening .&amp;nbsp; These programs will run fine under Vista.&lt;/p&gt;
 
&lt;ol&gt; 
&lt;li value="2"&gt;&lt;b&gt;Programs that don't need admin privileges, but try to access protected areas.&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
 
&lt;p&gt;Even a well-intentioned app might open a system registry key for full access when it only&amp;nbsp;reads the key, or might write its settings to a config file in the program files directory, because that was perfectly OK under XP where everybody ran as Administrator.&amp;nbsp; For these apps that didn't &lt;i&gt;really&lt;/i&gt; need admin access, the system virtualizes these accesses.&amp;nbsp; A virtualized program is allowed to read and write as if they're writing to the system, but those changes are virtualized under the user's AppData folder.&lt;/p&gt;
 
&lt;ol&gt; 
&lt;li value="3"&gt;&lt;b&gt;Utilities that legitimately need to be able to modify the system.&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
 
&lt;p&gt;Some programs are fully intended to administer the system, and cannot run properly in restricted user mode.&amp;nbsp; Simply double-clicking this utility will cause it to fail, because the system doesn't know that it needs elevation.&amp;nbsp; These legacy programs must be launched with elevated privileges in order to work.&amp;nbsp; The three common ways to do this are to right-click the .exe and select "Run as Administrator", to select "Run as Administrator" in the compatibility tab of the program's properties dialog, or to run cmd.exe as administrator and launch from there.&amp;nbsp; Any of these methods will get you a UAC prompt, of course.&amp;nbsp; Fortunately most people don't need to run programs in this category very often.&lt;/p&gt;
 
&lt;p&gt;Though many in the blogosphere would be quick to disagree, I'm actually glad&amp;nbsp;that the UAC dialog is showing up here.&amp;nbsp; The dialog&amp;nbsp;serves two purposes for me.&amp;nbsp; It is a warning flag whenever something is about to get access to my system's tender bits.&amp;nbsp; It is also a reminder that whenever it isn't there, &amp;nbsp;the OS is making certain that whatever's running can't get at my system's tender bits.&amp;nbsp;&lt;/p&gt;
 
&lt;ol&gt; 
&lt;li value="4"&gt;&lt;b&gt;Malware&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
 
&lt;p&gt;Some programs we just don't want to allow admin privileges to.&amp;nbsp; This is the class of programs for which UAC was invented.&lt;/p&gt;
 
&lt;ol&gt; 
&lt;li value="5"&gt;&lt;b&gt;Installers&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
 
&lt;p&gt;An&amp;nbsp;installer is a special case of one of the previous&amp;nbsp;categories which often needs more privileges than the program it installs.&amp;nbsp; This is because installers have to set up directories, resources, and registry keys.&amp;nbsp; Though it is possible to create an installer which does not need admin privileges, most legacy installers do need them&amp;nbsp;and will fail without elevation, resulting in a bad user experience.&amp;nbsp; The Vista planners recognized this, and made installers a special-case.&amp;nbsp; Because most legacy installers will fail if they are not run elevated, Windows Vista will automatically elevate the privilege of any legacy installer.(after raising a UAC dialog, of course)&lt;/p&gt;
 
&lt;p&gt;Eventually, application designers will&amp;nbsp;write more Vista-aware&amp;nbsp;programs, &amp;nbsp;which understand how to work around the different privilege levels.&amp;nbsp; A Vista-aware program can contain a &lt;i&gt;manifest&lt;/i&gt;, which contains metadata on the program including whether or not it needs elevation.&amp;nbsp; Because unnecessary UAC dialogs annoy users, software vendors will work to avoid them.&amp;nbsp; In the ideal application world, then, the following happens with our five categories.&lt;/p&gt;
 
&lt;ol&gt; 
&lt;li&gt;Programs that run fine without elevation continue to run unchanged.&amp;nbsp; They were already doing the right thing.  &lt;/li&gt;

&lt;li&gt;Programs that don't need elevation but try to access protected areas will be fixed so that they fit into category #1.&amp;nbsp; The registry access will be changed from full access to read-only, and the config file will be properly stored in the user profile's&amp;nbsp;AppData directory.  &lt;/li&gt;

&lt;li&gt;Legitimate Windows utilities include a manifest with the&amp;nbsp;elevation bit set.&amp;nbsp; When you try to launch the program, Windows shows a UAC dialog.&amp;nbsp; The program is legitimate, and you intended to administer the box, so you click yes and the program runs with admin privileges.  &lt;/li&gt;

&lt;li&gt;Malware&amp;nbsp;in the post-Vista world will likely include a manifest with the elevation bit (because malware that doesn't&amp;nbsp;is already&amp;nbsp;blocked from affecting&amp;nbsp; the system).&amp;nbsp; Windows shows a UAC dialog, but you&amp;nbsp;didn't intend to administer the system and you don't trust the source of the program, so you click no.  &lt;/li&gt;

&lt;li&gt;Installers include a manifest.&amp;nbsp; The few installers which legitimately need to write to system locations (drivers, system utilities, debuggers) set the&amp;nbsp;manifest's elevation&amp;nbsp;bit.&amp;nbsp; Other installers leave the bit clear, and install without a UAC prompt.&lt;/li&gt;
&lt;/ol&gt;
 
&lt;p&gt;Ideally, when the only&amp;nbsp;programs that legitimately require elevation are system utilities and driver installers, the user will see very few UAC dialogs, and&amp;nbsp;will be vigilant for malware whenever it rears its ugly head.&amp;nbsp; What a wonderful world it will be, then.&amp;nbsp; :-)&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li value="6"&gt;&lt;b&gt;Programs that explicitly check for a version of the OS.&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some programs would run just fine on the OS, except that they bind to one specific version to the exclusion of later versions.&amp;nbsp; You may have seen this one, which pops up a dialog in setup on Vista saying "You must run this program on Windows XP".&amp;nbsp; The program checks GetWindowsVersion equal to XP, rather than checking that it's greater or equal.&amp;nbsp; For these buggy programs, there's Compatibility Mode.&amp;nbsp; When you run a program in Compatibilty Mode for a given version of Windows, Vista will lie to the program and pretend to be that version, causing it to run correctly.&amp;nbsp; To turn on Compatibility mode for a program, right-click the program
and select Properties.&amp;nbsp; In the Compatibility tab, select "Run in
compatibility mode".&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Next time: See if you can spot the social engineering hole in this model.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;hr&gt;
&lt;p&gt;UPDATE: It seems I mixed up virtualization with compatibility mode.&amp;nbsp; Fixed above (#2 and #6)&amp;nbsp;&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1922463" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/audiofool/archive/tags/Windows/default.aspx">Windows</category></item><item><title>More posts eventually!</title><link>http://blogs.msdn.com/audiofool/archive/2007/03/05/more-posts-soon.aspx</link><pubDate>Tue, 06 Mar 2007 05:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1813863</guid><dc:creator>RyanBemrose</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/audiofool/comments/1813863.aspx</comments><wfw:commentRss>http://blogs.msdn.com/audiofool/commentrss.aspx?PostID=1813863</wfw:commentRss><description>&lt;p&gt;It's that time of year, it seems.&amp;nbsp; I was down with the flu last week, and I'm 
trying desperately to catch up this week.&amp;nbsp; I promise I'll get more posts up 
soon.&amp;nbsp; I'm doing some WASAPI playback library stuff right now and I'm just dying 
to do a couple of articles about the new Vista audio APIs.&amp;nbsp; I'm also trying to 
figure out a way to work in some more usability stuff.&lt;/p&gt;&lt;p&gt;Meanwhile, to keep you occupied, here's a pretty cool demo of Vista's speech recognition engine.&amp;nbsp; The guy in the video is trying to program perl - a task for which Vista SR is clearly not designed.&amp;nbsp; He is apparently trying to make Vista look bad, but to me he really only manages to make himself look silly.&amp;nbsp; From the video one can immediately conclude two things:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Vista Speech Recognition is really quite good for documents and conversation.&lt;/li&gt;&lt;li&gt;For programming, stick to the keyboard.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;(Warning: NSFW.&amp;nbsp; Contains F-bombs and other colorful verbal frustruation as the protagonist tries to make the parsing engine emit perl-shaped line noise.&amp;nbsp; If you're at work, time to put on the headphones.)&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=MzJ0CytAsec" mce_href="http://www.youtube.com/watch?v=MzJ0CytAsec"&gt;http://www.youtube.com/watch?v=MzJ0CytAsec&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1813863" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/audiofool/archive/tags/Audio/default.aspx">Audio</category><category domain="http://blogs.msdn.com/audiofool/archive/tags/Windows/default.aspx">Windows</category><category domain="http://blogs.msdn.com/audiofool/archive/tags/Humans/default.aspx">Humans</category><category domain="http://blogs.msdn.com/audiofool/archive/tags/Usability/default.aspx">Usability</category></item><item><title>Vista Now Available</title><link>http://blogs.msdn.com/audiofool/archive/2007/01/29/vista-now-available.aspx</link><pubDate>Tue, 30 Jan 2007 08:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1555142</guid><dc:creator>RyanBemrose</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/audiofool/comments/1555142.aspx</comments><wfw:commentRss>http://blogs.msdn.com/audiofool/commentrss.aspx?PostID=1555142</wfw:commentRss><description>
&lt;p&gt;After &lt;a href="http://blogs.msdn.com/audiofool/archive/2006/11/08/and-for-my-encore-sleep.aspx" mce_href="http://blogs.msdn.com/audiofool/archive/2006/11/08/and-for-my-encore-sleep.aspx"&gt;months of waiting&lt;/a&gt;&amp;nbsp;it's released.&amp;nbsp; Go out and &lt;a href="http://www.windowsmarketplace.com/everythingvista" mce_href="http://www.windowsmarketplace.com/everythingvista"&gt;get yourself a copy&lt;/a&gt; already!&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1555142" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/audiofool/archive/tags/Windows/default.aspx">Windows</category></item><item><title>If it doesn't just work, then it doesn't work.</title><link>http://blogs.msdn.com/audiofool/archive/2006/12/14/if-it-doesn-t-just-work-then-it-doesn-t-work.aspx</link><pubDate>Thu, 14 Dec 2006 21:33:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1287511</guid><dc:creator>RyanBemrose</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/audiofool/comments/1287511.aspx</comments><wfw:commentRss>http://blogs.msdn.com/audiofool/commentrss.aspx?PostID=1287511</wfw:commentRss><description>&lt;p&gt;I'm passionate about usability, even to the point that my co-workers accuse me of whining.&amp;nbsp; I can't really help it.&amp;nbsp; I have to applaud products and features that streamline&amp;nbsp;a task, are intuitive, and fit well into the workflow.&amp;nbsp; And when a feature unnecessarily complicates the task, I have to call it out.&amp;nbsp; Poor usability goes against what computing is supposed to be about.&amp;nbsp; Way back in the early days of computing, BillG sold a dream to the world's people.&amp;nbsp; That this newfangled invention called a 'computer' was supposed to make everybody's lives easier.&amp;nbsp; It was supposed to boost productivity,&amp;nbsp;make routine tasks effortless, and make complicated tasks easier (or possible).&amp;nbsp; We've come a long way since then, and I'm happy to report that computers have, for the most part, done that.&amp;nbsp; But as you already know if you work with a computer regularly, there is a lot more work that could be done.&lt;/p&gt; &lt;p&gt;There's a funny thing about most computer users that we software folks don't usually get.&amp;nbsp; Most people don't get excited about technology for technology sake.&amp;nbsp;&amp;nbsp;My dad&amp;nbsp;doesn't want to know that&amp;nbsp;his data is on the C: drive, but his backups go to the D: drive.&amp;nbsp;&amp;nbsp;My&amp;nbsp;aunt doesn't need to understand what it means to defrag a hard disk, or think about how big a buffer&amp;nbsp;she need when burning a CD, and&amp;nbsp;my&amp;nbsp;mom&amp;nbsp;doesn't want to &lt;em&gt;have to &lt;/em&gt;care whether she has the right media codecs installed. &amp;nbsp;As far as the average computer user is concerned, a computers should just work.&amp;nbsp; Any time they have to think about how it works, it's not working properly.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Making computers just work&amp;nbsp;is one of the design goals behind Vista.&amp;nbsp; I won't say we've succeeded, but there are some pretty good examples, such as&amp;nbsp;wireless networking.&amp;nbsp; Want to connect?&amp;nbsp; Click on the network icon and it'll show you a list of networks in range.&amp;nbsp; Click the network you want to connect (and enter a security key if you haven't connected to this secured network before), and Vista does the rest.&amp;nbsp; A few seconds later, you're surfing the 'net.&lt;/p&gt; &lt;p&gt;Closer to home (for me), we've completely changed the way that you interact with audio devices in Windows.&amp;nbsp; In XP, you could open the control panel and set your sounds to your "Creative&amp;nbsp;123&amp;nbsp;audio&amp;nbsp;chipset" or&amp;nbsp;direct an application to record from your "SoundMax XYZ 987 codec".&amp;nbsp; But most folks don't understand what a 'codec' is, or think about their 'audio chipset'.&amp;nbsp; Most folks don't &lt;em&gt;want&lt;/em&gt; to understand.&amp;nbsp; When I look at my 'computer' on the floor next to my desk, I don't see an audio chipset.&amp;nbsp; I see a small 3.5mm hole labeled 'Speaker' or 'Line out', and so that's how Vista presents them.&amp;nbsp; Instead of picking&amp;nbsp;from a list&amp;nbsp;of internal audio devices, you just say you want your music to go to the front panel headphone jack, and Windows does the rest.&lt;/p&gt; &lt;p&gt;In the future, you'll probably read more about usability here, good and bad.&amp;nbsp; Building&amp;nbsp;good human interaction into a program is a Hard problem, and lots of smart people are working on it.&amp;nbsp; It's a problem space that I'm personally very interested in because, though I'm a programmer of some software, I'm a user of far more.&amp;nbsp; And if it's difficult for me, I can only guess how it's going to be for my mom and dad.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1287511" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/audiofool/archive/tags/Windows/default.aspx">Windows</category><category domain="http://blogs.msdn.com/audiofool/archive/tags/Usability/default.aspx">Usability</category></item><item><title>And for my encore...  Sleep.</title><link>http://blogs.msdn.com/audiofool/archive/2006/11/08/and-for-my-encore-sleep.aspx</link><pubDate>Wed, 08 Nov 2006 23:46:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1039742</guid><dc:creator>RyanBemrose</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/audiofool/comments/1039742.aspx</comments><wfw:commentRss>http://blogs.msdn.com/audiofool/commentrss.aspx?PostID=1039742</wfw:commentRss><description>&lt;p&gt;As you've almost certainly heard by now, we've finished.&amp;nbsp; &lt;a href="http://windowsvistablog.com/blogs/windowsvista/archive/2006/11/08/it-s-time.aspx"&gt;Windows Vista has shipped&lt;/a&gt;, and our mantle has passed on to the manufacturers, who now have a little over two months to stuff a hundred million DVDs into boxes and put them onto store shelves everywhere.&lt;/p&gt; &lt;p&gt;For those of you outside the company, this date really doesn't mean much, because you still won't see the finished product until it's out on a store shelf.&amp;nbsp; But internally, it's cause for celebration.&amp;nbsp; All of the&amp;nbsp;programming is finished, and the developers are now moving on to the next version.&amp;nbsp; There's a pretty good Q&amp;amp;A with svenh &lt;a href="http://www.microsoft.com/presspass/features/2006/nov06/11-08VistaRTM.mspx"&gt;up on presspass&lt;/a&gt; about what this means.&lt;/p&gt; &lt;p&gt;A couple weeks ago, Larry Osterman posted on a game&amp;nbsp;he dubbed&amp;nbsp;&lt;a href="http://blogs.msdn.com/larryosterman/archive/2006/10/25/last-checkin-chicken.aspx"&gt;Last Checkin Chicken&lt;/a&gt;.&amp;nbsp; What he didn't know when writing up that post was how close the "winner" would be.&amp;nbsp; The apparent last&amp;nbsp;checkin was a hardware compat fix by a dev on the audio team.&amp;nbsp; Not only that, but the bug was found with one of my test apps, so I'm close to it.&amp;nbsp; There's a part of me disappointed that I didn't help find this one sooner, thus saving the notoriety of being last, but mostly I'm just glad we were able to get the fix into the product at all.&lt;/p&gt; &lt;p&gt;I think November and December are going to be pretty dead around here.&amp;nbsp; We're in the planning stages for the next Windows, but now is the time that many people will take long-overdue vacations, put off during the ship stages of Vista.&amp;nbsp; With all these developers coming down from crunch time, one of the other devs here suggested that now would be a good time to sell your coffee stock.&amp;nbsp; Me?&amp;nbsp; I'm going to sleep in for a few days.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1039742" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/audiofool/archive/tags/Windows/default.aspx">Windows</category></item><item><title>Should you use Vista? I do.</title><link>http://blogs.msdn.com/audiofool/archive/2006/09/25/771120.aspx</link><pubDate>Mon, 25 Sep 2006 23:44:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:771120</guid><dc:creator>RyanBemrose</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/audiofool/comments/771120.aspx</comments><wfw:commentRss>http://blogs.msdn.com/audiofool/commentrss.aspx?PostID=771120</wfw:commentRss><description>&lt;p&gt;I'm completely switched over.&amp;nbsp; Aside from my two linux servers, every machine I run is on Vista, and the OS isn't even finished yet.&amp;nbsp; Since Beta 1 we've been asked to "Self Host" - to run Vista on our primary development and productivity machines.&amp;nbsp; On early Beta 1 builds, the stability wasn't so good, and the driver support was worse.&amp;nbsp; Self hosting was a chore that I dreaded.&amp;nbsp; It sometimes seemed like the decision was between productivity and self hosting.&amp;nbsp; The Beta 2 platform was stable enough to work, but performance wasn't that good.&amp;nbsp; Still, I kept filing bugs and the platform got better.&amp;nbsp; &lt;/p&gt; &lt;p&gt;My advice to anybody using a beta product: File bugs as early and often as possible against anything that bothers or annoys you.&amp;nbsp; If you intend to use the product long-term, it pays to have your personal pain points be addressed.&lt;/p&gt; &lt;p&gt;So here we are at RC1.&amp;nbsp; I've finally upgraded my last holdout Windows box yesterday, and am XP free.&amp;nbsp; There are still some nagging UI bugs and the occasional functionality glitch, but in the age of internet patches, updates, and hotfixes, the OS is release quality.&amp;nbsp; Yet we've got one more milestone to fix bugs.&amp;nbsp; I'm sold, and the following is a couple of reasons why.&lt;/p&gt; &lt;p&gt;I like the new development features.&amp;nbsp; I'm a developer, so I suppose I would.&amp;nbsp; The new development features like new APIs, rewritten audio and network stacks, and the DWM make possible program scenarios that just aren't possible anywhere else, most of which haven't even been envisioned yet.&amp;nbsp; A lot of these are hinted at by blogs on this site.&amp;nbsp; Unfortunately, if you're not a developer, you'll have to wait a few years before software catches up, but such is the way with new platform features.&amp;nbsp; Trust me, it's nice.&lt;/p&gt; &lt;p&gt;The new integrated features are handy.&amp;nbsp; Until I started using it, I never realized how much I use integrated desktop search.&amp;nbsp; I can finally author and burn CDs and DVDs from explorer (sadly, no .ISOs).&amp;nbsp; Per-app volume controls are very useful.&lt;/p&gt; &lt;p&gt;If you only wanted one reason for upgrading, it would be the security.&amp;nbsp; The more obvious security features are probably UAC, Windows Defender, and IE-low.&amp;nbsp; Each of these single-handedly obsoletes whole classes of malware.&amp;nbsp; The less obvious ones are infused into every OS component.&amp;nbsp; This is the first Microsoft consumer OS to be released with every single line of code vetted for security before and during each coding cycle.&amp;nbsp; These are the threat models that Larry Osterman talks about.&amp;nbsp; XPSP2 was a big improvement over XP Gold, and Vista is far more.&lt;/p&gt; &lt;p&gt;Vista now sells 32-bit and 64-bit versions right next to eachother.&amp;nbsp; Moving to a 64-bit OS is inevitable, so this is an important step.&amp;nbsp; Especially since my next machine will be 64-bit.&amp;nbsp; Now, if only 3rd-party apps would start compiling for the 64-bit platform.&lt;/p&gt; &lt;p&gt;Oh, and Aero Glass?&amp;nbsp; Very shiny.&amp;nbsp; Much eye candy.&amp;nbsp; Beautiful, if you have it.&amp;nbsp; Also, not really necessary.&amp;nbsp; A lot of electronic ink has been spilled over having to buy new video hardware just to run Vista, but it's not true.&amp;nbsp; I'm typing this on a notebook with an integrated Intel 915 Express, which, as of this writing, does not have a WDDM driver, and my experience isn't lessened.&amp;nbsp; Oh, it's nice to have Glass, and it will probably become necessary in the future as more apps support it, but anybody that tells you that you have to upgrade now to the newest video card doesn't have all the facts.&lt;/p&gt; &lt;p&gt;Overall, I only really need the following reason for running Vista.&amp;nbsp;&amp;nbsp;I have to use a Windows machine.&amp;nbsp; And even in its non-complete state, Windows Vista&amp;nbsp;is the best Windows ever&amp;nbsp;released.&amp;nbsp; It's better than 2k, 9x, and Srv2003.&amp;nbsp; And it's better than XP.&amp;nbsp; I can't wait until release.&amp;nbsp; My name is Ryan, and I'm a Windows Vista user.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=771120" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/audiofool/archive/tags/Windows/default.aspx">Windows</category></item><item><title>The Dancing Bunnies problem and the need for application-level security</title><link>http://blogs.msdn.com/audiofool/archive/2006/08/18/706708.aspx</link><pubDate>Sat, 19 Aug 2006 01:59:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:706708</guid><dc:creator>RyanBemrose</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/audiofool/comments/706708.aspx</comments><wfw:commentRss>http://blogs.msdn.com/audiofool/commentrss.aspx?PostID=706708</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/oldnewthing/"&gt;Raymond&lt;/a&gt; today has a &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2006/08/18/705957.aspx"&gt;discussion&lt;/a&gt; up about the folly of trying to set security with a granularity of per-DLL.&amp;nbsp; As&amp;nbsp;he explains, the moment you let something untrusted run in your process space, you cannot trust anything in the process.&amp;nbsp; You cannot wall off a DLL or a section of code from the rest of the process.&amp;nbsp; "That's why code is not a security principal," he concludes.&lt;/p&gt; &lt;p&gt;But you &lt;em&gt;can&lt;/em&gt; wall off a process.&amp;nbsp; There is an ACL associated with each running process (via its user context), so you &lt;em&gt;can&lt;/em&gt; restrict what code can do depending on its process.&amp;nbsp; More on that in a moment.&lt;/p&gt; &lt;p&gt;The other point&amp;nbsp;Raymond drives home is that, to the system, there is no difference between the application and the user.&amp;nbsp; Put another way, When an application has the credentials of a user and attempts to perform an operation, there is no good way for the system to know&amp;nbsp;whether&amp;nbsp;the app &lt;em&gt;asked the user&lt;/em&gt; before performing it.&amp;nbsp; Therefore, the only effective way to limit what an application can do is reduce its process ACL &lt;em&gt;when the application is launched&lt;/em&gt;, and then limit what it can do based on that.&lt;/p&gt; &lt;p&gt;So consider this in the context of the &lt;a href="http://blogs.msdn.com/larryosterman/archive/2005/07/12/438284.aspx"&gt;Dancing Bunnies problem&lt;/a&gt;.&amp;nbsp; There is a website which will let me download an executable to&amp;nbsp;watch dancing bunnies.&amp;nbsp; Conventional security wisdom says that the only way to be secure is to not download the executable.&amp;nbsp; This is obviously the most secure choice, from a technical standpoint, but the technical standpoint&amp;nbsp;goes on its ear when you add&amp;nbsp;a user to the equation.&amp;nbsp; Conventional security wisdom doesn't let me see my dancing bunnies, so I'm going to download it anyway.&amp;nbsp; When I run the executable, it takes on my user token, and suddenly the website's code has the full ability to do anything to my system that I can do -- and if I'm on a pre-Vista OS, that means admin access.&amp;nbsp; What's worse, it probably won't even bother to ask whether I want my system owned.&amp;nbsp; The nerve!&lt;/p&gt; &lt;p&gt;So somehow we&amp;nbsp;lost the most secure option (not downloading the exe) because it wasn't&amp;nbsp;acceptible to the user -- I couldn't see my dancing bunnies.&amp;nbsp; Without that most secure option, the only one left&amp;nbsp;is the least secure (system owned).&amp;nbsp; What I think we need is another status for the app.&amp;nbsp; I want an execution option that says "I want to see my dancing bunnies, but I don't want my system owned".&amp;nbsp; UAC on Vista does a very good job of preventing the system owned result, but a malicious program can still do a lot of damage.&amp;nbsp; Even better is the "low" security context that IE7 runs in by default on Vista, which can only access certain directories and APIs.&amp;nbsp; This mode is effectively the application-level security that I spoke of earlier.&lt;/p&gt; &lt;p&gt;What I'd like to see, as a partial answer to the Dancing Bunnies problem,&amp;nbsp;is the ability to download and save an app from the internet, and have that app marked as "untrusted".&amp;nbsp; When I launch the app, it launches in some sort of sandbox similar to the "low" security mode with restricted process permissions.&amp;nbsp; If&amp;nbsp;it's coded correctly then it shows me my dancing bunnies.&amp;nbsp; If it's malicious, then I haven't lost anything.&amp;nbsp; This is something that users will buy into.&lt;/p&gt; &lt;p&gt;Of course, we still have the social engineering problem of exes that tell the user they can only see dancing bunnies after they click away that nagging UAC prompt.&amp;nbsp; The way to fix that is to convince them that Microsoft is more trustworthy than Ye Olde Maliciouse Website.&amp;nbsp; When I come up with the solution to that one, I'll let you know.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=706708" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/audiofool/archive/tags/Programming/default.aspx">Programming</category><category domain="http://blogs.msdn.com/audiofool/archive/tags/Windows/default.aspx">Windows</category></item></channel></rss>