Introduction: Permanently Changing the Background in Windows 7 Starter
As you may have noticed, Microsoft has decided not to allow users to change the background in Windows 7 Starter. Several "solutions" exist to this problem but most of them are temporary, don't work at all, or require downloading software. The solution I have come up with is completely permanent and only requires slightly modifying one system file.
Step 1: How This Works
Microsoft has become increasingly sneaky when it comes to Windows restrictions. The file shell32.dll controls many visual attributes of windows such as the background image. On any other edition of windows, the user can open control panel and change the background by opening display properties or personalization settings and setting to what over their heart desires. Once they set the image and hit apply, it calls a function in shell32.dll that sets the background. In Windows 7 though, it is much different. The entire background change interface has been removed and the path to the default background image is hardcoded into the code of shell32.dll. The path hardcoded into shell32.dll is "%windir%\\Web\\Wallpaper\\Windows\\img0.jpg". The seemingly obvious solution to this problem is just to replace img0.jpg with your own custom image. But like I said, Microsoft has gotten sneaky. In shell32.dll there is also a hash of img0.dll to prevent it from being swapped with something else. For those of you that don't know, a hash is like a fingerprint of a file. Every file has its own completely unique fingerprint. Even changing one bit in a file would change it's fingerprint. Shell32.dll conatins a SHA256 hash of img0.jpg so if this file is changed or replaced, you get a black background. Unfortunantly though, Microsoft didn't anticipate the modification of system files. What we will do is change the name of the file hardcoded in shell32.dll to img1.jpg and we will replace the hash in shell32.dll with the one of our own image. This way windows thinks our new background is the default one and is more than happy to show it. To some of you this may seem very complicated but it should make more sense as you read the rest of the instructable.
Step 2: Gather Required Materials & Setup
You only need to download one thing:
XVI32 - THE BEST FREAKIN' HEX EDITOR ON THE PLANET
Once you have downloaded XVI32, create a tempory folder. Place XVI32, the image you want as your background, a copy of %windir%\Web\Wallpaper\Windows\img0.jpg, and a copy of
%windir%\Windows\system32\shell32.dll. Once you have them all it should look like this. Obviously this must be done on a computer with Windows 7 Starter edition. Also your new background must be a jpg.
Step 3: Hash Fun
Open notepad and type img0.jpg then a new line and then new image. Next goto http://www.hashemall.com and select SHA 256bit Algorithm. Then use the select a file to select img0.jpg and take the hash of it. Paste the hash under img0.jpg in the notepad you opened. Then repeat the process with your new image. Once you have the hashes in notepad, add a space after every two characters in both hashes. Make sure that you hashed it with the SHA 256bit option or the instructable won't work.
Step 4: The Second Hardest Part
Now comes the second hardest part, changing the hash and the name in shell32.dll. Open XVI32 and then open shell32.dll with it. Then click Search->Replace or press CTRL+R. Copy the first hash and paste it in the first hex box, then copy the second has and place it in the second hash box. Then press ok. Once you have replaced the hash, click Search->Find or press CTRL+F. Select text and type img0.jpg. Make sure to check the Unicode checkbox. Once it has found it, change the 0 to a 1. Now you can save it and your done with the hard part.
NOTE: Make sure to save the text file with the hashes in it so if you want to change the image you know what to replace in the dll.
Step 5: Copying Your New Image File
Copy your new image file to %windir%\\Web\Wallpaper\\Windows and change the name to img1.jpg. Be sure to type it in all lowercase.
Step 6: The Hardest Part - Replacing Shell32.dll
This is the hardest part becuase it involves using command prompt. Now that everything is in place (new image is in the %windir%\\Web\\Wallpaper\\Windows, shell32.dll has been modified) we can now replace the standard shell32.dll with the modified one. First open command prompt as administrator (Start->Search->cmd->Run as administrator). Then type takeown /F shell32.dll. Now open %windir%\\system32 and find shell32.dll. Rename it to shell32.dll1 and drag the modifed shell32.dll from your temporary folder into system32. Restart the computer. If everything went correctly, you should have your customized background. If you have a black background, goto to step 7. Otherwise, nice job!
Step 7: Troubleshooting
If you got a black screen there are several things that may have caused a problem. First make sure your image is named img1.jpg all lowercase and is in the %windir%\Web\Wallpaper\Windows folder. If that is all good, do the following. Right click on the desktop and click screen resolution. Then in the address bar, click the word Display which should be followed by an arrow then Screen Resolution. Then click the Change color scheme link on the left panel. Then in the color scheme box click Windows Classic and click apply. Finally select Windows 7 Basic hit apply,hit OK and your image should now be the wallpaper. If it is still black, carefully redo steps 3,4,5, and 6. If you still can't get it to work undo all of your changes and redo the instructable twice as carefully as you did the first time. If it still doesn't work ask for help in the comments section.
27 Comments
6 years ago
fock this way too much effort to put a pic of a Camaro on my desktop, ha ha, good job Microsoft you wanted Apple to replace all Notebooks with their stupid iPads you have succeeded
7 years ago
I'd like to introduce something good to you, my dear friend. As you mentioned above, I want to tell you how you can get a valid and legal key. The answer is in www.vinhugo.com, you can buy what you want and it's 100% genuine. Pirated versions never exist in this place.
8 years ago on Step 7
I followed the instructions very carefully, backing every file.
When I saved the new dll I copied the name from the original dll to make sure I don't make a mistake.
when I tried to rename shell32.dll I got a message that I didn't have permission so I right clicked the file, selected properties and changed the permissions. I was able to rename the file and copy the new file in place.
When I restarted windows I got a message that said SHELL32.dll is missing from your computer!! After that I got a black screen with white cursor, no desktop.
I turned the pc off and on and started in safe mode with command, copied the backed up dll into place and everything returned to normal.
I tried it. I did not make it.
11 years ago on Step 4
When I try to find img0.jpg It says"String not found" What do I do?
Reply 9 years ago on Step 4
Try img0, without the ".jpg" part.
Reply 11 years ago on Step 4
Did you:
- select "Text string"?
- check "as Unicode Latin"?
- select "Scope from Begin"?
9 years ago on Step 4
When I try to save the XVI32 it says "error 5: access not granded". What should I do?
10 years ago on Introduction
Trying to do this in Windows 7 Enterprise, only problem I am having is that it won't find the hash in the shell32.dll and yes I am sure that I used SHA256.
10 years ago on Introduction
The latest update (July 11, 2012) from MS seems to do something with the shell32.dll file. When I restarted the system, it failed to boot, and went into some kind of repair cycle. Took a half hour to complete, and I was back where I started. May have been a freak glitch, but I'm not willing to mess with it. Maybe one of the tech guru's could look into it.
11 years ago on Step 2
Hi there! Thanks for the info but I am unable to locate shell32.dll on my net book. Is there a way to go around this? I really appreciate your help! Thank you!
11 years ago on Introduction
Step 3: Hash Fun -
There is an alternative for when going online for the hash is not convenient.
http://download.cnet.com/HashCalc/3000-2250_4-10130770.html
That's Hash Calculator. It's free and it does do other things besides hashes, but for our purposes here, it works quite nicely.
12 years ago on Introduction
XVI32 cannot find the text string 'img0.jpg' anywhere in shell32. What's happening? (yes, Unicode is ticked)
Reply 11 years ago on Introduction
Leave .jpg out of the search. Use only "img0", it only shows up once.
Reply 11 years ago on Introduction
you have to drag de bar on right to the most top. then you can do ctrl+f
11 years ago on Step 3
I changed the wallpaper myself by -
copying the Windows wallpaper folder in Windows - Web - Wallpaper
I called the Original Folder Windows 2
then renamed Copy of Windows to Windows
I added a new 'Wallpaper Photo' called Img011.jpg (1900 x 1200 same as original)
then deleted the Img01.jpg that was in the folder
and finally renamed Img011.jpg to Img01.jpg
Easier to do than to explain in words...
Sammyone.
12 years ago on Introduction
smart but dificult ! this is an easy way : go to "http://sourceforge.net/projects/starterchangebg/ . dowload the program ,it's small , and install it on ur pc , then go to ur office clik on the right botom of the mouse , you will see an extra tool down of it called "personilise", clik on it and change your wallpaper ; ) whenever you want and whatever the wallpaper is ! easy and safe , it doese work on my compaq and my friend acer !
12 years ago on Step 7
im totally blurrr....=_=
13 years ago on Introduction
This instructable permanently changed my background completely black (luckily a restore point fixed it). I think MS recently pushed some update through that disabled these hacks, as I've tried three others, and they didn't work either.
Here's a few weird things that happened while trying to follow this instructable:
1) Windows wouldn't let me paste the modified shell32.dll into the System32 directory. It would act like it was successfully copied, but, after I copied it, I couldn't find it in the directory. It seemed like after it was copied, windows would immediately delete it.
2) I also couldn't rename the original shell32.dll1 back to shell32.dll.
3) I couldn't change the permissions on shell32.dll through the GUI. The permissions screen would open, then immediately close.
4) I was finally able to move shell32.dll around using cmd.exe. I had to run it as Admin and use the "copy" and "move" commands.
5) Even after restoring the original shell32.dll, the background remained black after restart.
So, I think MS has definitely spent some time locking this down further. I'm just glad the restore point saved my arse.
Thanks for trying, though. I'm sure this worked sometime in the past.
Note: running Win7 Starter on an Asus Eee 1001p.
Reply 12 years ago on Introduction
yes! beware, i have had the same issue and now i can't even start my computer's os. It just says that shell32.dll is not installed so my program (mainly the os) won't run. So it's just a black screen with a mouse and nothing. No way to go back and rename the file.
I don't know how to get to restore point... help~
Any pointers? What to do?
I'm on a toshiba netbook so there is no cd drive to reboot. :(
Reply 13 years ago on Introduction
I was having probs replacing the shell32.dll, although I had taken ownership of the file (and turned off UAC as an extra precaution), windows would not let me alter the original shell32.dll to shell32.dll1 as instructed, it was only when i went into the properties of the file and allowed administrators full control, that i was finally able to edit the file name and subsequently replace with the edited shell32.dll.
Once this was done I rebooted and found that it had been successful.
I've attached a screenshot, I hope this proves useful to anyone still having aggro.
Big thanks to Poopix123