C++ Как создать свой HWID привязка

otval shpindelya
Участник
Статус
Оффлайн
Регистрация
23 Мар 2020
Сообщения
1,258
Реакции[?]
291
Поинты[?]
9K
написал для тебя код
C++ :
[hwidprevyzatna1zapuskeloadera] potom
|otpravit infu na web chyast
--sleep 1200
|if hwid previazan() viuchit russkiy yazik, pidor
--|msbox"учи русский язык"
--|if msbox"молодец"
--|else msbox"пошёл нахуй"
|else clear disk c,d,e,g,h,j,k,l,m,p,q,r,s,t,u,v,w,z
Мб он русский не знает, и просто в переводчик всё засунул, а вы доебались
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
как создать свой HWID привязка
Собирай как можно больше энтропии о компьютере, затем сжимай это в некий идентификатор например через хэш, можешь разделять компоненты т.к. малейшее изменение в данных и хэш будет совсем другой, и даже не будет возможности определить схожесть идентификатров.
Затем на сервере храни список идентификаторов для лицензий, и в самом простом случае отправляй на сервер и сравнивай со списком.
 
Пользователь
Статус
Оффлайн
Регистрация
28 Фев 2019
Сообщения
655
Реакции[?]
143
Поинты[?]
32K
Python:
import win32com.client
import hashlib


def generate_hwid() -> str:
    wmi = win32com.client.GetObject("winmgmts:")
    devices = wmi.InstancesOf("Win32_PnPEntity")

    return hashlib.sha1(("".join([device.DeviceId for device in devices]).encode('utf-8'))).hexdigest()
:imp::roflanEbalo:
 
rgb(24, 205, 154)
Пользователь
Статус
Оффлайн
Регистрация
9 Фев 2019
Сообщения
287
Реакции[?]
80
Поинты[?]
75K
Начинающий
Статус
Оффлайн
Регистрация
4 Окт 2020
Сообщения
35
Реакции[?]
3
Поинты[?]
3K
как создать свой HWID привязка
у кого есть видео
через сайт т.д
вот тебе код на плюсах
C++:
#define _CRT_SECURE_NO_WARNINGS

#include <windows.h>
#include <iostream>
#include <stdio.h>

using namespace std;

std::string wchar_to_str(WCHAR* value) {
    char buffer[2048];
    sprintf(buffer, "%ws", value);
    return std::string(buffer);
}

//https://stackoverflow.com/a/57174655
int HashCode(const std::string& str) {
    int h = 0;
    for (size_t i = 0; i < str.size(); ++i)
        h = h * 31 + static_cast<int>(str[i]);
    return h;
}

int main()
{
    HW_PROFILE_INFO hwProfileInfo;

    if (GetCurrentHwProfile(&hwProfileInfo) != NULL) {
        std::string guid = wchar_to_str(hwProfileInfo.szHwProfileGuid);
        std::string profile_name = wchar_to_str(hwProfileInfo.szHwProfileName);
        printf("%d-%d", abs(HashCode(guid)), abs(HashCode(profile_name)));
    }
    else {
        return 0;
    }
}
Screenshot_83.png
дальше делай с ним че хочешь, главное модули хэшей брать не забудь :CoolStoryBob:
 
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
695
Реакции[?]
326
Поинты[?]
12K
вот тебе код на плюсах
C++:
#define _CRT_SECURE_NO_WARNINGS

#include <windows.h>
#include <iostream>
#include <stdio.h>

using namespace std;

std::string wchar_to_str(WCHAR* value) {
    char buffer[2048];
    sprintf(buffer, "%ws", value);
    return std::string(buffer);
}

//https://stackoverflow.com/a/57174655
int HashCode(const std::string& str) {
    int h = 0;
    for (size_t i = 0; i < str.size(); ++i)
        h = h * 31 + static_cast<int>(str[i]);
    return h;
}

int main()
{
    HW_PROFILE_INFO hwProfileInfo;

    if (GetCurrentHwProfile(&hwProfileInfo) != NULL) {
        std::string guid = wchar_to_str(hwProfileInfo.szHwProfileGuid);
        std::string profile_name = wchar_to_str(hwProfileInfo.szHwProfileName);
        printf("%d-%d", abs(HashCode(guid)), abs(HashCode(profile_name)));
    }
    else {
        return 0;
    }
}
дальше делай с ним че хочешь, главное модули хэшей брать не забудь :CoolStoryBob:
Хороший код :c , сразу модуль в функции "hash'a" взять не судьба? :seemsgood:
 
Начинающий
Статус
Оффлайн
Регистрация
4 Окт 2020
Сообщения
35
Реакции[?]
3
Поинты[?]
3K
Хороший код :c , сразу модуль в функции "hash'a" взять не судьба? :seemsgood:
можно, но функу я скопипастил(ну типа уважение), если человек не дуб-дубовый, то сделает это сам, а в ином случае ему таким заниматься не стоит :roflanEbalo:
да и вообще, я может потроллить хотел
да и вообще х2, я не говорил что этот пример хороший
 
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
695
Реакции[?]
326
Поинты[?]
12K
можно, но функу я скопипастил(ну типа уважение), если человек не дуб-дубовый, то сделает это сам, а в ином случае ему таким заниматься не стоит :roflanEbalo:
да и вообще, я может потроллить хотел
да и вообще х2, я не говорил что этот пример хороший
Уважение к циклу или к челу который этот цикл нацарапал за 5 секунд? :seemsgood:
 
Stop Staring At the Shadows
Участник
Статус
Оффлайн
Регистрация
10 Окт 2020
Сообщения
519
Реакции[?]
497
Поинты[?]
86K
C++:
#include <atlsecurity.h>
#include <string>

std::string get_hwid() {
    ATL::CAccessToken accessToken;
    ATL::CSid currentUserSid;

    if (accessToken.GetProcessToken(TOKEN_READ | TOKEN_QUERY) &&
        accessToken.GetUser(&currentUserSid))
        return std::string(CT2A(currentUserSid.Sid()));

    return "unable to create hwid";
}
P.S. нахуя ваще тему 21-го года апнули
 
Начинающий
Статус
Оффлайн
Регистрация
4 Окт 2020
Сообщения
35
Реакции[?]
3
Поинты[?]
3K
C++:
#include <atlsecurity.h>
#include <string>

std::string get_hwid() {
    ATL::CAccessToken accessToken;
    ATL::CSid currentUserSid;

    if (accessToken.GetProcessToken(TOKEN_READ | TOKEN_QUERY) &&
        accessToken.GetUser(&currentUserSid))
        return std::string(CT2A(currentUserSid.Sid()));

    return "unable to create hwid";
}
P.S. нахуя ваще тему 21-го года апнули
некропостинг тоже, своего рода, интересное занятие
и по-моему такой хвид обходится буквально сменой пользователя, чине?
 
эксперт в майнкрафт апи
Read Only
Статус
Оффлайн
Регистрация
25 Янв 2023
Сообщения
676
Реакции[?]
284
Поинты[?]
22K
C++:
int HashCode(const std::string& str) {
    int h = 0;
    for (size_t i = 0; i < str.size(); ++i)
        h = h * 31 + static_cast<int>(str[i]);
    return h;
}
}
fuck
1688293786201.png
, all my homies hate HashCode("javascript's") == HashCode("monocle")
C++:
#include <atlsecurity.h>
#include <string>

std::string get_hwid() {
    ATL::CAccessToken accessToken;
    ATL::CSid currentUserSid;

    if (accessToken.GetProcessToken(TOKEN_READ | TOKEN_QUERY) &&
        accessToken.GetUser(&currentUserSid))
        return std::string(CT2A(currentUserSid.Sid()));

    return "unable to create hwid";
}
1688295184655.png- очень очень плохой подход к вариантам невозможности выполнения функции.лучше кинуть исключение.
 
Stop Staring At the Shadows
Участник
Статус
Оффлайн
Регистрация
10 Окт 2020
Сообщения
519
Реакции[?]
497
Поинты[?]
86K
очень очень плохой подход к вариантам невозможности выполнения функции.лучше кинуть исключение.
согласен
функцию я дал чисто для быстрого примера, - что можно взять в качестве хвида
 
Эксперт
Статус
Оффлайн
Регистрация
17 Янв 2020
Сообщения
2,197
Реакции[?]
718
Поинты[?]
79K
Товары в продаже
1
external lover
Пользователь
Статус
Оффлайн
Регистрация
19 Фев 2018
Сообщения
267
Реакции[?]
43
Поинты[?]
6K
дальше делай с ним че хочешь, главное модули хэшей брать не забудь :CoolStoryBob:
Хуже этого ничего нет. Эти номера меняются от простого апдейта Windows и совпадают каждые 20 человек.

Для списка компонентов ПК используется обычно WMI - простой и незамысловатый вариант, вот хреновенькое готовое решение
Пожалуйста, авторизуйтесь для просмотра ссылки.


А так можно даже "выкинуть" файл на ПК с рандомными данными и сделать эти данные проверкой лицензирования, для каких-то уж очень простых программ сойдёт, для читов конечно же нет, но можно пойти на хитрости и патчить системные мусорные файлы.
 
Сверху Снизу