A windows tool for changing the start button logo

Related tags

Utilities WinLogo
Overview

WinLogo

About

This project is used to modify the start button logo of windows 10 computers.

The logos are precompiled into the binary, but the UI supports loading the images from files and then exporting a new dll / installer using the new configuration.

For more information, see Logo Images.

Installer UI Taskbar

Supported Versions

This tool was tested on Windows 10 21h1, but should work for any "new enough" version of Windows 10.

Installation

Currently, the installation can only be global for all the users in the computer, and requires administrative privileges.

Using the UI

Just slide the UI slider to install / uninstall. It may take a few seconds.

Manually

For a scripted deployment, you may do the same things as the UI manually:

Install

  1. Put winlogo.dll in a globally available directory (such as C:\Windows\System32)
  2. In cmd, run regsvr32.exe winlogo.dll

Uninstall

  1. In cmd, run regsvr32.exe /u winlogo.dll
  2. Restart explorer.exe
  3. Delete the dll

Compiling

The tool is built using Visual Studio 2019 - just use it to open the .sln file and compile (you might have to install the nuget dependencies for the UI project).

How Does it Work?

Registration

The tool is a DLL (winlogo.dll) loaded into explorer. In order to get loaded, it is registered as an Icon Overlay (that's why it can only be registered globally for all users).

For more details about the registration process, see Registration.cpp.

Painting

WinLogo uses IAT hooking to hook several functions used by explorer while drawing the start button (See LogoHooks.cpp):

  • OpenThemeDataForDpi - When explorer loads the theme, the theme handle for "Taskbarpearl" is saved in order to later find out when explorer draws the start button.
  • CloseThemeData - Unregisters the theme handle when it's closed.
  • DrawThemeBackground - Skips the drawing of the start button. The next hook is responsible for the drawing. The function is only called when drawing a "disabled" logo, so it is used to mark which type of logo we should draw.
  • EndBufferedPaint - Winlogo hijacks this function in order to draw the actual logo images.

Logo Images

The logo images are taken from resources compiled into the binary, named enabled.bmp and disabled.bmp. Currently, there are several limitations regarding the images:

  • They are compiled directly into winlogo.dll
  • They must be BMP files
  • Transparency is achieved by using a black background
  • The size is used for the drawing - there is now stretching / resizing done by winlogo.

Replacing the Images

The UI supports changing the images in the dll - just click on one of the images and select an image file from your computer without any of these limitations. The file will be converted and stretched to achieve the requirements.

After changing the images, it is possible to export either the dll / a new installer using the Export menu.

Credits

GSL

The code uses the Guidelines Support Library, as taken from this repository, commit 10ce5b634f40d1a51c7ab92c362c77d4438c1d51.

RestartManagerSession

The code for RestartManagerSession.cs was taken from the following gist: https://gist.github.com/falahati/34b23831733151460de1368c5fba8e93.

Issues
  • Please, update Winlogo for Windows 11

    Please, update Winlogo for Windows 11

    Hi @shsh999

    I have found some logos that I want to use to replace the Start Menu logo on the taskbar. I know your app is only for Windows 10, but I decided to try it on Windows 11 because I have upgraded to this new OS since it came out, but Winlogo is not working on Windows 11 and I have never tried it on Windows 10 because I recently found this repository and it caught my attention.

    I would like you to update Winlogo so that it can work with Windows 11, I am googling a lot about how to replace the start menu logo in Windows 11 but so far I have not found something convincing.

    By the way, I am also looking on the internet on how to create bmp files with transparency. Can you tell me what program you use to create transparent bmp files? How do you add transparency to a bmp file?

    opened by Dhyfer1 8
Releases(1.0.0)
Orbit, the Open Runtime Binary Instrumentation Tool, is a standalone C/C++ profiler for Windows and Linux

Orbit, the Open Runtime Binary Instrumentation Tool, is a standalone C/C++ profiler for Windows and Linux. Its main purpose is to help developers visualize the execution flow of a complex application.

Google 2.6k Jun 30, 2022
WinMerge is an Open Source differencing and merging tool for Windows.

WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and handle.

null 3k Jun 26, 2022
KeyScan is a C++ open source explanation tool targeting windows operating system.

KeyScan is a C++ open source explanation tool targeting windows operating system. it allows you to send keyboard events, mouse events and capture keystrokes (keylogger).!

null 9 Jun 12, 2022
A tool for use with clang to analyze #includes in C and C++ source files

Include What You Use For more in-depth documentation, see docs. Instructions for Users "Include what you use" means this: for every symbol (type, func

null 2.9k Jul 2, 2022
the checkra1n set of tools targeting bare metal, Linux and Windows

Universal toolchain Low-effort cross-compiling for the masses. What's Universal toolchain? It's a collection of sysroots and shell scripts in such a w

null 62 May 27, 2022
C-shellcode to hex converter, handy tool for paste & execute shellcodes in gdb, windbg, radare2, ollydbg, x64dbg, immunity debugger & 010 editor

shellex WARNING: the ugliest code in the world C-shellcode to hex converter. Handy tool for paste & execute shellcodes in gdb, windbg, radare2, ollydb

David Reguera Garcia aka Dreg 79 Jun 20, 2022
Play Doh Windows ACL Tools

PDAcl 是一个支持Windows活动目录扩展权限设置、Windows活动目录常规权限设置、Windows服务权限设置的命令工具。

倾旋 58 Jun 25, 2022
This project aims to facilitate debugging a kernel driver in windows by adding support for a code change on the fly without reboot/unload, and more!

BSOD Survivor Tired of always telling yourself when you got a BSOD that what if I could just return to the caller function which caused the BSOD, and

Ido Westler 142 Jun 20, 2022
Exploit for the RpcEptMapper registry key permissions vulnerability (Windows 7 / 2088R2 / 8 / 2012)

Perfusion On Windows 7, Windows Server 2008R2, Windows 8, and Windows Server 2012, the registry key of the RpcEptMapper and DnsCache (7/2008R2 only) s

Clément Labro 387 Jun 20, 2022
A tool to edit Cyberpunk 2077 sav.dat files

This is a holidays project and will probably not reach the user-friendly GUI state that a save editor is expected to have.

null 259 Jun 9, 2022
CVE-­2021­-1732 Microsoft Windows 10 本地提权漏 研究及Poc/Exploit开发

CVE-2021-1732 CVE-2021-1732 Microsoft Windows 10 本地提权漏 研究及Poc/Exploit开发 受影响系统及应用版本 Windows Server, version 20H2 (Server Core Installation) Windows 10

null 74 Jun 13, 2022
GSmartControl - Hard disk drive and SSD health inspection tool

GSmartControl Hard disk drive and SSD health inspection tool GSmartControl is a graphical user interface for smartctl (from smartmontools package), wh

Alexander Shaduri 172 Jun 29, 2022
Windows x64 rootkit

P4tch3r Windows x64 rootkit (tested on Windows 7) It's PoC of patching NtTerminateProcess function by just overwriting instructions catching arguments

null 8 Nov 23, 2021
AlleyWind is an advanced Win32-based and open-sourced utility that helps you to manage system's windows

AlleyWind AlleyWind is an advanced Win32-based and open-sourced utility that helps you to manage system's windows. AlleyWind could: Displays a graphic

KNSoft 17 Jun 20, 2022
x64 Windows PatchGuard bypass, register process-creation callbacks from unsigned code

NoPatchGuardCallback x64 Windows PatchGuard bypass, register process-creation callbacks from unsigned code Read: https://www.godeye.club/2021/05/22/00

Kento Oki 116 Jun 15, 2022
An asynchronous directory file change watcher module for Windows, macOS and Linux wrapped for V

A V module for asynchronously watching for file changes in a directory. The module is essentially a wrapper for septag/dmon. It works for Windows, macOS and Linux.

null 15 Jun 23, 2022
WhyNotWin11 - Detection Script to help identify why your PC isn't Windows 11 ready

Detection Script to help identify why your PC isn't Windows 11 ready

Robert C. Maehl 5.8k Jul 3, 2022
BlowBeef is a tool for analyzing WMI data.

Blowbeef BlowBeef is a tool for analyzing WMI data. Usage BlowBeef is a tool for analyzing WMI data.

倾旋 17 Jun 17, 2022
C/C++ Windows Process Injector for Educational Purposes.

ProcessInjector C/C++ Windows Process Injector for Educational Purposes. What does this software do? This is a simple process injector that uses the C

Berat Çağrı Eroğlu 8 May 3, 2022