Saturday, January 07, 2006

IE7 & SW 2005 - Follow up

Editted to Add:

Due to several attemps to spam the comments, they are disabled on this post.

If you want to share your opnions and information, please, do so at pjondevelopment (at) gmail (dot) com.


I sent an email to Symantec today about the error I got after installing IE7, and I got an automated message that say they will reply in 24 to 48 hours.

So while I'm waiting I did some research about this error and some digging in the System Works.

I took a good look at the error message that stated that the error has occurred at this URL: res://fwui.dll/ruleSummary.htm.

Well, it says in almost plain English that the error occurred in a Resource in the fwui.dll.

The next thing I did was to search for the said file and then I started my Visual Studio 2005 and opened the file. And there it was:
fwUI.dll
Bitmap
Cursor
Dialog
HTML
Icon
"REGISTRY"
String Table
"TYPELIB"
Version
Everything I needed to find out what was wrong.

I went straight to the HTML branch and took a look at it.

There are several items there and the one I was looking for: "RULESUMMARY.HTM".

Reading this file I discovered that it is a pretty simple HTML file, with not much of a thing to look at anyway. But there are some scripts and the most interesting was named RuleSummary.js.

Opening this file and referring to the error message I got I went straight to the line of error (476), and discovered that it was inside a block code that should be only executed if the IE was lower than 5.

I scratched my head. Was IE7 reporting a wrong version number?

That didn't seem right. But I tested anyway and it reported 7 sure enough.

Therefore the error should be in the code I was looking.

The test for the IE version was:
if (g_IEVer < 5)
So I went looking for the assignment of g_IEVer and I found it as being:
var g_IEVer = GetIEVersion();
But no sign of the GetIEVersion function in the code I was looking at.

I went back to the HTML file I looked at first. There was another interesting script there by the name shared.js in another resource file, the niscmnht.dll.

I opened this file and searched for the shared.js script. And then I looked for the GetIEVersion function. Where I quickly discovered the error.
function GetIEVersion()
{
// convert all characters to lowercase to simplify testing
var agt = navigator.userAgent.toLowerCase();

// Note: On IE5, these return 4, so use is_ie5up to detect IE5.
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);

// BROWSER VERSION
var is_ie = (agt.indexOf("msie") != -1);
var is_ie3 = (is_ie && (is_major < 4));
var is_ie4 = (is_ie && (is_major == 4) &&
(agt.indexOf("msie 5.") == -1));
var is_ie4up = (is_ie && (is_major >= 4));
var is_ie5 = (is_ie && (is_major == 4) &&
(agt.indexOf("msie 5.") != -1) );
var is_ie5up = (is_ie && !is_ie3 && !is_ie4);
var is_ie6 = (is_ie && (is_major == 4) &&
(agt.indexOf("msie 6.") != -1));

if(is_ie6)
return 6;
else if(is_ie5up)
return 5.5;
else if(is_ie5)
return 5;
else if(is_ie4)
return 4;
else if(is_ie3)
return 3;

return -1;
}
Do you see the error?

There is no test for IE7. Worse, it could have been done much more easier with regular expressions.

A better approach with the same results and upgradeable to ANY version of the IE could be:
function GetIEVersion()
{
var agt = navigator.userAgent.toLowerCase();

var is_major = parseInt(navigator.appVersion);

var is_ie = (agt.indexOf("msie") != -1);
var is_ie3 = (is_ie && (is_major < 4));

// It's not IE so we don't care
if (!is_ie)
return (-1);

// It's IE3 report it
if (is_ie3)
return (3);

// It's IE4+ so we can use RegExp
var rxIE = new RegExp("msie\\s(\\d+.\\w+)","ig");
var arIEResult = rxIE.exec(agt);

// arIEResult[0] contains the whole match
// arIEResult[1] contains the first matching group
// in our case the full version
//
// We use parseFloat because we want a number
return (parseFloat(arIEResult[1]));
}
Unfortunately I can't edit the file without risking my whole System Works, but now it's pretty easy for the folks at Symantec to fix the problem A.S.A.P.

Editted to Add:
You can can read the Symantec reply here.

Editted to Add:
Several people have in the past asked me for a fixed version of the niscmnht.dll file. However I wasn't able to provide at that time due some personal conflicts.

I was trully hoping that Symantec would sometime fix this darn file. But after more than three years since the first publication of this post, no such thing happened.

So I'm publishing a fixed version of this file here.

Simply unzip the fixed file over the old one.

If in some happenstance the file is in use, unzip it on another folder, boot up in Security Mode, and copy the file over the old one.

As always, remember to backup your original file BEFORE copying it over.

DISCLAIMER

This file is provided "AS IS", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement.

In no event I shall be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software

Use it at your own risk.

25 Comments:

Blogger WhiteDoGG said...

WOW! Thank You!

Acctually I've been lookin all over the net for at least a little clue about what that error is.
There is nothing on it in the Symantec support website.

Do you know how can I fix it without reinstalling my IE?
Cuz it's really buggin me out. I can't configure my firewall, therefore my computer connection is too slow and does pose a threat.

Thank you again for the above.

2/07/2006 8:38 AM  
Blogger Edgar said...

I fixed it by manually adding the IE test to the javascript in niscmnht.dll and i seems to be solved...I can edit the rules again. I can send you the modded file if you like (If you are not familiar with ResourceHacker don't try it yourself). Just leave an emailaddress in this blog.

2/07/2006 6:21 PM  
Blogger Edgar said...

Better still: download it from here: http://www.citadel.nu/file/niscmnht.dll

Please check the file on viruses or other crap (although I did not put it there, but to be sure)

2/07/2006 6:23 PM  
Blogger jern said...

Edgar can you please send me the modified niscmnht.dll file? I'd really appreciate it. Thanks in advance.

adrian.z@netzero.net

10/27/2006 11:07 AM  
Blogger v_madhu said...

The error was sorted out for me by first uninstalling Symantec Client Security, restarting my machine, reinstalling and restarting my machine again.

11/07/2006 1:40 PM  
Anonymous Anonymous said...

I have edited the dll using the new code supplied by pjondevelopment in A. Jordan's post. BTW i used a program called PE Explorer free 30 day trial to edit the dll.

I just reinstalled windows so i will be testing the functionality of my new dll after i update windows and internet explorer.

Will let people know how it works and the dll will be available by email. (If i was successful)

The only thing im worried about is whether the dlls are the same throughout the norton products (and therefore if my edited dll from my norton internet security 2005 antispyware edition will work for people with different programs or versions). Worst comes to worst.. people can email me their existing niscmnht.dll and i can edit it for them and reemail the fixed versions.

Anyone with any info please post.

12/07/2006 10:04 PM  
Anonymous Anonymous said...

I was successful in fixing the problem!!

I have updated to internet explorer 7 and my norton problems started. I then replaced the dll with the edited version i made and it works fine. If anyone wants the fix or instructions on how to do it post your email address and ill respond accordingly.

Please verify that your niscmnht.dll is the same version as mine.. do a search for it.. rt click on it and go to properties..version tab.. then click on file version and it should be 8.2.0.23

If it isnt that version... post me your email and ill email you so you can send me a copy of your dll and ill edit it and sent it back to you.

PROBLEM SOLVED

12/08/2006 5:47 AM  
Anonymous Anonymous said...

Edgar, for some reason I can not down load the niscmnht.dll
from the URL you provided. Can you e-mail me a copy at
elgetz@cableone.net

Many thanks.

12/10/2006 9:32 PM  
Anonymous Anonymous said...

ok so ive made a new email address for myself so people can send me their files. It is errorhelp@gmail.com

This is to prevent spam to my real email.

BEFORE you email me your files.. please run liveupdate to your norton product to verify that you have the most current files . Run it repeatedly until it tells you everything is current (reboot your computer in between update sessions) When it tells you they are current then reboot then check if your problem is fixed and if not THEN send me an email.

So anyone who email s me please include:

1. The name of the product you are using

2. the error message u are getting and what you were doing when you got the error

3. please attach your niscmnht.dll in your email . I will edit it for you and email it back to u to fix your problem.

if you dont know how to do that: go to sart.. then click search..all files and folders...type in niscmnht.dll . do a search for it.. rt click on it and copy..then go to your desktop and rt click and paste.. now you can find the file to attach it in an email to errorhelp@gmail.com

12/13/2006 3:43 AM  
Anonymous Anonymous said...

I would just like to pass on my thanks. I have been having this problem for ages and Symantec help was a waste of time, so I did as you explained earlier. I downloaded the trial version of PE Explorer and edited the file for Internet security 2005 and now it all works again. Once again thanks very much.

P.S.
I even emailed Symantec this web address so as they might try and fix it for everyone, but I think they are trying to get people to upgrade to the latest products !!

1/28/2007 10:47 PM  
Blogger Lucie said...

Edgar can you please send me the modified niscmnht.dll file? I'd really appreciate it. Thanks in advance.
lucie.fuster@externe.bnpparibas.com

2/05/2007 9:16 AM  
Blogger John said...

I used ResourceEditor to post your "fixed" code into the dll file. It works great! I haven't used it enough to see if it will affect another part of Norton, but so far I haven't had any related errors. Thank you!

2/05/2007 9:11 PM  
Blogger Sugar said...

Hi - here is an alterate download link for the edited .dll

Backup old file (search for niscmnht.dll on your system)

modified niscmnht.dll (right click - save target)

The file is clean, but run a virusscan anyways - it never hurts.

2/25/2007 11:29 AM  
Blogger Wild said...

Hi,

I found workaround to solve Symantec szModify script error without modifying dll.

Because problem is in user agent, solution is to make ie7 fake it self as ie 6.

There are reg-files at http://www.fiddlertool.com/useragent.aspx. If you want to change Symantec Client Security rules, run first IE6SP2.reg, modify rules at firewall and restore old information by using UA_UNDO.reg. You don't need to close browsers between changes. Worked for me. However, do it on your own risk.

Cheers wildfin(a)gmail.com

3/07/2007 11:17 AM  
Blogger lmourin said...

Hi all, I'm just try Registry keys as suggest by WILD member forward to : http://www.fiddlertool.com/useragent.aspx
Anyway it works fine for me.
I think this method is better than modifying niscmnht.dll file as suggest by Edgar (thanks a lot to him anyway)& great thanks to Paulo Santos (compatriota)
Good Lock for others ...

4/23/2007 11:25 AM  
Blogger Michael said...

I just copied and pasted the script also using PE Explorer and it worked great! Thank you so much!!

-MS-

9/05/2007 1:26 AM  
Blogger jeep said...

Please, can you help me, I have the same problem with my norton personal firewall 2004.
Thank you very much

This is my email address
gothias@tele2.fr

11/03/2007 6:44 PM  
Blogger Remi said...

Thanks Sugar...
Your modified niscmnht.dll file works great.

11/15/2007 3:49 PM  
Blogger davide2323 said...

The modified niscmnht.dll worked for me on NIS 2005. Thank you!

2/03/2008 12:41 PM  
Blogger Arjun said...

Hi, can you help me with the following problem?
"An error has occured in the script on this page
Line: 107
Char: 5
Error: Unspecified Error
Code:0
UR:: res://NISPLUG.dll/10090
Do you want to continue running scripts on this page? Yes/No"

4/14/2008 11:14 AM  
Blogger Arjun said...

I have a Norton Internet Security 2005 Anti spyware Edition product running on my computer. Its not taking Live Updates, stating that my subscription has expired - which isn't the case.

4/14/2008 11:17 AM  
Blogger Paulo Santos said...

Unfortunally, I'm no longer using Norton.

I can investigate it for you if you send me the file.

You can send it to pjondevelopment (at) gmail (dot) com.

4/14/2008 8:34 PM  
Blogger Glimmerman said...

This post has been removed by the author.

10/09/2008 4:00 PM  
Blogger Glimmerman said...

I have fixed the niscmnht.dll (file version 8.5.0.111) so it will work with any version of Internet Explorer. I now use IE8-Beta and my NIS2005 works perfectly. If anybody wants the file e-mail me at 'gilbert.immerman@gmail.com' and I'll be happy to send it to anybody who requests it. However, if your file version is later than 8.5.0.111 send me a copy of it and I'll modify and return it to you (all I ask in return is that you wish me well)!!!!!!!!!

10/10/2008 5:53 AM