<?xml version="1.0"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
>
	<channel>


	
	
	
		<title>Martin's technology blog</title>
		<description></description>
		<link>http://www.rubli.info/t-blog/feed/../</link>
		<generator>Quip Content Management System</generator>

	
	
	
	
		<item>
			<title>Vista: User profile startup programs not executed</title>
			<link>http://www.rubli.info/t-blog/feed/../2008/09/17/vista-user-profile-startup-programs-not-executed/</link>
			<guid>http://www.rubli.info/t-blog/feed/../2008/09/17/vista-user-profile-startup-programs-not-executed/</guid>
			<category>Vista</category>			<comments>http://www.rubli.info/t-blog/feed/../2008/09/17/vista-user-profile-startup-programs-not-executed/#comments</comments>
			<dc:creator>Martin Rubli</dc:creator>
			<pubDate>Wed, 17 Sep 2008 17:34:11 +0000</pubDate>
			<description><![CDATA[
<p>If you thought buying a new computer and installing a fresh copy of the latest and greatest (only in terms of disk space usage, obviously) Windows Vista is a good start for productive computing then you obviously haven't reckoned with Microsoft's talent to break the simplest of features.</p>
<p>While setting up my system I eventually noticed some strange behavior: The startup programs that I had placed into the start menu were not executed. On the other hand, some startup programs seemed to be executed twice; in my case I ended up with two OneNote icons in the tray bar.</p>
<p>I didn't make the connection at first but a closer analysis showed that the links in</p>
<p><tt>C:\Users\martin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup</tt></p>
<p>were not executed on log in whereas the ones in </p>
<p><tt>C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup</tt></p>
<p>were executed twice.</p>
<p>A quick scan of the registry (which brought up a whole new bug, but more about that in the next article) quickly found the reason of this strange behavior.</p>
<p>In the</p>
<p><tt>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders</tt></p>
<p>path there is an entry called _Start Menu_, which, in my case, contained the following, erroneous path:</p>
<p><tt>%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Startup</tt></p>
<p>This obviously makes no sense because, as the registry path already indicates, these are the _User_ Shell Folders. All the other entries in the same registry location were correct though.</p>
<p>The fix was trivial, I simply just replaced it with the following:</p>
<p><tt>%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup</tt></p>
<blockquote>
<strong>Sidenote:</strong> There's a second registry location that also contained the wrong folder, though as a REG_SZ instead REG_EXPAND_SZ string and therefore without the environment variables:<br/>
<br/>
<tt>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders</tt><br/>
<br/>
Changing that one alone didn't have any immediately visible effect but to be on the safe side I would recommend changing that too.<br/>
<br/>
It's also funny to see that when you right click the Startup folder in the start menu and choose 'Open' or 'Open All Users' Explorer doesn't seem to retrieve the path from any of the above registry locations.
</blockquote>
<p>How the wrong path had gotten there in the first place is beyond me. But when I started thinking about it I suddenly remembered that I had fixed the exact same problem at one point during my very first <a href="/t-blog/2007/06/10/windows-vista-user-interface-part-1-the-good/">Vista experiment</a>. Apparently more than a year and one service pack later things haven't changed. Let's wait for Service Pack 2, maybe that will ... Nah ... Put a lid on that hope's coffin and nail it shut. Six (6.0?) feet under is where Vista hopes are at home.</p>]]></description>
		</item>


	
	
	
		<item>
			<title>ASUS NX1101 跟Vista六十四bit不能用</title>
			<link>http://www.rubli.info/t-blog/feed/../2008/09/09/asus-nx1101-gen-vista-64bit-bu-neng-yong/</link>
			<guid>http://www.rubli.info/t-blog/feed/../2008/09/09/asus-nx1101-gen-vista-64bit-bu-neng-yong/</guid>
			<category>Vista</category>			<comments>http://www.rubli.info/t-blog/feed/../2008/09/09/asus-nx1101-gen-vista-64bit-bu-neng-yong/#comments</comments>
			<dc:creator>Martin Rubli</dc:creator>
			<pubDate>Tue, 09 Sep 2008 14:08:07 +0000</pubDate>
			<description><![CDATA[
<p>_"ASUS Networks - Built to connect ..."_ Well, temporarily.</p>
<p>When I buy a network card there's one thing, above all, that I want it to do: connect and stay connected. Is that too much to ask for? Apparently it is when you buy an ASUS NX1101 and try to run it on a 64-bit Windows Vista.</p>
<p>It all started so well. After being scared off by the prices of PCIe network cards I decided to go with a good old PCI one. I bought it and headed home. After a quick search on Windows Update Vista automatically downloaded and installed the drivers. That's how it should be.</p>
<p>The next time I my computer wakes up from hibernation the first surprise. No network. Been there, done that, so I restart the Corega wireless/Ethernet router (necessary about two to three times per week even with the latest firmware) and try again. Nothing. Even pinging the router doesn't work. Only disabling the network and reenabling it brings the connection back to life.</p>
<p>Unfortunately it's not a one time thing, it's reproducible every single time, but not on XP 32-bit. So I start looking for an updated driver and, of course, I find one on their website. Actually, I find two of them - only ASUS knows why, - so I take the <a href="http://dlsvr04.asus.com/pub/ASUS/Networking/Adaptor/NX1101/DR_NX1101_304080130_VISTA.zip">newer one</a> because the older one is identical to the one that Windows downloaded automatically.</p>
<p>In an optimistic mood I start installing it but after a while Windows complains the driver is not intended for my platform. I double check that I have the right driver but the folder name says 64-bit and the INF file looks okay. Awesome.</p>
<p>More or less by accident I notice something:</p>
<p><img src="/t-blog/images/asus-nx1101-zero-byte-driver.png" alt="untitled" title="untitled"/></p>
<p>That's right. The driver binary is 0 bytes in size. Either this is just the slimmest driver ever or somebody at ASUS' quality assurance lab must have a very sound sleep. And some other people too given that the "driver" has been online for about four months.</p>
<p>Being a driver developer myself I'm pretty understanding when it comes to power management bugs, but putting up a zero byte driver is far from excusable. Especially if the support form and live chats don't work.</p>
<p>Today I brought my card back to the store and got a new D-Link one (DGE-530T). So far it works like a charm, even after hibernating.</p>
<p>There's an upside to the story though: Apparently my Chinese, limited as it is, is now good enough to get a broken network card exchanged and buy a new one. By the amount my confidence in ASUS has shrunk my self-conficence has grown. That's not half bad. :-)</p>]]></description>
		</item>


	
	
	
		<item>
			<title>Quoting strings in INF AddReg sections</title>
			<link>http://www.rubli.info/t-blog/feed/../2008/08/05/quoting-strings-in-inf-addreg-sections/</link>
			<guid>http://www.rubli.info/t-blog/feed/../2008/08/05/quoting-strings-in-inf-addreg-sections/</guid>
			<comments>http://www.rubli.info/t-blog/feed/../2008/08/05/quoting-strings-in-inf-addreg-sections/#comments</comments>
			<dc:creator>Martin Rubli</dc:creator>
			<pubDate>Tue, 05 Aug 2008 07:35:04 +0000</pubDate>
			<description><![CDATA[
<p>The syntax of the INF files controlling Windows driver installation can be a little tricky at times. In this particular case I was trying to add a registry key whose value contains some quoted paths. It took me several attempts to get it right and the <a href="http://msdn.microsoft.com/en-us/library/ms794543.aspx">help on INF strings sections</a> was also rather cryptic and not very helpful with its lack of examples.</p>
<p>I wanted to create a key with the following value (of course the actual example was slightly different but this will do to illustrate the problem):</p>
<p><code>
"C:\Program Files\MyTool\Run.exe" -datadir"C:\Program Files\MyTool\data\" -debug -title"MyTool" -verbose
</code></p>
<p>Here's the solution (or should I say: the closest I got):</p>
<p><code>
[MyTool.Addreg]<br/>
HKLM,Software\Me\MyTool,Command,0x00000000,"""C:\Program Files\MyTool\Run.exe""" -debug -datadir"""C:\Program Files\MyTool\data\""" -title"""MyTool""" -verbose""
</code></p>
<p>The documentation states:</p>
<blockquote>[...] any string [...] that is itself a quoted string, must be enclosed in a pair of double quotation marks characters [...]</blockquote>
<blockquote>
The INF parser not only discards the outermost pair of enclosing double quotation marks for any "quoted string" in this section, but also condenses each subsequent sequential pair of double quotation marks into a single double quotation marks character. That is, """some string""" also becomes "some string" when it has been parsed.
</blockquote>
<p>The second paragraph is slightly beyond my understanding, in particular considering some of my intermediary test results that you can find at the bottom.</p>
<p>The first paragraph at least explains the double quotes at the end. Inside the string all quotes also need to be tripled.</p>
<p>The beginning of the remains somewhat of a mystery to me. The triple quote at the beginning of the string is converted into a single quote in the registry.</p>
<p>To make matters worse, Microsoft's own ChkInf, which comes with the DDK, doesn't like any of the working solutions. It doesn't accept any less than four quotes at the end of the string. However, with more than two quotes at the end of the string, the resulting registry ends up containing a trailing quote. Anything with two or fewer (one and zero also work but at least seem syntactically incorrect to me) works fine with regard to the end result.</p>
<p>As I promised, here are some of my intermediary results. The slightly simplified AddReg commands and the corresponding result behind the semicolon:</p>
<pre>
HKLM,,TestA,0x00000000,"""Some string"""              ; "Some string"
HKLM,,TestB,0x00000000,""Some ""quoted"" string""     ; Some string
HKLM,,TestC,0x00000000,""Some "quoted" string""       ; Some string
HKLM,,TestD,0x00000000,""Some \"quoted\" string""     ; Some \quoted\ string
HKLM,,TestE,0x00000000,""Some """quoted""" string""   ; Some "quoted" string
</pre>
<p>Is anyone wondering why Microsoft didn't just adopt the syntax of one of the many programming languages out there where similar problems are unheard of? The developers could have just copied the code from MSVC (or any of the other hundreds of MS implementations of the same algorithm) and users wouldn't have to even read the documentation. But heaven forbid a win-win situation!</p>]]></description>
		</item>


	
	
	
		<item>
			<title>OS detection in a Windows shell script</title>
			<link>http://www.rubli.info/t-blog/feed/../2008/07/10/os-detection-in-a-windows-shell-script/</link>
			<guid>http://www.rubli.info/t-blog/feed/../2008/07/10/os-detection-in-a-windows-shell-script/</guid>
			<category>Vista</category>			<comments>http://www.rubli.info/t-blog/feed/../2008/07/10/os-detection-in-a-windows-shell-script/#comments</comments>
			<dc:creator>Martin Rubli</dc:creator>
			<pubDate>Thu, 10 Jul 2008 07:26:35 +0000</pubDate>
			<description><![CDATA[
<p>There seem to be many ways to detect the Windows version (e.g. XP vs. Vista) from a batch file, <a href="http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/MS_DOS/Q_21127676.html">some of them</a> fairly complicated. It's not exactly as easy as it should be because there's no decent environment variable and the output of ver is difficult to parse.</p>
<p>However, I found the following to work just fine:</p>
<pre style="width: 75%; border: 1px solid #B3B9C3; overflow: auto;">
: OS detection
for /f "tokens=3" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion') do (
	set WindowsVersion=%%i
)
if "%WindowsVersion%"=="5.1" set IsWindowsXP=1
if "%WindowsVersion%"=="6.0" set IsWindowsVista=1<br/>
: Show some debug information
echo Windows version: %WindowsVersion%
if defined IsWindowsXP echo IsWindowsXP = true
if defined IsWindowsVista echo IsWindowsVista = true
</pre>]]></description>
		</item>


	
	
	
		<item>
			<title>Integrating Flex and Bison into Visual Studio</title>
			<link>http://www.rubli.info/t-blog/feed/../2008/05/19/integrating-flex-and-bison-into-visual-studio/</link>
			<guid>http://www.rubli.info/t-blog/feed/../2008/05/19/integrating-flex-and-bison-into-visual-studio/</guid>
			<comments>http://www.rubli.info/t-blog/feed/../2008/05/19/integrating-flex-and-bison-into-visual-studio/#comments</comments>
			<dc:creator>Martin Rubli</dc:creator>
			<pubDate>Mon, 19 May 2008 08:18:20 +0000</pubDate>
			<description><![CDATA[
<p>There's a pretty good tutorial from Microsoft (what do you know, they &lt;em&gt;do&lt;/em&gt; like open source ;-) about how to integrate Flex and Bison into Visual Studio:</p>
<p><a href="http://msdn.microsoft.com/en-us/library/aa730877(VS.80).aspx#vccustombr_topic3">Understanding Custom Build Rules in Visual C++ 2005: Building Flex and Bison Files from the IDE</a></p>
<p>Unfortunately I ran into a problem after integrating it into my project. Flex kept crashing with the following output:</p>
<pre style="margin-left: 2em; padding: 1em; background-color: #CBE4FF;">
1>------ Build started: Project: MyProject, Configuration: Debug Win32 ------
1>Generating lexical analyser...
1><span style="color: red;">flex: fatal internal error, exec failed</span>
1>Project : error PRJ0002 : Error result 1 returned from 'C:\WINDOWS\system32\cmd.exe'.
1>Build log was saved at "file://C:\MyProject\Debug\BuildLog.htm"
1>MyProject - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
</pre>
<p>Some experiments showed that Flex was unable to find M4 (i.e. m4.exe) and then crashed with the above not-so-helpful error message.</p>
<p>The workaround is easy: Make sure that either m4.exe is in the path or set the M4 environment variable. Since I use a somewhat special directory structure for Flex, Bison, and some other tools I already had a wrapper script in place, so integration was easy:</p>
<pre style="margin-left: 2em; padding: 1em; background-color: #CBE4FF;">
: Wrapper script for Flex
:
: This script sets some environment variables that are required for Flex to
: find all its libraries and helper files/tools.<br/>
@echo off<br/>
: Determine the path of the wrapper script
set GNU_PATH=%~d0%~ps0<br/>
: Set PATH for cygwin1.dll and M4 for the M4 tool itself.
: If we don't define M4 Flex fails with the following error message:
: "flex: fatal internal error, exec failed"
set PATH=%GNU_PATH%\lib;%PATH%
set M4=%GNU_PATH%\bin\m4.exe<br/>
: Launch the real Flex executable with the same arguments
%GNU_PATH%\bin\flex.exe %*</pre>
<p>In case you're wondering, the directory structure I'm using looks something like this:</p>
<pre style="margin-left: 2em; padding: 1em; background-color: #CBE4FF;">
%GNU_PATH%
¦   bison.cmd
¦   flex.cmd
¦
+---bin
¦       bison.exe
¦       flex.exe
¦       m4.exe
¦
+---lib
¦       cygwin1.dll
¦
+---share
    +---bison
        ¦
        +---m4sugar
                m4sugar.m4
</pre>
<p>You can see the two wrapper scripts at the top level.</p>
<p>For completeness' sake the wrapper script for Bison, which defines one additional variable, so that Bison can find its M4 helper files:</p>
<pre style="margin-left: 2em; padding: 1em; background-color: #CBE4FF;">
: Wrapper script for Bison
:
: This script sets some environment variables that are required for Bison to
: find all its libraries and helper files/tools.<br/>
@echo off<br/>
: Determine the path of the wrapper script
set GNU_PATH=%~d0%~ps0<br/>
: Set PATH for cygwin1.dll, BISON_PKGDATADIR for the M4 meta files
: and M4 for the M4 tool itself.
set PATH=%GNU_PATH%\lib;%PATH%
set BISON_PKGDATADIR=%GNU_PATH%\share\bison
set M4=%GNU_PATH%\bin\m4.exe<br/>
: Launch the real Bison executable with the same arguments
%GNU_PATH%\bin\bison.exe %*
</pre>
<p>By the wy, if you use Lex in your Visual Studio project, you may also want to check out <a href="http://zverovich.net/node/13">this article</a> which documents a bug in Microsoft's original FlexBison.rules file.</p>]]></description>
		</item>


	
	
	
		<item>
			<title>The little window that couldn't</title>
			<link>http://www.rubli.info/t-blog/feed/../2007/11/21/the-little-window-that-couldnt/</link>
			<guid>http://www.rubli.info/t-blog/feed/../2007/11/21/the-little-window-that-couldnt/</guid>
			<category>Office 2007</category>			<comments>http://www.rubli.info/t-blog/feed/../2007/11/21/the-little-window-that-couldnt/#comments</comments>
			<dc:creator>Martin Rubli</dc:creator>
			<pubDate>Wed, 21 Nov 2007 15:02:23 +0000</pubDate>
			<description><![CDATA[
<p>Not only is the new user interface in Office 2007 one of the biggest usability steps backwards I've ever seen in a Microsoft program, the implementation of the new look seems to have a few interesting "features" like this one:</p>
<p><img src="/t-blog/images/excel2007-window.png" alt="untitled" title="untitled"/></p>
<p>That's right. This is my Excel window the way it shows up about 70% of the times I launch it. The "feature" auto-enabled itself a few weeks ago and hasn't gone away since. The only solution? Restart Excel a few times and trust the law of probability--praised be my beloved keyboard shortcuts.</p>]]></description>
		</item>


	
	
	
		<item>
			<title>The most basic computer skill</title>
			<link>http://www.rubli.info/t-blog/feed/../2007/11/06/the-most-basic-computer-skill/</link>
			<guid>http://www.rubli.info/t-blog/feed/../2007/11/06/the-most-basic-computer-skill/</guid>
			<category>Logitech</category>			<category>Darwin at work</category>			<comments>http://www.rubli.info/t-blog/feed/../2007/11/06/the-most-basic-computer-skill/#comments</comments>
			<dc:creator>Martin Rubli</dc:creator>
			<pubDate>Tue, 06 Nov 2007 03:34:26 +0000</pubDate>
			<description><![CDATA[
<p>Creating a community website is not only quite satisfying because you get to see how customers actually use your products, sometimes it's also quite funny. A few weeks ago Logitech launched the <a href="http://www.quickcamteam.net/">QuickCam Team website</a> which targets developers and users of webcams on alternative platforms and just by looking at it it should be pretty obvious that we don't do product support. (And if it's not obvious enough there's a big fat note on the contact page.) Nevertheless, some people try their luck by reporting random, completely unrelated issues that are poorly phrased and impossible to understand. Here's a funny example:</p>
<blockquote>
Subject: Logitech QuickCam 4000<br/>
</br>
Can you please give me <b>detailed instructions</b> on how to make it impossible for anyone to change my password or otherwise get around it? This is urgent. Thank you.
</blockquote>
<p>Somewhat confused by the subject I assumed that the person was referring to her newly created account for the QuickCam Team forums:</p>
<blockquote>
I neither understand the subject of your e-mail nor the idea behind your request. What are you trying to achieve? What do you mean by "get around it"?
</blockquote>
<p>And once again, the response was no less confusing than the original e-mail:</p>
<blockquote>
I created a password for access to the camera images. Now the password box <b>will not recognize my password</b>.<br/>
This problem is preventing me from shutting down the computer. I cannot close the image studio, nor shut down the computer.<br/>
How can I <b>permanently erase</b> the password?
</blockquote>
<p>Part of me wants to help a confused user but a much bigger part of me wants to actually see the live stream from her webcam showing her sitting in front of her computer that apparently doesn't shut down because she forgot the password to a long obsolete piece of software. Not because I like seeing desperate users or because I hate technically challenged people, but because people need to learn to read. If your butcher has a sign outside that says "I don't bake bread" you don't go inside and ask for croissants. Using a computer is not like watching TV. It needs many skills, and reading is the most important one.</p>]]></description>
		</item>


	
	
	
		<item>
			<title>Not enough space or not enough brain?</title>
			<link>http://www.rubli.info/t-blog/feed/../2007/11/02/not-enough-space-or-not-enough-brain/</link>
			<guid>http://www.rubli.info/t-blog/feed/../2007/11/02/not-enough-space-or-not-enough-brain/</guid>
			<category>Vista</category>			<comments>http://www.rubli.info/t-blog/feed/../2007/11/02/not-enough-space-or-not-enough-brain/#comments</comments>
			<dc:creator>Martin Rubli</dc:creator>
			<pubDate>Fri, 02 Nov 2007 16:00:27 +0000</pubDate>
			<description><![CDATA[
<p>Read carefully and think about it for a while:</p>
<p><img src="/t-blog/images/not-enough-space.png" alt="Vista Explorer error message: Not enough space" title="Vista Explorer error message: Not enough space"/></p>
<p>There are so many aspects of this dialog box that I don't understand, it's not even funny. How about freeing up some space by uninstalling the very cause of this dialog box?</p>]]></description>
		</item>


	
	
	
		<item>
			<title>California Spam Building</title>
			<link>http://www.rubli.info/t-blog/feed/../2007/08/15/california-spam-building/</link>
			<guid>http://www.rubli.info/t-blog/feed/../2007/08/15/california-spam-building/</guid>
			<category>Blog</category>			<comments>http://www.rubli.info/t-blog/feed/../2007/08/15/california-spam-building/#comments</comments>
			<dc:creator>Martin Rubli</dc:creator>
			<pubDate>Wed, 15 Aug 2007 15:54:57 +0000</pubDate>
			<description><![CDATA[
<p>Unbelievable to what trouble certain companies go to improve their search engine ranking. I just received the following two comments to some fairly old articles: (Click the picture to see the corresponding article--obviously I have removed the spam comments.)</p>
<p><a href="/blog/2007/03/20/stepping-on-it/"><img src="/blog/photos/blog-spam-2.png" alt="Blog spam by a California Team Building site" style="border: 1px solid #605566"></a></p>
<p><a href="/blog/2007/06/06/gifts/"><img src="/blog/photos/blog-spam-1.png" alt="Blog spam by a California Team Building site" style="border: 1px solid #605566"></a></p>
<p>Clearly this is a real person and not just a script because the text--sort of--makes sense and because my blog has a pretty nifty anti spam option that hasn't failed a single time so far.</p>
<p>Is it really worth the money? It looks like it took him more than 10 minutes to write two comments. Does the guy do this in his own time? Does he have any friends at all? And has he ever heard of the <a href="http://googleblog.blogspot.com/2005/01/preventing-comment-spam.html">rel="nofollow"</a> attribute that most search engines respect? (Whether that tag really has helped reduce blog comment spam is a whole other story.)</p>
<p>If you care to see some more examples (without a doubt in the next few days more results will show up), <a href="http://www.google.com/search?q=blog+comment+%22california+team+building%22&amp;num=50&amp;ie=utf-8&amp;oe=utf-8">search Google for «blog comment "California Team Building"»</a>.</p>
<p>That being said, I really appreciate true comments to my articles, so don't hold them back on purpose. ;-)</p>]]></description>
		</item>


	
	
	
		<item>
			<title>MSN viruses</title>
			<link>http://www.rubli.info/t-blog/feed/../2007/07/26/msn-viruses/</link>
			<guid>http://www.rubli.info/t-blog/feed/../2007/07/26/msn-viruses/</guid>
			<category>Instant messenger</category>			<comments>http://www.rubli.info/t-blog/feed/../2007/07/26/msn-viruses/#comments</comments>
			<dc:creator>Martin Rubli</dc:creator>
			<pubDate>Thu, 26 Jul 2007 14:24:12 +0000</pubDate>
			<description><![CDATA[
<p>In the last two days I've received viruses over MSN messenger on two different occasions. Both times, they seemed to come from friends of mine. The first one was in the form of the following message and came with a simple link:</p>
<pre>
Vote for me:
http://22460.vasedrunjinsaterfuns.com/2215/67179/
</pre>
<p>At the time of this writing the link above still works and downloads a file called vote.zip. The file is not actually a ZIP archive, instead it's a simple Windows executable. Now, I don't know how people are supposed to be tricked into executing it, because simply double clicking it obviously won't do any damage, but maybe something to do with MSN users' habits of renaming .exe to .zip before sending them?</p>
<p>A scan of the file with the pretty good multi-engine scanner over at <a href="http://www.virustotal.com/">Virus Total</a> found a _Stration_ worm, which originated as an e-mail worm and is now apparently broadening it's infection horizon.</p>
<p>The second one was a little trickier, it actually managed to infect my boss and a co-worker of mine from whom I then received the following message, immediately followed by an incoming file request for images.zip:</p>
<pre>
Sup, seen the pictures from the other night?
</pre>
<p>A few things were obviously suspicious here:</p>
<p>* My friend just doesn't talk like that. As a matter of fact, few people use uppercase in IM nowadays and I think the last time somebody used "Sup" was last decade. (I may be wrong on the latter one though ...)<br/>
* The file was called images.zip yet contained only a single file. Nobody zips a single image because they can't be compressed anyway, and especially not one of some 40 kB.<br/>
* The "image" that was contained was called IMG34814.pif, with an extension that is more than suspicious, but might slip the eye of someone who hasn't been suspicious up until now.<br/>
</p>
<p>I can hardly blame the average Joe for becoming infected with the second one, so the blame goes--*fanfare*--to Microsoft for two reasons.</p>
<p>## Apparently, the current version of Windows Messenger is scriptable to an extent that is so obviously dangerous that I can't believe the functionality is still in there.<br/>
## Despite Microsoft proclaiming Vista to be the <a href="http://www.microsoft.com/windows/products/windowsvista/editions/choose.mspx">most secure Windows ever</a>, .pif files are still executed without warning.</p>
<p>The second point is especially grave for a number of reasons. Because of the nature of the PIF file format it does not contain any executable code but only meta information, so it could be easily be checked for authenticity. What's worse is that extremely few people have used .pif files ("<a href="http://en.wikipedia.org/wiki/PIF_file">program information files</a>") after Windows 3.1, so either displaying a very obvious warning message or dropping the registration of the .pif extension altogether would not disrupt anyone.</p>
<p>If you want to disable .pif files on your system, you can use the following registry change to do so (or download <a href="/t-blog/files/disable_pif_files.reg">this .reg file</a> and double click it):</p>
<pre>
HKEY_CLASSES_ROOT\.pif\(Default) = "piffile_disabled"
</pre>]]></description>
		</item>


	</channel>
</rss>
























