Jump to content

Shell32.dll Düzenleme Sorunu


wosxy

Recommended Posts

Please register to see this content.

You have problem with KB925902 update?

For Vista Transformation Pack 7 users, you have 2 solutions :

1 - Uninstall Windows Transformation Pack and try Vista Inspirat 2 Bricopack ! With Vista Inspirat 2 Bricopack, the problem with the Windows Update KB925902 is solved !!!

OR

2 - Follow the tutorial below

___________________________________________

Tutorial (KB925902) :

Like many users in this forum (and everywhere in the web), I was enjoying the cool new icons possible with Bricopacks until KB925902 came along and messed everything up. Instead of waiting until M$ did something to undo the damage they did, I decided to do something on my own; and now, I am happily enjoying the benefits of KB925902 without any of the drawbacks.

How, you ask? Well, this is the purpose of this post. But first, the obligatory disclaimer:

WARNING:This involves hacking a system DLL using a third party tool. Depending on your exact driver set, it may not work for you. Worse, it might even render your computer unbootable in a worst case scenario. But then again, it should not be any worse than what KB925902 already did in your computer...

In case you want to know what exactly is the problem, I have a section at the end which explains the technical details. So, without further addo:

Step 1: Get appropriate tools

There is one particular piece of software you will need: a portable executable editor which allows you to change a dll's base address. There is a list of them in Wikipedia'a Portable Executable article. I chose to use yoda's LordPE Deluxe, and wrote this tutorial accordingly. So download it and extract the files to a folder of your choice. Remember this folder.

Step 2: Configuring LordPE

The starting screen of LordPE has lots of things; but only three of them concern us here: the "PE Editor", "Rebuild PE" and "Options" buttons. Start with "PE Editor".

Navigate to "Windows\$NtUninstallKB925902$"and open "user32.dll". Note the value of "ImageBase" (copy to clipboard, write it down, etc.). Click "OK".

For easy reference, some values for this address are (based on the language of XP):

English: 77D40000

French, Italian, Spanish: 77D10000

Finnish: 77D30000

Portuguese (Brazilian): 77D20000

Click "Options" now. Ignore everything but the "Rebuilder" options; then, set these options to look like the screenshot below:

Pay special attention to the text below the "Change ImageBase to:" checkbox: it must be the "ImageBase" address I told you to copy/write down/whatever. Click "OK" and you are ready for the next step.

Step 3: Editing user32.dll

First: you can't edit "user32.dll" directly because it is in use. Also, Windows File Protection would hinder you in this effort. So you will need to make a copy of "user32.dll". Go to "Windows\System32" and duplicate "user32.dll"; change the name of the copy to "user32_new.dll".

Back to LordPE, click "Rebuild PE" and select the "user32_new.dll" file you just created. When LordPE is done, click OK and close it. You now have to put the new dll to use.

Step 4: Getting around Windows File Protection

If you have turned off Windows File Protection, skip to step 5. Otherwise, you will need to overwrite the "user32.dll" in "Windows\System32\dllcache" with the new version you just created. So go to "Windows\System32\dllcache", delete "user32.dll", copy your "user32_new.dll" to this folder and rename it to "user32.dll".

Step 5: Replacing user32.dll

The problem here is that "user32.dll" is in use and can't be deleted (or overwritten). In my case, I had success in simply renaming it; so try that first: try renaming "user32.dll" to "user32_old.dll". If this works, immediately rename "user32_new.dll" to "user32.dll" and skip to step 6.

If you are reading this, you will now have to reboot your computer. Then:

* Before the XP loading screen shows up, press F8 to get boot options.

* Select "Safe Mode with Command Prompt" with your arrow keys and hit Enter.

* After you log in, you will be faced with the command prompt. Type the drive letter where you installed Windows (usually "C"), followed by ":" (without the quotes) and hit enter. Thus, most users would type "C:" and hit enter in this step; but if you installed Windows to drive "D", you would type "D:" and press enter.

* Type "cd \Windows\system32" and press enter (note that there is a backslash before "Windows" in this command; be sure to type it too!).

* Type "ren user32.dll user32_old.dll && ren user32_new.dll user32.dll" and press enter.

* Reboot.

If you did everything right so far, "user32.dll" is now your modified version. You can check by looking at the file date.

Step 6: Install your favorite Bricopack

The title says it all: install the Bricopack of your choice and enjoy! If it was already installed when you started this procedure, it *should* work without a hiccup too, but I haven't tested it.

Optional: Technical details

Windows DLLs have a base address which tells Windows where the DLL should go in your system's physical memory. Most DLLs can be dynamically reallocated without problems (except for a delay in the DLL's loading time) if there is already a DLL at the specified address; system DLLs cannot (probably for stability/performance reasons). The base address I told you to use was the base address of "user32.dll" before KB925902 (you can check this with LordPE by looking at the file in "WINDOWS\$NtUninstallKB925902$"). Since KB925902 created the problem(s) by switching around the base address of "user32.dll", restoring the base address to what it was fixed it.

:rolleyes:

türkçeye çevirecek var mı ?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...