-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для 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 в списке.
(Если быть честным то эта хуета будет ещё хуже чем тема ниже, ну и похуй )
Вот сам код ( ):
Код для запуска ():
И так, давайте по подробнее, данный мега крутой код создаёт уникальный идентификатор оборудования для компьютера и сверяя его со списком авторизованных HWID(ов) с Pastebin(a). Если HWID есть в списке, пользователь считается авторизованным. Если HWID отсутствует в списке, пользователь считается неавторизованным.
Идентификатор HWID генерируется путем объединения серийного номера жесткого диска и имени компьютера, естественно это можно улучшить добавив свои проверки, к примеру те же ядра процессора. Ну так вот после хэширования с использованием SHA-256. Это создает уникальный идентификатор для компьютера, который трудно подделать или изменить (наверна, если вас крякнут через 3 наносекунды я ни винавад).
Код также включает класс CodeIntegrityChecker, который проверяет целостность самого кода путем вычисления SHA-256 кода и сравнения его с известным значением хэша, хранящимся в хэш-константе. Если вычисленный хэш не соответствует известному значению хэша, то наврене код был изменен и программа завершает работу. Это может помочь предотвратить вмешательство в программу.
F.A.Q: Метод getSerialNumber() отвечает за получение серийного номера жесткого диска на текущем компьютере. .
Метод generateHWID() отвечает за генерацию идентификатора HWID. Он делает за счёт серийного номера жесткого диска и имени компьютера, а затем хэширования этой информации с использованием SHA-256. Потом хэш форматируется как шестнадцатеричная строка и возвращается как HWID.
Метод IsWhiteList() отвечает за проверку того, находится ли HWID в списке.
(Если быть честным то эта хуета будет ещё хуже чем тема ниже, ну и похуй )
Вот сам код ( ):
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();
}
Java:
if (CoolClassName.IsWhiteList(generateHWID())) {
//Чо
} else {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(new StringSelection(generateHWID()), null);
System.exit(0);
}
Последнее редактирование: