Is there a way to bypass the 256 kB limit for a custom Windows 7 login screen?

It seems that the 256 kB limit is taken for granted by the vast majority of the community. Perhaps you could patch imageres.dll as suggested by the last post in this discussion. The steps necessary here boil down to the following:

  1. Open %WINDIR%\System32\imageres.dll in a resource editor
  2. Extract the images to files
  3. Replace them with custom variants
  4. Put the replaced images back into a copy of imageres.dll
  5. Replace imageres.dll

After searching for a long long time, finally I have found a way to remove the 256KB file size limit on windows 7 logon screen. The process is quite simple and straightforward for the experienced, but may be a little difficult for beginners. I will try to be as explicit as possible. After all, we are superusers!

  1. Navigate to C:\Windows\System32, and make a backup of the file authui.dll, perhaps make a copy and rename to authui_original.dll

  2. Make another copy of the file and name it authui_working.dll

  3. Using any good hex editor, like Hex Workshop, open the file authui_working.dll

  4. Search the word (Menu > Edit > Find, or ctrl+F):

    • for 32-bit windows: 3D 00 E8 03 00 73 51
    • for 64-bit windows: E8 03 00 41 3B C1 73 3E
  5. Now replace the found word with:

    • for 32-bit windows: 3D 00 E8 03 00 90 90
    • for 64-bit windows: E8 03 00 41 3B C1 90 90

    Go ahead and change only those bytes that differ, i.e. only the last two bytes, like 73 51 changed to 90 90 in case of 32bit, and then save the file.

    If you're wondering what the change is, it's removing the instruction that checks the size of the file and replacing it with two instructions (called nops, or no operations) that do nothing. The 00 E8 03 00 bytes represent the 256,000 byte limit.

  6. Patching done! Now replace the authui.dll with the patched file authui_working.dll.

You can use any way you like to replace the file. For example replacer. What I did is very simple, using unlocker

  • If you don't already have unlocker, download and install
  • Right-click on the file authui.dll, and choose unlocker
  • On lower left corner, select delete (or rename in case you want to keep a backup), and click on the Unlock all button. This will delete the file immediately
  • Rename the file authui_working.dll to authui.dll
  • Done!

To test copy an image larger than 256KB to C:\Windows\system32\oobe\info\backgrounds folder where custom logon screens are placed. You also need to have OEMBackground enabled in the registry, which you probably already have since otherwise you wouldn't be reading this post in the first place! Anyway, to enable OEMBackground navigate to this registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background

and set the value of OEMBackground to 1.

Finally press Win+L and be amazed!

P.S.: all credit goes to the author of this article from where I learned this procedure

P.P.S.: I keep uac off, so my instructions apply exactly only when uac is off.