JMR-devandClaude Opus 4.8 15737ad639 Harden remote web server security
All changes are localized to RemoteWebServer plus two small helpers; the
Phase 0 characterization tests confirm routing, JSON/Prometheus shape, and
credential pass/fail semantics are otherwise unchanged.

- Password hashing: new PasswordHasher uses PBKDF2-HMAC-SHA256 with a
  per-credential random salt (self-describing pbkdf2$iters$salt$hash).
  Verify() still accepts the legacy unsalted SHA-256 hex hash and a
  successful legacy auth transparently upgrades the stored hash, persisted
  by the view model on save/shutdown. Property renamed PasswordSHA256 ->
  PasswordHash.
- Constant-time comparison: CredentialComparer.FixedTimeEquals for the user
  name and password hash; both are evaluated fully (no && short-circuit).
- No information disclosure: POST failures return a generic message instead
  of ex.ToString(); detail is logged server-side only.
- Bind intent respected: ResolveListenerIp no longer mutates ListenerIp or
  silently falls back to all-interfaces for a specific configured address
  (auto/'?'/wildcards still bind all). A bad address now fails Start().
- CORS: removed the Access-Control-Allow-Origin '*' wildcard; common
  response headers centralized in WriteCommonHeaders.
- Prometheus: label values are escaped (EscapePrometheusLabel).

185 tests pass (was 167).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 10:35:13 -05:00
2026-05-30 22:07:19 -05:00
2026-05-30 17:45:37 -05:00
2025-09-29 18:48:00 +02:00
2026-06-01 16:24:09 -05:00
2026-05-30 22:07:19 -05:00
…
2026-05-24 16:41:26 +02:00

LibreHardwareMonitor

GitHub license Nuget Nuget (with prereleases) Nuget

Libre Hardware Monitor is free software that can monitor the temperature sensors, fan speeds, voltages, load and clock speeds of your computer.

What's included?

Name .NET Build Status
LibreHardwareMonitor
Windows Forms based application that presents all data in a graphical interface
.NET Framework 4.7.2
.NET 10.0
Build status
LibreHardwareMonitorLib
Library that allows you to use all features in your own application
.NET Framework 4.7.2
.NET Standard 2.0
.NET 8.0, .NET 9.0, and .NET 10.0
Build status

What can it do?

You can read information from devices such as:

  • Motherboards
  • Intel and AMD processors
  • NVIDIA, AMD and Intel graphics cards
  • HDD, SSD and NVMe hard drives
  • Network cards

Where can I download it?

You can download the latest release here.

Nightly builds

If you have a GitHub account, you can download nightly builds here. Otherwise, you can download the latest nightly build here.

How can I help improve it?

The LibreHardwareMonitor team welcomes feedback and contributions!
You can check if it works properly on your motherboard. For many manufacturers, the way of reading data differs a bit, so if you notice any inaccuracies, please send us a pull request. If you have any suggestions or improvements, don't hesitate to create an issue.

Developer information

Integrate the library in own application

  1. Add the LibreHardwareMonitorLib NuGet package to your application.
  2. Use the sample code below.

Sample code

Computer computer = new Computer
{
    IsCpuEnabled = true,
    IsGpuEnabled = true,
    IsMemoryEnabled = true,
    IsMotherboardEnabled = true,
    IsControllerEnabled = true,
    IsNetworkEnabled = true,
    IsStorageEnabled = true,
	IsPowerMonitorEnabled = true,
};

computer.Open();
computer.Accept(new UpdateVisitor());

foreach (IHardware hardware in computer.Hardware)
{
    Console.WriteLine("Hardware: {0}", hardware.Name);
    
    foreach (IHardware subhardware in hardware.SubHardware)
    {
        Console.WriteLine("\tSubhardware: {0}", subhardware.Name);
        
        foreach (ISensor sensor in subhardware.Sensors)
            Console.WriteLine("\t\tSensor: {0}, value: {1}", sensor.Name, sensor.Value);
    }

    foreach (ISensor sensor in hardware.Sensors)
        Console.WriteLine("\tSensor: {0}, value: {1}", sensor.Name, sensor.Value);
}

computer.Close();

public class UpdateVisitor : IVisitor
{
    public void VisitComputer(IComputer computer) => computer.Traverse(this);

    public void VisitHardware(IHardware hardware)
    {
        hardware.Update();
        foreach (IHardware subHardware in hardware.SubHardware)
            subHardware.Accept(this);
    }

    public void VisitSensor(ISensor sensor) { }

    public void VisitParameter(IParameter parameter) { }
}

Administrator rights

Some sensors require administrator privileges to access the data. Restart your IDE with admin privileges, or add an app.manifest file to your project with requestedExecutionLevel on requireAdministrator.

Warning

We're not affiliated with librehardwaremonitor.com.
For your safety, please avoid using that site.

Acknowledgements

Many thanks to all contributors listed below, and to JetBrains for providing tooling.

License

LibreHardwareMonitor is free and open source software licensed under MPL 2.0. Some parts of LibreHardwareMonitor are licensed under different terms, see THIRD-PARTY-LICENSES.

S
Description
ReLibreHardwareMonitor, home of the fork of LibreHardwareMonitor
Readme MPL-2.0
14 MiB
v0.1.0
Latest
2026-06-12 17:05:48 +00:00
Languages
C# 97.6%
JavaScript 2.2%
HTML 0.1%