Sinisterly
[C++] [WINDOWS] - Getting HWID - Printable Version

+- Sinisterly (https://sinister.ly)
+-- Forum: Coding (https://sinister.ly/Forum-Coding)
+--- Forum: C, C++, & Obj-C (https://sinister.ly/Forum-C-C-Obj-C)
+--- Thread: [C++] [WINDOWS] - Getting HWID (/Thread-C-WINDOWS-Getting-HWID)



[C++] [WINDOWS] - Getting HWID - NukeZzZin - 12-18-2022

This is a simple method to get HWID using <windows.h>.
Code:
#include <iostream>
#include <windows.h>

int main(int argc, char** argv)
{
    // ~ initialize (HW_PROFILE_INFO) structure
    HW_PROFILE_INFO _HW_PROFILE_INFO;
    // ~ setting (HW_PROFILE_INFO) structure
    if (GetCurrentHwProfile(&_HW_PROFILE_INFO) != FALSE)
    {
        // ~ printing (HW_PROFILE_INFO) structure
        std::cout << "Hardware Guid: " << _HW_PROFILE_INFO.szHwProfileGuid << std::endl;
    }
    return EXIT_SUCCESS;
}



RE: [C++] [WINDOWS] - Getting HWID - onetakexd - 08-26-2024

Thanks dude i have 3 days search some like that!


RE: [C++] [WINDOWS] - Getting HWID - chunky - 01-15-2025

I'd be rather careful with this approach.

The szHwProfileGuid cannot be reliably used to obtain a unique HWID for a system, as the intended functionality is different. This GUID uniquely identifies each hardware profile on a system - not the system itself. Since Windows permits users to create and delete hardware profiles however they like, the szHwProfileGuid is dynamic and does not serve as a persistent or system-wide identifier as it can change at any time or may not even be unique at all.

Check out the documentation of the HW_PROFILE_INFO structure to learn more.

A more sophisticated approach would be to query the UUIDs or other data of the individual hardware components themselves and then calculate a hash on the server side that serves as a unique identifier so an attacker wouldn't know what data exactly needs to be spoofed.