Гайд Hwid auth - (outdate)

Начинающий
Статус
Оффлайн
Регистрация
11 Ноя 2019
Сообщения
18
Реакции[?]
1
Поинты[?]
1K

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Кхм, всем привет! я сделал крайне хреновую аутентификацию по хвиду. Вообще это обычный Pastebin в виде базы данных. Не советую использовать этот ужас если вы и в правду хотите сделать хорошую Защиту!

И так, давайте по подробнее, данный мега крутой код создаёт уникальный идентификатор оборудования для компьютера и сверяя его со списком авторизованных HWID(ов) с Pastebin(a). Если HWID есть в списке, пользователь считается авторизованным. Если HWID отсутствует в списке, пользователь считается неавторизованным.

Идентификатор HWID генерируется путем объединения серийного номера жесткого диска и имени компьютера, естественно это можно улучшить добавив свои проверки, к примеру те же ядра процессора. Ну так вот после хэширования с использованием SHA-256. Это создает уникальный идентификатор для компьютера, который трудно подделать или изменить (наверна, если вас крякнут через 3 наносекунды я ни винавад).

Код также включает класс CodeIntegrityChecker, который проверяет целостность самого кода путем вычисления SHA-256 кода и сравнения его с известным значением хэша, хранящимся в хэш-константе. Если вычисленный хэш не соответствует известному значению хэша, то наврене код был изменен и программа завершает работу. Это может помочь предотвратить вмешательство в программу.



F.A.Q: Метод getSerialNumber() отвечает за получение серийного номера жесткого диска на текущем компьютере. .

Метод generateHWID() отвечает за генерацию идентификатора HWID. Он делает за счёт серийного номера жесткого диска и имени компьютера, а затем хэширования этой информации с использованием SHA-256. Потом хэш форматируется как шестнадцатеричная строка и возвращается как HWID.

Метод IsWhiteList() отвечает за проверку того, находится ли HWID в списке.
(Если быть честным то эта хуета будет ещё хуже чем тема ниже, ну и похуй :CoolCat:)
Вот сам код ( :roflanPominki: ):
Java:
 public static final String HASH = "d5e44661b614695cfcfc448d53aa3fe3dde6f512a4790c7490d819852fa7813f";
    private static final String Database_URL = "https://pastebin.com/raw/"; //<= Пажалуста смэни айди пастебина

    public static void main(String[] args) {
        //Мега крутая проверка целостности кода
        if (!CodeIntegrityChecker.checkCodeIntegrity()) {
            System.exit(0);
        }

        String hwid = generateHWID();
        if (IsWhiteList(hwid)) {
            System.out.println("Успех! Авторизованный пользователь.");
        } else {
            System.out.println("УЖАС! Неавторизованный пользователь!");
        }
    }

    private static String getSerialNumber() {
        String serialNumber = "";
        try {
            Process process = Runtime.getRuntime().exec(new String[] { "wmic", "diskdrive", "get", "serialnumber" });
            process.getOutputStream().close();
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                if (line.trim().startsWith("SerialNumber")) {
                    serialNumber = line.split(" ")[1];
                    break;
                }
            }
            reader.close();
            process.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return serialNumber;
    }

    public static String generateHWID() {
        String input = "";
        input += getSerialNumber();
        input += System.getenv("computername"); //Самая жёская строчка | 😎 + 120% защиты к коду 😎
        try {
            MessageDigest md = MessageDigest.getInstance("SHA-256");
            byte[] hash = md.digest(input.getBytes(StandardCharsets.UTF_8));
            StringBuilder sb = new StringBuilder();
            for (byte b : hash) {
                sb.append(String.format("%02x", b));
            }
            return sb.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static boolean IsWhiteList(String hwid) {
        try {
            URL url = new URL(Database_URL);
            BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                if (line.trim().equals(hwid)) {
                    reader.close();
                    return true;
                }
            }
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    }

class CodeIntegrityChecker {
    public static boolean checkCodeIntegrity() {
        try {
            MessageDigest md = MessageDigest.getInstance("SHA-256");
            String currentCode = new String(Files.readAllBytes(Paths.get(UserAuth.class.getProtectionDomain().getCodeSource().getLocation().toURI())));
            byte[] hash = md.digest(currentCode.getBytes(StandardCharsets.UTF_8));
            String currentHash = bytesToHex(hash);
            return currentHash.equals(UserAuth.HASH);
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    private static String bytesToHex(byte[] bytes) {
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            sb.append(String.format("%02x", b));
            //AkrienAntiLeakRealCrack_2025.Start(кто разкументирует тот гей);
        }
        return sb.toString();
    }
Код для запуска (:NotLikeThis:):
Java:
if (CoolClassName.IsWhiteList(generateHWID())) {
   //Чо
} else {
   Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
   clipboard.setContents(new StringSelection(generateHWID()), null);
   System.exit(0);
}
 
Последнее редактирование:
Ушастый
Забаненный
Статус
Оффлайн
Регистрация
23 Ноя 2021
Сообщения
371
Реакции[?]
56
Поинты[?]
10K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Уровень защиты: Я :forsenGun: :CoolCat:
 
Начинающий
Статус
Оффлайн
Регистрация
12 Янв 2021
Сообщения
82
Реакции[?]
11
Поинты[?]
1K
> целостность самого кода
я думаю этот кусок кода можно просто убрать XDDDDDDD он бесполезен
 
Забаненный
Статус
Оффлайн
Регистрация
28 Дек 2022
Сообщения
66
Реакции[?]
6
Поинты[?]
3K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
6 Янв 2021
Сообщения
95
Реакции[?]
31
Поинты[?]
5K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В чем прикол чека на патч программы, если можно вырезать этот чек когда дебажить будешь?
 
Забаненный
Статус
Оффлайн
Регистрация
6 Янв 2021
Сообщения
95
Реакции[?]
31
Поинты[?]
5K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
8 Май 2023
Сообщения
457
Реакции[?]
5
Поинты[?]
6K
Кхм, всем привет! я сделал крайне хреновую аутентификацию по хвиду. Вообще это обычный Pastebin в виде базы данных. Не советую использовать этот ужас если вы и в правду хотите сделать хорошую Защиту!

И так, давайте по подробнее, данный мега крутой код создаёт уникальный идентификатор оборудования для компьютера и сверяя его со списком авторизованных HWID(ов) с Pastebin(a). Если HWID есть в списке, пользователь считается авторизованным. Если HWID отсутствует в списке, пользователь считается неавторизованным.

Идентификатор HWID генерируется путем объединения серийного номера жесткого диска и имени компьютера, естественно это можно улучшить добавив свои проверки, к примеру те же ядра процессора. Ну так вот после хэширования с использованием SHA-256. Это создает уникальный идентификатор для компьютера, который трудно подделать или изменить (наверна, если вас крякнут через 3 наносекунды я ни винавад).

Код также включает класс CodeIntegrityChecker, который проверяет целостность самого кода путем вычисления SHA-256 кода и сравнения его с известным значением хэша, хранящимся в хэш-константе. Если вычисленный хэш не соответствует известному значению хэша, то наврене код был изменен и программа завершает работу. Это может помочь предотвратить вмешательство в программу.



F.A.Q: Метод getSerialNumber() отвечает за получение серийного номера жесткого диска на текущем компьютере. .

Метод generateHWID() отвечает за генерацию идентификатора HWID. Он делает за счёт серийного номера жесткого диска и имени компьютера, а затем хэширования этой информации с использованием SHA-256. Потом хэш форматируется как шестнадцатеричная строка и возвращается как HWID.

Метод IsWhiteList() отвечает за проверку того, находится ли HWID в списке.
(Если быть честным то эта хуета будет ещё хуже чем тема ниже, ну и похуй :CoolCat:)
Вот сам код ( :roflanPominki: ):
Java:
 public static final String HASH = "d5e44661b614695cfcfc448d53aa3fe3dde6f512a4790c7490d819852fa7813f";
    private static final String Database_URL = "https://pastebin.com/raw/"; //<= Пажалуста смэни айди пастебина

    public static void main(String[] args) {
        //Мега крутая проверка целостности кода
        if (!CodeIntegrityChecker.checkCodeIntegrity()) {
            System.exit(0);
        }

        String hwid = generateHWID();
        if (IsWhiteList(hwid)) {
            System.out.println("Успех! Авторизованный пользователь.");
        } else {
            System.out.println("УЖАС! Неавторизованный пользователь!");
        }
    }

    private static String getSerialNumber() {
        String serialNumber = "";
        try {
            Process process = Runtime.getRuntime().exec(new String[] { "wmic", "diskdrive", "get", "serialnumber" });
            process.getOutputStream().close();
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                if (line.trim().startsWith("SerialNumber")) {
                    serialNumber = line.split(" ")[1];
                    break;
                }
            }
            reader.close();
            process.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return serialNumber;
    }

    public static String generateHWID() {
        String input = "";
        input += getSerialNumber();
        input += System.getenv("computername"); //Самая жёская строчка | 😎 + 120% защиты к коду 😎
        try {
            MessageDigest md = MessageDigest.getInstance("SHA-256");
            byte[] hash = md.digest(input.getBytes(StandardCharsets.UTF_8));
            StringBuilder sb = new StringBuilder();
            for (byte b : hash) {
                sb.append(String.format("%02x", b));
            }
            return sb.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static boolean IsWhiteList(String hwid) {
        try {
            URL url = new URL(Database_URL);
            BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                if (line.trim().equals(hwid)) {
                    reader.close();
                    return true;
                }
            }
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    }

class CodeIntegrityChecker {
    public static boolean checkCodeIntegrity() {
        try {
            MessageDigest md = MessageDigest.getInstance("SHA-256");
            String currentCode = new String(Files.readAllBytes(Paths.get(UserAuth.class.getProtectionDomain().getCodeSource().getLocation().toURI())));
            byte[] hash = md.digest(currentCode.getBytes(StandardCharsets.UTF_8));
            String currentHash = bytesToHex(hash);
            return currentHash.equals(UserAuth.HASH);
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    private static String bytesToHex(byte[] bytes) {
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            sb.append(String.format("%02x", b));
            //AkrienAntiLeakRealCrack_2025.Start(кто разкументирует тот гей);
        }
        return sb.toString();
    }
Код для запуска (:NotLikeThis:):
Java:
if (CoolClassName.IsWhiteList(generateHWID())) {
   //Чо
} else {
   Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
   clipboard.setContents(new StringSelection(generateHWID()), null);
   System.exit(0);
}
Работает 1.16
 
Сверху Снизу