SOLVED Modifying SHELL32.dll?


Joined
Nov 4, 2019
Messages
5
Reaction score
1
So i am customizing my windows 10 to make it look like 7.I changed the icons in most of dll files but some dll files like shell32.dll are digitally signed by microsoft and if i modify them the signature will break and on next boot windows will show bsod.Is there any way i can modify shell32.dll without breaking signature or can i sign the modifies shell32.dll somehow?
 
Ad

Advertisements

Regedit32

Moderator
Joined
Mar 4, 2016
Messages
3,368
Reaction score
1,042
Hi and Welcome to the Forum.

I assume you are using a non native application to modify the files — Resource Hacker as an example.

As your post suggests you've probably run into an issue when it comes to modifying a Windows System file. The reason for that is two fold:
  1. Given its a System file your operating system is currently using it. You cannot modify and save changes to any active system file.
  2. Specifically, shell32.dll is protected my Microsoft's WFP (Windows File Protection) as it should be.

To resolve this you need to do a few things:
  • First right-click on shell32.dll and select copy
  • Next, paste your copy to a different location — your Desktop for example
  • Now open your non native application and select the copied version of your shell32.dll file. Modify and save changes.
  • Next, you'll need to return to the location of the original shell32.dll file:
    • C:\Windows\System32 — if modifying the 32-bit version
    • C:\Windows\SysWOW64 — if modifying the 64-bit version
  • When you're at the correct location, right-click on the shell32.dll file and select Properties
  • Next select the Security tab
  • Next click Advanced | then in top banner click Change and change Owner to yourself
  • Apply your changed Ownership, and click OK
  • Next right-click on shell32.dll again, this time selecting Rename — and rename file.
  • Finally, return to the location of your modified shell32.dll file. Right-click it and select copy then paste that to the original location of the Shell32.dll file ( i.e. C:\Windows\System32 or C:\Windows\SysWOW64 ) where the renamed Shell32.dll file resides.

That ought to get around your current question.

Regards,

Regedit32
 
Joined
Nov 4, 2019
Messages
5
Reaction score
1
Thanks for your reply i am using customizer god to edit icon files and before i was opening shell32.dll file from system32 folder and it has the icons i need to modify but when i open shell32.dll from syswow64 folder as u mentioned that if i am using 64 bit windows i need to open this file it didn't had any icons and customizer god showed me following warning
Screenshot (55).png

This is my main problem if i modify the file the digital signature of file will break and windows will refuse to load it so anyway to bypass this?
 

Regedit32

Moderator
Joined
Mar 4, 2016
Messages
3,368
Reaction score
1,042
I'm not familiar with Customizer God.

Taking a look at the developer site, I note the creator has ceased [ for now anyway ] updating their application, so its not currently supporting Windows 10 1903 anyway, and with the 1909 version dues soon, it'll become even less compatible.

Have you tried to bypass the shell32.dll and instead modify the imageres.dll file which ought to contain the various icons you are wanting?
 
Joined
Nov 4, 2019
Messages
5
Reaction score
1
I am using WIN 10 1809 version and custoizer god is compatiable with it and yup i have modified imageres.dll but there are many icons in shell32.dll it has even more icons than imageres.dll it is the only main file remaining to modify there are a few other files with signatures that also have icons but they have just a few so i don't mind them
 

Regedit32

Moderator
Joined
Mar 4, 2016
Messages
3,368
Reaction score
1,042
If you install Microsoft's Software Development Kit [ a behemoth of a install !!! ], you could use the signtool.exe to remove the digital certificate, using the following command in an elevated command prompt:

Code:
Assuming you copied shell32.dll to your C:\ and that you installed the SDK to its default location, first type:

cd C:\Program Files (x86)\Windows Kits\10\tools\bin\i386

Press Enter, then type this command:

signtool remove /s c:\shell32.dll
Theoretically you then should be able to modify the file using your application.

The problem then is, you need to sign the file again, and that is not quite as simple.

If you right-click that shell32.dll file in its original location, and select properties | Digital Signatures tab you can see the certification its using. These are updated automatically from time to time, depending on the timestamp Microsoft settled on.

You'll need to read the Microsoft Documentation on the SignTool, to fully appreciate that final step needed:

https://docs.microsoft.com/en-us/windows/win32/seccrypto/signtool

It is not as simple as you might hope for!
 
Joined
Nov 4, 2019
Messages
5
Reaction score
1
Update! i found a solution to problem.There was no way of modifying the files without breaking their signature so i downloaded windows 8 iso,installed into a vm,copied setupapi.dll file from system32 folder to my host os.Because windows 8 have most of icons same as windows 7.This file is digitally signed in both win8 and win10.I compared the files from both operating systems with resource hacker and they were literally same so i installed win10 into a vm.copied the win8's setupapi.dll to my vm's system32 folder and rebooted the vm and it worked! I would advice you to compare files with resource hacker before changing them or you may break your windows installation.Hope it helps you ps sorry for my bad english :)
 
Ad

Advertisements

Regedit32

Moderator
Joined
Mar 4, 2016
Messages
3,368
Reaction score
1,042
Nice solution to your issue.

The alternate I mentioned would be a massive learning curve for anyone not used to signing or stripping files, but most people can cope with copying a file from one locate to another, and doing some basic comparisons as you mentioned without coming into grief.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top