Обмен данными asi to pawn

Pasha341d

Новичок
Автор темы
12
1
Есть сгенерированный чатом GPT код, который получает HWID. Как можно отправить эти данные на сервер, чтобы при вводе определенной команды в чат выводилось сообщение с HWID игрока? Я изначально пытался вывести игроку на экран до входа на сервер, но это не работает.

code:
// dllmain.cpp : Определяет точку входа для приложения DLL.
#include "pch.h"
#include <iostream>
#include <windows.h>
#include <MinHook.h>

DWORD GetHWID()
{
    // Получаем дескриптор тома C:
    DWORD volumeSerialNumber = 0;
    if (!GetVolumeInformation(
        L"C:\\",              // Используем префикс L для строки Unicode
        NULL,
        0,
        &volumeSerialNumber,
        NULL,
        NULL,
        NULL,
        0
    )) {
        // Обработка ошибки, если не удалось получить информацию о томе
        std::cerr << "Error getting volume information." << std::endl;
    }

    return volumeSerialNumber;
}

void AddMessageJumpQ(const char* text, unsigned int time, unsigned short flag, bool bPreviousBrief)
{
    ((void(__cdecl*)(const char*, unsigned int, unsigned short, bool))0x69F1E0)(text, time, flag, bPreviousBrief);
}

void __cdecl Hook_DrawRadar()
{
    // Получаем HWID
    DWORD hwid = GetHWID();

    // Преобразуем HWID в строку
    char hwidString[20];
    snprintf(hwidString, sizeof(hwidString), "%lu", hwid);

    // Выводим HWID
    AddMessageJumpQ(hwidString, 5000, 0, false);

}

BOOL APIENTRY DllMain(HMODULE hModule,
    DWORD  ul_reason_for_call,
    LPVOID lpReserved
)
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    {
        MH_Initialize();
        MH_CreateHook(reinterpret_cast<void*>(0x58A330), &Hook_DrawRadar, NULL);
        MH_EnableHook(reinterpret_cast<void*>(0x58A330));
    }
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
 
  • Ха-ха
Реакции: cute_filatov

why ega

РП игрок
Модератор
2,539
2,231
Есть сгенерированный чатом GPT код, который получает HWID. Как можно отправить эти данные на сервер, чтобы при вводе определенной команды в чат выводилось сообщение с HWID игрока? Я изначально пытался вывести игроку на экран до входа на сервер, но это не работает.

code:
// dllmain.cpp : Определяет точку входа для приложения DLL.
#include "pch.h"
#include <iostream>
#include <windows.h>
#include <MinHook.h>

DWORD GetHWID()
{
    // Получаем дескриптор тома C:
    DWORD volumeSerialNumber = 0;
    if (!GetVolumeInformation(
        L"C:\\",              // Используем префикс L для строки Unicode
        NULL,
        0,
        &volumeSerialNumber,
        NULL,
        NULL,
        NULL,
        0
    )) {
        // Обработка ошибки, если не удалось получить информацию о томе
        std::cerr << "Error getting volume information." << std::endl;
    }

    return volumeSerialNumber;
}

void AddMessageJumpQ(const char* text, unsigned int time, unsigned short flag, bool bPreviousBrief)
{
    ((void(__cdecl*)(const char*, unsigned int, unsigned short, bool))0x69F1E0)(text, time, flag, bPreviousBrief);
}

void __cdecl Hook_DrawRadar()
{
    // Получаем HWID
    DWORD hwid = GetHWID();

    // Преобразуем HWID в строку
    char hwidString[20];
    snprintf(hwidString, sizeof(hwidString), "%lu", hwid);

    // Выводим HWID
    AddMessageJumpQ(hwidString, 5000, 0, false);

}

BOOL APIENTRY DllMain(HMODULE hModule,
    DWORD  ul_reason_for_call,
    LPVOID lpReserved
)
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    {
        MH_Initialize();
        MH_CreateHook(reinterpret_cast<void*>(0x58A330), &Hook_DrawRadar, NULL);
        MH_EnableHook(reinterpret_cast<void*>(0x58A330));
    }
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
можешь реализовать это путем сокетов, либо же ракнета.
С сокетами не подскажу, а вот второй алгоритм алгоритм +- такой:
При помощи какой-либо библиотеки для хуков (rakhook например) отправлять кастомный пакет, либо же подменять какой-то уже существующий. на стороне сервера использовать Pawn.raknet при помощи которого обрабатывать пакеты от клиента