Skip to content

Proof-of-concept DLL to apply dark mode to Fiddler Classic/WinForms.

License

Notifications You must be signed in to change notification settings

etdon/fiddler-customizer

Repository files navigation

Windows x64 C++/CLI Apache 2.0

πŸ”° Introduction

The fiddler-customization project is a proof-of-concept DLL to apply a dark mode look to the Fiddler Classic UI which doesn't support it by default and is using various, deprecated, WinForm controls making customization tedious. The tool works by leveraging mostly un-documented Windows API for drawing/flagging as well as C++/CLI to interact with the CIL components of the application during run-time since Fiddler Classic is written in C#.

As mentioned this is mainly a proof-of-concept and the project is not finished. Some deprecated controls will still have white borders, dark mode rendering might not apply to all windows and pages and the visibility of some controls might not be optimal. It's also a proof-of-concept because none of the used techniques fully depend on the Fiddler Classic implementation, with rather small adjustments the same effect can be achieved for other WinForm applications.

Preview:

Credits to the win32-custom-menubar-aero-theme project for providing additional details regarding the mostly un-documented drawing process of native themes.

πŸš€ Getting Started

Important

Requirements:

If want to download a pre-compiled executable you can find all releases paired with their checksums here: Releases

In order to inject the DLL into Fiddler Classic using the recommended DLL injector you can use the following command:

dll-injector.exe "Fiddler.exe" <DLL path>

🫴 Contributing

The contribution guidelines are a part of the shared-guidelines repository and can be found here: Contributing

πŸ“„ License

The fiddler-customization project is licensed under the Apache 2.0 License.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.