• Stars
    star
    1,915
  • Rank 23,425 (Top 0.5 %)
  • Language
    C++
  • License
    Other
  • Created almost 5 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐ŸŽจ A secure boot compatible in-memory UxTheme patcher

SecureUxTheme

License Downloads GitHub Version Scoop Version

About

SecureUxTheme is a piece of software that removes signature verification of styles in Windows.

Features

  • No system file modifications
  • No driver needed
  • Secure boot compatible
  • Probably quite future-proof
  • Fixes LogonUI resetting some colors on locking

Limitations

Styles must still have a format-wise valid signature appended, it is just not verified. For this reason themes need to be applied with the tool, rather than in Personalization / Themes.

Operating System Support*

  • Windows 8.1
  • Windows 10
  • Windows 11 (tested: 21H2, 22H2)
  • Future versions**

* Windows 7 or older will never be supported due to the way themes are implemented.

** The current code doesn't depend on any code, binary or memory layout of uxtheme and related dlls, therefore should work unless major changes are made to how themes in general work.

Download

Latest release

Development builds

Scoop:

scoop bucket add extras
scoop install secureuxtheme

LogonUI fix

Locking Windows makes LogonUI reset certain colors and ignore the currently set style. This tool can fix this problem. A picture comparison showing the Task Manager opened after locking Windows without and with the fix can be seen here:

LogonUI problem

Do note this feature might mess up some high contrast theme features when locking.

Screenshot

Program:

ThemeTool Screenshot

This is only a tool for enabling custom themes, no actual visual changes will be made. Regardless, here's a cool theme for illustration:

Screenshot

Theme used

Where to get themes

I recommend DeviantArt for finding themes, although it is a bit noisy. Alternatives are 7themes.su which is much more organized (but be wary of fake adware download buttons! use the one that says ะฏะฝะดะตะบั.ะ”ะธัะบ). Also, you can just search for themes with your favorite search engine. Make sure that the theme you're about to apply is compatible with your windows version.

Donations

This software is provided completely free of charge to you, however I spent time and effort developing it. If you like this software, please consider making a donation:

  • Bitcoin: 1N6UzYgzn3sLV33hB2iS3FvYLzD1G4CuS2
  • Monero: 83sJ6GoeKf1U47vD9Tk6y2MEKJKxPJkECG3Ms7yzVGeiBYg2uYhBAUAZKNDH8VnAPGhwhZeqBnofDPgw9PiVtTgk95k53Rd

Frequently Asked Questions

Q: Help, SecureUxTheme broke my install and it's login looping now

A: Help: Login loop after installing SecureUxTheme


Q: Help, a theme broke my install and it's login looping now

A: Help: Login loop after setting a theme


Q: I just want a themed Windows, what do I do with all this?

A: Help: Step by step installing SecureUxTheme and a custom theme


Q: I have 1909 or later, and the Address bar / Search bar is weird when clicked

A: Consider using OldNewExplorer which fixes this. Alternatively, see Issue #6.


Q: Can you make themes per-program?

A: Unfortunately, this is close to impossible. However for Office programs, there is a plugin for fixing this.


Q: SelectTheme: pTheme->GetVisualStyle failed with 80070002

A: You probably installed a theme by opening / double clicking. Custom themes cannot be installed like that, they must be moved to %WINDIR%\Resources\Themes with all their accompanying files.

Is it SecureUxTheme or ThemeTool? And what does it stand for anyways?

Naming has been pretty messy in this project, I admit that. Originally this project was for myself, and consisted of only the hooking dll, and required hex-editing the invalid signature to the themes. The project was named SecureUxTheme. In hindsight, this was a pretty bad naming. While it contains "secure" in the name, it is rather "safe" instead of "secure". The UxTheme part comes from the dll name (uxtheme.dll) which needed to be patched on XP when visual styles were introduced. This dll is no longer containing the signature verification code since Windows Vista, however the name stuck, and all software similar to this are called uxtheme-patchers. Anyways, after deciding to release, I added a new component named "ThemeInvalidSigner" for adding the invalid signature to themes, and also an NSIS installer so that you don't have to run .reg files. This was the initial release. Later I grew tired of various problems and issue reports with the built-in Personalization I was using for letting users set themes, and this is when ThemeTool was born. It originally was a proof-of-concept app for setting themes via the IThemeManager2 COM interface I reverse-engineered, however it soon got the capability of patching themes, and eventually replaced the installer too. This also improved on the virus detections, for unknown reasons.

TL;DR: SecureUxTheme is the project and the hook dll, ThemeTool is the installer / UI component.

Building

Requirements

  • Visual Studio 2022 (or above) with x86, x64, ARM64 toolchains

Compiling

Note that the order of the builds is important, building ThemeTool will fail if some architecture is missing SecureUxTheme build.

  1. Open SecureUxTheme.sln
  2. Build SecureUxTheme as Release/Win32
  3. Build SecureUxTheme as Release/ARM64
  4. Build SecureUxTheme as Release/x64
  5. Build ThemeTool as Release/Win32

Debugging

not fun

License

See the LICENSE file.

More Repositories

1

OpenHashTab

๐Ÿ“ File hashing and checking shell extension
C++
2,498
star
2

MagicSigner

Signtool for expired certificates
C++
372
star
3

physmem_drivers

A collection of various vulnerable (mostly physical memory exposing) drivers.
PowerShell
265
star
4

nSkinz

Skin changer for CS:GO
C++
226
star
5

linux_injector

A simple ptrace-less shared library injector for x64 Linux
C++
202
star
6

hdd_serial_spoofer

Windows driver for spoofing serial number of HDDs
C++
186
star
7

IDAShell

Shell extension for opening executables in IDA
C++
184
star
8

x86

Pretty x86 instruction reference site generator
PowerShell
56
star
9

ida_setup_password_cracker

A bruteforcer for IDA Pro setup passwords
C
26
star
10

WinDiskFlash

Disk image flasher for Windows
C++
25
star
11

VirusTotal-FPContacts

Contacts for VirusTotal scanners
21
star
12

PawnIO

Input-output driver
C++
20
star
13

PEDiffGen

Subtract one PE file from another!
C++
19
star
14

msvcrt.lib

.lib file for linking against the NT CRT
17
star
15

PawnPP

A Pawn p-code interpreter written in C++
C++
13
star
16

simplerw

a dumb rpm/wpm example driver
C++
12
star
17

SaferIO

A slightly safer io access library
C
10
star
18

simplerw_sym

a dumb rpm/wpm example driver 2
C++
9
star
19

siggrep

a grep-like utility for testing for binary patterns in a file
C++
9
star
20

7zip_source

A repo of 7-zip's source code with history
C++
8
star
21

namazso.eu

CSS
8
star
22

riseup-alias-generator

๐Ÿฆ Generate email address aliases on riseup.net
PowerShell
8
star
23

ShittyUxTheme

A file patching UxTheme patcher using symbols
C++
7
star
24

MultiLatency

A simple program to check latency to multiple hosts.
C#
6
star
25

AzuKI

Azure Key Impersonator
C++
6
star
26

FNFBRServer

A server for FunkinBattleRoyale
C#
6
star
27

ProIntelliColor

Set taillight color on the Pro IntelliMouse, platform independently
C
5
star
28

QuickXorHash

A high performance QuickXorHash implementation
C
5
star
29

PawnIO_csharp_test

PawnIO C# test
C#
5
star
30

signserver

Authenticode signing server
Rust
4
star
31

PawnIOLib

Wrapper library and tooling for PawnIO
C++
4
star
32

tf2idb_itemserver

A php sqlite database generator for TF2's item schema txt
PHP
3
star
33

langcomp

Localization to resource file compiler
PowerShell
2
star
34

platypus_map_converter

A map converter for the 2002 game Platypus.
C++
2
star
35

PawnIO.Modules

Modules for use with PawnIO
Pawn
2
star
36

untchar

The opposite of tchar.h
PowerShell
2
star
37

services

Docker-composes for services on namazso.eu
Perl
1
star
38

atomix_clone

nAtomix, a simple C99 clone of the ATARI game Atomix
C++
1
star
39

blitzunlink

A Blitz blob to COFF converter.
C++
1
star
40

rcon_client

A C RCON client I wrote a long time ago
C
1
star