-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Изи привязка для вашего c+p.
Основной код (hwutils.cpp):
1) Устанавливаем адрес к будущим файлам, для этого просто вставляете ссылку на нужный каталог вашего сайта, где будут лежать файлы, которые софт будет проверять.
Меняем "
2) Меняем текст для проверки подлинности файла. Находим строку:
Меняем "HGF%R3" на ваш текст в файлах, например "123".
3) Находим строки на выход false:
- указываем свой адрес и название файла, куда будет сохранятся серийник, если лицензия не обнаружена.
- вставляем функцию, которая срабатывает при нажатии кнопки паники/unhook, которая выгружает софт.
3) Далее активируем саму проверку на лицензию, вставляем проверка на DoesHWIDMatch() в функции которая загружает ваш софт или на открытие меню.
Так же в файл, где идет проверка подключите hwutils.h
После запротектите .dll, дабы сайт и ключ проверки не украли. WELL PLAYD. Вы топ кодер, можно продавать софт с подпиской! Уху! Если проверка прошла неудачно серийник будет в файле на диске C, файл "серийник.ini" с текстом для проверки, который вы указали надо залить в каталог сайта, который опять же был указан вами. Profit.
Основной код (hwutils.cpp):
Код:
#include "stdafx.h"
#include "hwutils.h"
#include <iostream>
#include <urlmon.h>
#include <string>
#include <wininet.h>
#include <locale>
#include <windows.h>
#include "Cheat.h"
#include <sstream>
#pragma comment(lib, "wininet")
#pragma comment(lib,"wininet.lib")
#pragma comment(lib, "urlmon.lib")
using namespace std;
std::string ReadHWFile() {
std::ifstream ifs("C:\\h.txt");
std::string content((std::istreambuf_iterator<char>(ifs)),
(std::istreambuf_iterator<char>()));
return content;
}
// Функция которая узнает серийник ПК.
string serial() {
DWORD lVolSerialNbr = 0;
char sHDSerial[255] = "";
GetVolumeInformation("C:\\", 0, 0, &lVolSerialNbr, 0, 0, 0, 0);
_ultoa(lVolSerialNbr, sHDSerial, 10);
std::string c(sHDSerial);
return c;
}
bool DoesHWIDMatch() { // Сама функция проверки, если проверка успешная выходит - true / не успешная - false
HINTERNET connect = InternetOpen("MyBrowser", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); // Создаем канал для подключения к сети
if (!connect) // проверка на успешность создания канала для подключения к сети
{
return false;
}
std::string URL = "http://beardhook.xyz/keys/" + serial() + ".ini"; // указываем в качестве ссылки для последующего открытия и чтения файла, адрес сайта + файл серийник.ini
LPCSTR Final = URL.c_str();
HINTERNET OpenAddress = InternetOpenUrl(connect, Final, NULL, INTERNET_DEFAULT_HTTPS_PORT, INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_KEEP_CONNECTION, 0);
Sleep(10);
if (!OpenAddress) // Проверка на доступ к сайту, aka подключение к сети
{
InternetCloseHandle(connect);
return false;
MessageBox(NULL, "Ошибка:", "Нету подключения к интернете!", MB_OK);
}
char DataReceived[4096];
DWORD NumberOfBytesRead = 0;
while (InternetReadFile(OpenAddress, DataReceived, 4096, &NumberOfBytesRead) && NumberOfBytesRead) {} // Читает файл и записывает данные в переменные
InternetCloseHandle(OpenAddress); // выключаем интерпутер
InternetCloseHandle(connect); // выключаем интерпутер
if (strstr(DataReceived, "HGF%R3")) // проверяем на нужный текст в файле, например HGF%R3
{
return true;
}
else
{
E::Misc->Panic(); // Здесь функция выгрузки вашего софта, в каждом своя. Тута для TGF.
static TCHAR path[MAX_PATH]; // создаем переменную под адресс
std::string serial1 = serial(); // создаем и приравниваем переменной серийник, для последующей записи
LPCSTR Final1 = serial1.c_str(); // Просто забиваем в ещё одну переменную серийник, даунский мув конечно.
std::string folder, file, serial; // создаем больше переменных, ибо чет мало было
file = std::string(path) + strenc("C:\\serialkey.ini"); // прописываем адресс для сохранения файла с серийником
WritePrivateProfileString(Final1, Final1, Final1, file.c_str()); // Записываем серийник в файл указанный строкой выше, дабы покупатель вашей пасты радовался.
MessageBox(NULL, "Подписка не обнаружена!", "Ошибка:", MB_OK); // Сообщение о отсуствии подписки.
}
return false;
}
hwutils.h:
stdafx.cpp
stdafx.h
targetver.h
Код:
#pragma once
extern bool DoesHWIDMatch();
Код:
#include "stdafx.h"
Код:
#pragma once
#include "targetver.h"
#include <windows.h>
#include <tlhelp32.h>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <sstream>
#include <string>
#include <psapi.h>
#include <time.h>
#include <process.h>
#include <vector>
#include <map>
#include <ostream>
#include <Shlobj.h>
#include <math.h>
#include <stdint.h>
#include <string>
#include <string.h>
#include <cmath>
#include <float.h>
#include <codecvt>
#include "targetver.h"
#include <atlbase.h>
#include <atlcom.h>
#include <sapi.h>
#include <algorithm>
#include <iterator>
#include <stdio.h>
#include <tchar.h>
Код:
#include <SDKDDKVer.h>
1) Устанавливаем адрес к будущим файлам, для этого просто вставляете ссылку на нужный каталог вашего сайта, где будут лежать файлы, которые софт будет проверять.
Код:
std::string URL = "http://beardhook.xyz/keys/" + serial() + ".ini";
Пожалуйста, авторизуйтесь для просмотра ссылки.
" на ваш каталог (создаем папку на хосте и вставляем адрес)2) Меняем текст для проверки подлинности файла. Находим строку:
Код:
if (strstr(DataReceived, "HGF%R3"))
3) Находим строки на выход false:
Код:
file = std::string(path) + strenc("C:\\serialkey.ini");
Код:
E::Misc->Panic();
3) Далее активируем саму проверку на лицензию, вставляем проверка на DoesHWIDMatch() в функции которая загружает ваш софт или на открытие меню.
Код:
if (DoesHWIDMatch() == true)
{
// тут код загрузки самого софта после инжекта или код нажатия кнопки и открытия меню и т.п.
}
Код:
#include "hwutils.h"
Последнее редактирование: