POSTS FOR 2005

Conditional Comments in Standalone Internet Explorer

Browsers395 words2 minutes to read

This was written by Manfred Staudinger from Vienna, Austria

With a small, one-time change, Conditional Comments will work again and recognize the values 5.0 and 6.0, again; however, it will not recognize 5.5. How is it done? Go to the registry and look in HKLM\Software\Microsoft\Internet Explorer\Version Vector\ for the key IE. Simply get rid of it by renaming it to zIE — that’s it!

As I had installed IE 6.0, I looked into the registry for its version number “6.0.2800.1106” and found 7 entries in HKLM, 3 of them belonging to the key “Internet Explorer”: Wizard Version, Version and Build. I looked also into the module iexplore.exe and found this information 4 times. All these 11 occurrences appear to be character data with minor variations in format, but no one was compatible with the design for the Conditional Comments!

So to meet the specifications, a new structure was created, the “Version Vector”. IE reads the information (currently 5.0002, 5.5000, or 6.0000) from there when it is started: if the program cannot find it, it gets the information from the module. This also means that IE has to be closed and restarted to get the change.

Now in case of IE 5.5 we can see the incompatibility which forced the creation of a new structure: CC gives true for “gte IE 5.999” and “lte IE 5.9990”! As CC cannot be nested there is no way to identify IE 5.5 properly.

For example the following CC’s will work even with multiple IE’s installed:

  1. “if IE 6” or “if IE 6.0” — for use with IE 6.0
  2. “if IE 5” or “if lte IE 5.5” — for use with IE 5.01 and 5.5
  3. “if IE 5.0” — for use with IE 5.01
  4. “if gte IE 5.5” — for use with IE 5.5 and 6.0
  5. “if IE” or “if lte IE 6.0” — for use with IE 5.01, 5.5, and 6.0

This CC will still not work when multiple IE’s are installed:

  1. “if IE 5.5” — for use with IE 5.5

To see this run the above mentioned test. For better understanding CC you might want to read About Conditional Comments.

I have tested quite a lot on my Win98, but as the whole structure was build exclusively for CC, I would expect no real problems with later versions.

You can discuss this further at the Skyzyx Support Forums.

Ryan Parman

Ryan Parman is an experienced Software/DevOps/Security engineer, currently living in Seattle. He is the creator of and , patented multifactor-authentication-as-a-service at , and came up with the idea of “serverless, event-driven, responsive functions in the cloud” while at AWS in 2010. Ryan's aptly-named blog, , is where he writes about ideas longer than . Ambivert. Curious. Not a coffee drinker.