Log in

View Full Version : RegClean craps out on Win2K?


Kayaker
October 31st, 2003, 03:13
This is a bit of a long shot, but...

I've been running Win2K sp3 for a while and figured it was finally time to run Microsoft's RegClean 4.1a on my system. Knowing M$ is so well renowned for its wonderful, stable, bug-free software (tongue firmly implanted in cheek), I wasn't expecting any problems. You can imagine my surprise then when it continually crashed part way through its analysis.

No problem, Dr. Watson to the rescue (now that *is* a handy util). It reliably told me that RegClean had crashed (duh) and gave a nice stack dump and faulting address.

0043c578 8b7c240c mov edi,[esp+0xc]
0043c57c 8bf1 mov esi,ecx
0043c57e 8b07 mov eax,[edi] <--FAULT

This code is called continually, edi being various address pointers to string values from the registry. Using an IF statement in Softice I was able to break just before the crash and found that [esp+0xc], instead of containing an address pointer held the value "4". Of course this caused a C0000005 access violation.

With the error being tied so closely to ESP, and the fact it occurs after many, many iterations of the above code, though always at the same point with the same stack dump values, I sense it's a stack buffer overflow thingy kind of problem. Something you can see in your own code if you don't balance the stack, it will run OK for a while then inevitably crap out on you.


I'm not really expecting a solution, it's probably just my dumb luck it's happening, this is more of a misery-loves-company kind of post. The only wild thought I could come up with was that having the Win2K Debug symbols installed somehow affected the Regclean operation, but I suppose it could be anything. Regclean comes with an OLE library update for early OS systems, but I'm averse to running these 1996/97 dll files.

Has anyone experienced any problems running RegClean on Win2K? (No, of course not you sap

Kayaker

Aimless
October 31st, 2003, 03:25
This is so bitter of nature. Some lucky people get to see only a stack dump.

I tried the regclean and it crashed my OS. Huh? That's right. Crashed. The remote recovery would'nt work.

Some guys have all the luck. *Mumble*

Have Phun

Woodmann
October 31st, 2003, 20:15
So you just have to learn the hard way

From what I have experienced, MS system utilities
either dont work/lame or they surprise you with some
random lovely gift you get to play with while praying
the whole damn thing doesnt implode.

I would imagine this happens because of certain
programs running in the background ????

Woodmann

JMI
October 31st, 2003, 22:34
Kayaker:

You may vaguely recall you wrote a program to parse regmon for us, inspired in part by my wining about having to review 20,000 lines of regmon code to find where ASPR was putting its registration information in a particular target. At the time it was hiding it inside the CSID of other programs and searching through nearly the whole damn registry to find a suitable candidate.

You may, or may not also recall that I reported that RegClean would successfully remove that registration information, where ever ASPR had hidden it. The point here is that, at the time I was also running Win2K sp3 and had no problems at all with RegClean on my system. I can't duplicate that condition at the moment, because I'm now running XP Pro, Sp1, but, as Woodmann suggested, I would concur that it is most likely the result of something else running in the background, rather than Win2K sp3 vs. RegClean itself. Don't expect that is any comfort, but it might suggest looking for something other than the OS as the point of conflict.

Regards.

Kayaker
November 1st, 2003, 02:35
Well, thanks for the feedback, I tried various options such as disabling every service/process I could, running in Safemode, using the command line switches (regclean /?) etc, etc. No dice.

There is of course a KB article with the disclaimer:

Microsoft Knowledge Base Article: 172575 - When you run RegClean version 4.1 in Windows NT 4.0, you may receive the following error message: Application Error RegClean.exe Exception: access violation(0xc0000005), address:0x00414053 This error message occurs because RegClean version 4.1 is not compatible with Windows NT 4.0.

This should maybe be changed to include "may or may not run on any particular computer depending on the phase of the moon, imminent solar flares, or other whims of nature or system configuration, nor do we care diddly squat". I guess I join Aimless in the ranks of the screwed and tatooed when it comes to Regclean... oh well. Not sure if it's worth the effort to reverse it further if it's a stack issue.

Btw, to JMI and other XP users, there was a mention about Regclean working OK on XP, if you boot in "Win98 compatibility mode". (?) This option seems to be missing on Win2K methinks.

Regards,
Kayaker

esther
November 1st, 2003, 14:27
Hi Kayaker,

It works perfectly on my win2k pro sp2

no errors

Regards

Kayaker
November 1st, 2003, 15:55
Quote:
[Originally Posted by esther]Hi Kayaker,

It works perfectly on my win2k pro sp2

no errors

Regards



Phthfffth...

I think that's how you spell it

JackD
November 1st, 2003, 19:18
Quote:
[Originally Posted by Kayaker]Phthfffth...

I think that's how you spell it


Kayaker,

Runs fine for me on W2k SP3 & SP4, & XP. I had the same problem on my W2K SP3 machine and discovered it was due to some Reg entry that was too long or contained code RegCleaner didn't like. Resplendent Registrar ran fine on that machine, cleaning the offending Reg entry, and then RegCleaner would run just fine again.

JackD

Kayaker
November 2nd, 2003, 02:25
Bingo! Thanks for the heads up JackD. Taking another look at things, I had previously run Regclean with the command line option /L (log activity to file), but hadn't realized that it actually creates the logfile runtime, so even with the crash there was a record of all the reg entries it had looked at, the last being the crash culprit...

As it turns out there were 9 reg entries which referenced an icon file in C:\WINNT\Installer\ {7FC0D670-057F-4D50-A7B8-2CA291360708}\, i.e.

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AWFile\DefaultIcon]
@="misc.exe,6"

There are 2 problems with this. One is that the icon file is not called 'misc.exe', for some reason it's stupidly named misc.exe.D0DF3458_A845_11D3_8D0A_0050046416B9.exe. The second problem is that the full path to the icon wasn't given, and for some reason this also made Regclean choke on each reference to it. Editing each reg entry string "misc.exe" to the full path/filename was enough to allow Regclean to continue.


This doesn't mean the problems stopped though. There were 3 other faulty reg entries, and in each case it was because the file didn't exist or the pathname was incorrect. This is kind of weird though, I thought the whole point of Regclean was to pick up and/or fix these faulty entries, not crash on a mere syntax error. For the record, here are the other entries, the reason for the crash, and the solution:

----------------------------------------------------
[HKEY_CLASSES_ROOT\CLSID\{42071714-76d4-11d1-8b24-00a0c9068ff3}]
@="Display Panning CPL Extension"

[HKEY_CLASSES_ROOT\CLSID\{42071714-76d4-11d1-8b24-00a0c9068ff3}\InProcServer32]
@="deskpan.dll"

PROBLEM: deskpan.dll didn't exist on harddrive
SOLUTION: change Default value to @=""
----------------------------------------------------

----------------------------------------------------
[HKEY_CLASSES_ROOT\CLSID\{B0693766-5278-4ec6-B9E1-3CE40560EF5A}]
@="BDA Device Control Plug-in"

[HKEY_CLASSES_ROOT\CLSID\{B0693766-5278-4ec6-B9E1-3CE40560EF5A}\InprocServer32]
@="CaPlgin.ax"

PROBLEM: CaPlgin.ax didn't exist on harddrive
SOLUTION: change Default value to @=""
----------------------------------------------------

----------------------------------------------------
[HKEY_CLASSES_ROOT\CLSID\{D61A27C6-8F53-11D0-BFA0-00A024151983}\LocalServer32]
@="%SystemRoot%\\system32\\regsvr32.exe"

PROBLEM: The phrase %SystemRoot% not recognized by Regclean
SOLUTION: change Default value to @="C:\WINNT\system32\regsvr32.exe"
----------------------------------------------------


This last one really gets me - an MS app doesn't recognize what the hell "%SystemRoot%" is??
Gimme a break Bill, lol.

After manually making these syntax changes, Regclean ran without crashing and fixed up a bunch of things. I'm a little dubious about the results though because now when I run it on the "clean" registry it picks up the same 154 "faulty" entries each time (mostly CLSID and TypeLib entries), but doesn't make any hard changes to the registry.

What I'd recommend then to anyone experiencing similar problems is to run Regclean with the /L option, check the last entry in the log and fix it manually until Regclean runs without crashing - then delete the program and go out and buy some other Reg cleaner

Thanks for the help.

Cheers,
Kayaker

esther
November 2nd, 2003, 10:29
Quote:
[Originally Posted by Kayaker]Phthfffth...

I think that's how you spell it


yakerKa thats the correct spelling