Гайд Добавляем проверку на HWID в индиго

nixware.cc
Эксперт
Статус
Оффлайн
Регистрация
1 Июл 2017
Сообщения
1,631
Реакции[?]
1,534
Поинты[?]
31K
Здарова тру пастеры, сегодня мы добавим проверку на hwid в индиго
Заходим в main.cpp
Добавляем в начало:
Код:
#include "Main.h"
#include "../RL/ReflectiveLoader.h"

#define me 123456 //вместо 123456 вводим ключ из программы
#define user 654321 //сюда вводим hwid другого юзера

extern HINSTANCE hAppInstance;

UCHAR szFileSys[255], szVolNameBuff[255];
DWORD dwMFL, dwSysFlags;
DWORD dwSerial;
LPCTSTR szHD = "C:\\";
После этого заменяем это:
Код:
BOOL WINAPI DllMain( HINSTANCE hinstDLL , DWORD fdwReason , LPVOID lpReserved )
{
    if ( fdwReason == DLL_PROCESS_ATTACH )
    {
        DisableThreadLibraryCalls( hinstDLL );

        Client::BaseDir = CSX::Utils::GetHackWorkingDirectory().c_str();

        if ( Client::BaseDir.size() < 1 )
        {
            Client::BaseDir = CSX::Utils::GetModuleBaseDir( hinstDLL );
        }

#if ENABLE_DEBUG_FILE == 1
        AllocConsole();
        AttachConsole(GetCurrentProcessId());
        freopen("CONIN$", "r", stdin);
        freopen("CONOUT$", "w", stdout);
        freopen("CONOUT$", "w", stderr);

        Client::LogFile = Client::BaseDir + "\\debug.log";
        DeleteFileA( Client::LogFile.c_str() );
        CSX::Log::LogFile = Client::LogFile;
        printf("Client::BaseDir = %s\nClient::LogFile = %s\n", Client::BaseDir.c_str(), Client::LogFile.c_str());
        CSX::Log::Add( "::Init::" );

#endif

        CreateThread( 0 , 0 , CheatEntry , hinstDLL , 0 , 0 );
    }
    else if ( fdwReason == DLL_PROCESS_DETACH )
    {
        Engine::Shutdown();
    }

    return TRUE;
}
На это:
Код:
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
{
    if (fdwReason == DLL_PROCESS_ATTACH)
    {
        DisableThreadLibraryCalls(hinstDLL);

        Client::BaseDir = CSX::Utils::GetHackWorkingDirectory().c_str();

        if (Client::BaseDir.size() < 1)
        {
            Client::BaseDir = CSX::Utils::GetModuleBaseDir(hinstDLL);
        }
        //HWID stuff...
        GetVolumeInformation(szHD, (LPTSTR)szVolNameBuff, 255, &dwSerial, &dwMFL, &dwSysFlags, (LPTSTR)szFileSys, 255);

        if (dwSerial == me || user)
        {
            Sleep(100);
        }
        else
        {
            MessageBox(NULL, "HWID не верный!", "Пашол нахуй", MB_OK);
            exit(0);
            return TRUE;
        }

#if ENABLE_DEBUG_FILE == 1
        AllocConsole();
        AttachConsole(GetCurrentProcessId());
        freopen("CONIN$", "r", stdin);
        freopen("CONOUT$", "w", stdout);
        freopen("CONOUT$", "w", stderr);

        Client::LogFile = Client::BaseDir + "\\debug.log";
        DeleteFileA( Client::LogFile.c_str() );
        CSX::Log::LogFile = Client::LogFile;
        printf("Client::BaseDir = %s\nClient::LogFile = %s\n", Client::BaseDir.c_str(), Client::LogFile.c_str());
        CSX::Log::Add( "::Init::" );

#endif

        CreateThread( 0 , 0 , CheatEntry , hinstDLL , 0 , 0 );
    }
    else if ( fdwReason == DLL_PROCESS_DETACH )
    {
        Engine::Shutdown();
    }

    return TRUE;
}
Пожалуйста, авторизуйтесь для просмотра ссылки.
|
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
push me to the edge
Олдфаг
Статус
Оффлайн
Регистрация
22 Мар 2017
Сообщения
2,253
Реакции[?]
1,204
Поинты[?]
1K
Проверка на hwid Только на самого себя? или если у тебя купят чит ты будешь делать так
Код:
#define me 123456
#define user 654321
if (dwSerial == me || user ){
Sleep(100);
}
else
//pashol naxoy
 
nixware.cc
Эксперт
Статус
Оффлайн
Регистрация
1 Июл 2017
Сообщения
1,631
Реакции[?]
1,534
Поинты[?]
31K
Проверка на hwid Только на самого себя? или если у тебя купят чит ты будешь делать так
Код:
#define me 123456
#define user 654321
if (dwSerial == me || user ){
Sleep(100);
}
else
//pashol naxoy
Ну для продажи это будет делать неудобно, т.к нужно будет обновлять длл после каждой покупки, а так для друзей сойдет.
 
masta copypasta
Участник
Статус
Оффлайн
Регистрация
2 Июн 2017
Сообщения
683
Реакции[?]
253
Поинты[?]
0
уж проще по volume id сделать, там в 5 строк уложится можно =)

Код:
#include "stdafx.hpp"
#include <iostream>
#include <urlmon.h>
#include <string>
#include <wininet.h>
#include <locale>
#include <windows.h>
#include <sstream>
#include <TlHelp32.h>


unsigned int drive_type = GetDriveType(NULL);
char VolumeNameBuffer[100];
char FileSystemNameBuffer[100];
LPDWORD sz, fs;
unsigned long drive_sn;
GetVolumeInformation(NULL, VolumeNameBuffer, 100, &drive_sn, sz, fs, FileSystemNameBuffer, 100);

int me = 66666666;

if (drive_sn == me) // Volume id
{
return true;
}
else
{
Shared::m_bEject = true;

 MessageBox(NULL, "Error, you dont have licence!", "test:", MB_OK);

Shared::m_bEject = true;
}
Ну а чтобы узнать его то создаем нью проект и:
Код:
#include "stdafx.h"
#include <iostream>
#include <urlmon.h>
#include <string>
#include <wininet.h>
#include <locale>
#include <windows.h>
#include <sstream>
#include <TlHelp32.h>

int main()
{
unsigned int drive_type = GetDriveType(NULL);
char VolumeNameBuffer[100];
char FileSystemNameBuffer[100];
LPDWORD sz, fs;
unsigned long drive_sn;
GetVolumeInformation(NULL, VolumeNameBuffer, 100, &drive_sn, sz, fs, FileSystemNameBuffer, 100);

cout << "" << drive_sn << endl;

return 0;

}
 
Последнее редактирование:
return 0;
Забаненный
Статус
Оффлайн
Регистрация
6 Мар 2017
Сообщения
405
Реакции[?]
237
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
¯\_(ツ)_/¯
Пользователь
Статус
Оффлайн
Регистрация
1 Окт 2017
Сообщения
294
Реакции[?]
62
Поинты[?]
0
Не проще подключить вебпанель индиго для более удобной выдачи подписок?
 
Эксперт
Статус
Оффлайн
Регистрация
31 Мар 2017
Сообщения
997
Реакции[?]
652
Поинты[?]
0
Не проще подключить вебпанель индиго для более удобной выдачи подписок?
Подключишь дефолт - кряк лаунчера 100%.

Проверка очень и очень специфична, если давать друзьям, то у тебя не должно быть сомнений что они раздадут.

Если у тебя друзья - знают хоть немного про кряк - лаунчер помрёт.

Проверка имеет место быть, но это очень и очень херовое и не безопасное решение.

А вообще, я уже заебался говорить чтобы чекнули одну ссаную тему (лайкать не нужно.).
https://yougame.biz/threads/30453/
 
Эксперт
Статус
Оффлайн
Регистрация
12 Июн 2014
Сообщения
991
Реакции[?]
1,209
Поинты[?]
3K
эта "привязка" сродни иконкам на панели автомобиля - абсолютный 0...
но если и делать такое, то как-то так:
Код:
size_t        usercount = 4;
unsigned long drive_sn = 0;
unsigned long SNUser[usercount]
{
    11111111,
    22222222,
    33333333,
    44444444   
};


bool Check()
{
bool status = false;
unsigned int drive_type = GetDriveType(NULL);
char VolumeNameBuffer[100] = {0};
char FileSystemNameBuffer[100] = {0};
LPDWORD sz,
        fs;
unsigned long drive_sn = 0;

GetVolumeInformation(NULL,
 VolumeNameBuffer,
 100,
 &drive_sn,
 sz,
 fs,
 FileSystemNameBuffer,
 100);


for(size_t i = 0; i < usercount; i++)
{
    if(SNUser[i] == drive_sn)
    {
        status = true;
        break;
    }
}
return status;
}


int main()
{
 if(!Check())
{
    MessageBox(NULL, "Error, you dont have licence!", "FuckOFF!!!", MB_OK);
    exit(0);
}

std::cout << "YouKEy " << drive_sn << std::endl;

return 0;
}
 
Сверху Снизу