Replacing the Windows XP Start Button Background

In the third and final part of my "Hacking the Windows XP Start Button" series I show you how to change the background graphic. Once again, I won’t be using any third party themes or add-ons. Are you ready to have some fun? Let’s get started.

Once again, I would advise printing out this article.  The steps you’re going to take will require a reboot and you don’t want to get caught in the middle without instructions.

As with the first two articles, you’re going to need Resource Hacker and the component pack I’ve put together for this article.  You can download the pack by clicking the Download Source button below.

You may optionally need a third tool as well—a hex editor.  Hex editors are used to edit the code inside of binary files.  There are several freeware utilities available including XVI32, HexEdit, and Cygnus Free Edition.  I’ll be using XVI32.

Don’t forget the rule of thumb: any time we edit, change, or replace a system file, you should always create a backup before hand.  If you have System Restore enabled you should also create a Restore Point prior to beginning.

Enough chatter, let’s get started.  First things first; we’re going to find the current start button graphic.  You’ll need Resource Hacker for this.  Throughout this article, I’m going to assume that everyone is using the default Luna theme.  If not, just replace the word Luna with whatever theme you’re using.  For instance, if I say to navigate to the Luna folder, just navigate to your theme’s folder instead.

Now that we’ve gotten the technicalities out of the way, let’s go grab a local copy of the start button’s background for editing.  Go ahead and start Resource Hacker and I’ll meet you on the next page.

{mospagebreak title=Locating the start button background.}

Welcome back.

In Resource Hacker, choose File > Open… and navigate to the %systemroot% directory.  In most cases this is C:Windows.  In Windows 2000 upgrades this may be C:Winnt instead.

In the Windows directory, navigate into the Resources folder and then into Themes.  Here you should see a folder for each of your installed themes.  Navigate into the folder for your current theme.  On a default install, this is the Luna folder.

Open the file named luna.msstyles.  This is a Windows Visual Style file.  It’s actually a dll file with a renamed extension.  It contains graphics, CSS, and text strings associated with the Luna theme.

In the left Resource Hacker pane, expand the Bitmaps section and navigate to the BLUE_STARTBUTTON_BMP heading.  Expand that and then choose the listing for your currently installed language.  For US-EN this is 1033.

If you are not using Luna’s default Blue color set, find the graphic for your color set instead. The Olive Green color set uses HOMESTEAD_STARTBUTTON_BMP and the silver color set uses METALLIC_STARTBUTTON_BMP.

You should now see your start button’s background graphic in the right-hand pane.  Let’s save a backup of that now.  It will also give us a template to work with when producing our own graphic later.

From the Action menu choose Save [Bitmap : BLUE_STARTBUTTON_BMP : 1033]…, give it a name like original_startbutton.bmp, and save it to your desktop.  Close Resource Hacker when you’re finished and we’ll take a look at editing this graphic.

{mospagebreak title=Preparing the new graphic.}

As always, you can create a brand new graphic if you like, but it’s much easier to edit this one.  It’s a 99×99 standard Windows bitmap.  Ignore the pink color you see, we’ll get into that in just a moment.

Now fire up your favorite graphic editing program.  If you’re following along with me, I’ll be using Photoshop CS but you can use any editor that you like.

Let’s take a closer look at this graphic.  You’ll notice that there are actually three graphics in one.  That’s because this is a tri-state button, meaning that a single graphic is used to display all three button states as follows.

From top to bottom you see the Normal state, Hover (moused over) state, and Active (clicked) state.  You’ll notice that the default configuration uses a lighter color for the hover state and a darker color for the active state.  This is the typical style of all Windows buttons.

You’ll also notice that the buttons use shadow effects to produce a 3D shape.  This is very hard to replicate in a fashion that matches the rest of the task bar so it’s best not to change it if possible.  That’s why I’ll be using a slightly different method to edit my graphic.

In Photoshop, choose Image > Adjustments > Hue/Saturation… or simply press Ctrl + U.  Now adjust the sliders until you get the color that you like.  By adjusting the Hue/Saturation level instead of re-coloring the image ourselves, we are able to colorize the image without losing the shadow look.

To get the grayish look that I’m using, set your Hue to -45, Saturation to -96, and Lightness to +16.  Click Ok.  Now we need to add our transparency.

 

This is a standard Windows bitmap so it uses the color Magenta (255,0,255) to define transparency.  Select that color and then select the pencil tool.  Along the right side of the image, fill in all of the extra pixels so that your start button has a nice curve again.  You may need to zoom in to around 500% in order to see individual pixels.

Once you’ve added your transparency, save the new bitmap as custom_startbutton.bmp using the default settings.

{mospagebreak title=Preparing your system.}

I know you’re anxious to jump ahead, right?  After reading my last article, you’re pretty confident with Resource Hacker and you’re ready to go, but if you try to edit your new graphic into luna.msstyles at this point you’re going to have some issues.

There are two major stepping stones.  The first is Windows File Protection, which we’ve already encountered, and the second is Windows theme protection.  Windows themes have a built in check that determines whether or not the theme was digitally signed by Microsoft.

This protection is managed by the uxtheme.dll file in your System32 folder.  This is a binary file and we won’t be able to use Resource Hacker to edit it.  You’ll need a hex editor.  For sake of brevity, I’m not going to go into detail about using a hex editor.  If you’ve done it before, the settings are provided below.

For those not comfortable with a hex editor, you can use the UX Multi-Patcher to do the trick.  It works on Windows XP, XP SP1, XP SP2, and Server 2003.  I’ve linked the file locally since the original site doesn’t appear to be up anymore.

The Multi-patcher is simple to use.  Just open the zip file and run the executable.  It gives you a brief description of what it does.  Just follow the on-screen instructions.

The multi-patcher will also uninstall the patch if you run it a second time.

If you run the multi-patcher program you can skip the next section of this article.  For those who prefer to take a more hands-on approach, I’m going to show you how to patch the system manually with a hex editor.

{mospagebreak title=Patching Uxtheme.dll}

So you’ve decided to get your hands dirty and take a leap into the world of hex editing.  Great!  Fasten your seat belt, follow along, and you should have no problem at all.

Microsoft’s Themes service is housed in the file uxtheme.dll located in your System32 directory.  It is a Windows protected file.  As always, when editing system files, you should make a backup in case of emergency.  This file is changed depending on your PC’s service pack level so restoring from the Windows CD is not recommended.

This service is enabled by default so your first step is going to be stopping the service.  Open the run dialog box and run services.msc to start the Services MMC snap-in.

Locate Themes in the service list.  Right-click it and choose Properties… to open the Themes Properties dialog box.  Click the Stop button to end the service.  You should see your taskbar change to the plain looking taskbar from the Windows Classic theme.

What you are seeing is actually not the Windows Classic theme.  Windows themes are based on HTML and CSS.  By ending the service you are essentially seeing raw HTML without the CSS formatting.

Next, you’ll need to remove Windows File Protection for uxtheme.dll.  Do this in the same fashion that we’ve used for Explorer.exe and luna.msstyles in this article series.  Make sure that you remove all of the backups except the one that you created.

Now you can open uxtheme.dll in your hex editor.  You’ll need to know what version you are running because each version requires a different edit.  If you don’t know the service pack level of your system, you can find out in the System Properties dialog box.

In the table below you’ll find the different edits that need to be made.  Each one has an offset listed.  That is the memory address where the data string begins.  The second column shows the data that needs to be replaced.  The last column shows the data that it should be changed to.

No Service Packs Installed

Offset

Original Data

Replacement Data

0x0000B624

0F 8C 80 00 00 00

90 90 90 90 90 90

0x0000B6BB

81 EC 80 00 00 00 56 57

33 F6 8B C6 C9 C2 08 00

0x0000B71E

7C 38

90 90

Service Pack 1

Offset

Original Data

Replacement Data

0x0000C3FF

81 EC 80 00 00 00 56 57

33 F6 8B C6 C9 C2 08 00

Service Pack 2

Offset

Original Data

Replacement Data

0x0001BB8C

81 EC 88 00 00 00 A1 18

33 F6 8B C6 C9 C2 08 00

Once you’ve made all of the edits that you need to make, save the file.  Choose yes if you are prompted about overwriting.  At this point, you will most likely be notified about changing a protected Windows file.  Choose Cancel when asked to insert your Windows CD.

{mospagebreak title=Replacing the graphic.}

Okay, now you’re ready to replace the Start button graphic with the one you created.  Start up Resource Hacker and open luna.msstyles again.  On the Action menu, select Replace Bitmap… and select the original bitmap that you would like to replace.  Typically this is BLUE_STARTBUTTON_BMP.

Next, click the Open file with new bitmap… button and select the new bitmap image that you created.  Now click the Replace button and save the file before closing Resource Hacker.

If all went well, you’re all set.  Your changes should have been saved.  Go back to the Run dialog box and open services.msc once again.  Find the Themes service and open its Properties.  Click the Start button to restart its service.

You should now see your new start button!  You now have the tools you need to hack all parts of Windows themes.  One word of caution: while it can be fun, making too many changes can bring the whole thing crashing down.  Hey, don’t say I didn’t warn you.  Thanks for reading and I hope I’ve opened up a new world of opportunities for you to customize your system.  Until next time…

3 thoughts on “Replacing the Windows XP Start Button Background

  1. In the final installment of this series I show you how to change the Start button’s background color and also give you what you need to customize the remaining parts of your Windows theme.

  2. I installed XP SP3 and it replaces Uxtheme.dll; the multipatcher gives a message it is not compatible with my system (XP SP3). I’m going to give a go at hex editing but I don’t know how that will work out at this time.

[gp-comments width="770" linklove="off" ]