C++ Поддельный премиум в лобби

Пользователь
Статус
Оффлайн
Регистрация
24 Авг 2019
Сообщения
239
Реакции[?]
37
Поинты[?]
0
шо це таке и как это фиксить?
Вызвано исключение: нарушение доступа для чтения.
ntHeaders было 0xA8E4FD3D.
 
Начинающий
Статус
Оффлайн
Регистрация
2 Сен 2019
Сообщения
49
Реакции[?]
7
Поинты[?]
0
fakePrime = findPattern<uint8_t*>(L"client_panorama", "\x17\xF6\x40\x14\x10") - 1;

Новый паттерн
 
Not bad
Пользователь
Статус
Оффлайн
Регистрация
30 Мар 2018
Сообщения
182
Реакции[?]
30
Поинты[?]
3K
Ну вот вам обновленная версия..
C++:
#define NOMINMAX
#include <Windows.h>
#include <cstdint>
#include <exception>
#include <vector>

std::uint8_t* PatternScan(void* module, const char* signature)
{
    static auto pattern_to_byte = [](const char* pattern) {
        auto bytes = std::vector<int>{};
        auto start = const_cast<char*>(pattern);
        auto end = const_cast<char*>(pattern) + strlen(pattern);

        for (auto current = start; current < end; ++current) {
            if (*current == '?') {
                ++current;
                if (*current == '?')
                    ++current;
                bytes.push_back(-1);
            }
            else {
                bytes.push_back(strtoul(current, &current, 16));
            }
        }
        return bytes;
    };

    auto dosHeader = (PIMAGE_DOS_HEADER)module;
    auto ntHeaders = (PIMAGE_NT_HEADERS)((std::uint8_t*)module + dosHeader->e_lfanew);

    auto sizeOfImage = ntHeaders->OptionalHeader.SizeOfImage;
    auto patternBytes = pattern_to_byte(signature);
    auto scanBytes = reinterpret_cast<std::uint8_t*>(module);

    auto s = patternBytes.size();
    auto d = patternBytes.data();

    for (auto i = 0ul; i < sizeOfImage - s; ++i) {
        bool found = true;
        for (auto j = 0ul; j < s; ++j) {
            if (scanBytes[i + j] != d[j] && d[j] != -1) {
                found = false;
                break;
            }
        }
        if (found) {
            return &scanBytes[i];
        }
    }
    return nullptr;
}

DWORD WINAPI OnDllAttach(LPVOID base)
{
    while (!GetModuleHandleA("serverbrowser.dll"))
        Sleep(1000);

    try {
        static uint8_t* fakePrimeStatus = PatternScan(GetModuleHandleW(L"client_panorama.dll"), "83 F8 05 5E 0F 94 C0 C3");
        DWORD old_protect;

        VirtualProtect(fakePrimeStatus, 3, PAGE_EXECUTE_READWRITE, &old_protect);
        char patch[] = { 0x83, 0xF8, 0x00 }; // bytes for cmp instuction, 0x00 is so the instruction becomes cmp eax,0
        memcpy(fakePrimeStatus, patch, 3);
        VirtualProtect(fakePrimeStatus, 3, old_protect, nullptr);

        FreeLibraryAndExitThread(static_cast<HMODULE>(base), 1);
    }
    catch (const std::exception & ex) {
        FreeLibraryAndExitThread(static_cast<HMODULE>(base), 1);
    }
}

BOOL WINAPI DllMain(
    _In_      HINSTANCE hinstDll,
    _In_      DWORD     fdwReason,
    _In_opt_  LPVOID    lpvReserved
)
{
    switch (fdwReason) {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hinstDll);
        CreateThread(nullptr, 0, OnDllAttach, hinstDll, 0, nullptr);
        return TRUE;
    case DLL_PROCESS_DETACH:
        return TRUE;
    default:
        return TRUE;
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
14 Дек 2018
Сообщения
66
Реакции[?]
1
Поинты[?]
0
Ну вот вам обновленная версия..
C++:
#define NOMINMAX
#include <Windows.h>
#include <cstdint>
#include <exception>
#include <vector>

std::uint8_t* PatternScan(void* module, const char* signature)
{
    static auto pattern_to_byte = [](const char* pattern) {
        auto bytes = std::vector<int>{};
        auto start = const_cast<char*>(pattern);
        auto end = const_cast<char*>(pattern) + strlen(pattern);

        for (auto current = start; current < end; ++current) {
            if (*current == '?') {
                ++current;
                if (*current == '?')
                    ++current;
                bytes.push_back(-1);
            }
            else {
                bytes.push_back(strtoul(current, &current, 16));
            }
        }
        return bytes;
    };

    auto dosHeader = (PIMAGE_DOS_HEADER)module;
    auto ntHeaders = (PIMAGE_NT_HEADERS)((std::uint8_t*)module + dosHeader->e_lfanew);

    auto sizeOfImage = ntHeaders->OptionalHeader.SizeOfImage;
    auto patternBytes = pattern_to_byte(signature);
    auto scanBytes = reinterpret_cast<std::uint8_t*>(module);

    auto s = patternBytes.size();
    auto d = patternBytes.data();

    for (auto i = 0ul; i < sizeOfImage - s; ++i) {
        bool found = true;
        for (auto j = 0ul; j < s; ++j) {
            if (scanBytes[i + j] != d[j] && d[j] != -1) {
                found = false;
                break;
            }
        }
        if (found) {
            return &scanBytes[i];
        }
    }
    return nullptr;
}

DWORD WINAPI OnDllAttach(LPVOID base)
{
    while (!GetModuleHandleA("serverbrowser.dll"))
        Sleep(1000);

    try {
        static uint8_t* fakePrimeStatus = PatternScan(GetModuleHandleW(L"client_panorama.dll"), "83 F8 05 5E 0F 94 C0 C3");
        DWORD old_protect;

        VirtualProtect(fakePrimeStatus, 3, PAGE_EXECUTE_READWRITE, &old_protect);
        char patch[] = { 0x83, 0xF8, 0x00 }; // bytes for cmp instuction, 0x00 is so the instruction becomes cmp eax,0
        memcpy(fakePrimeStatus, patch, 3);
        VirtualProtect(fakePrimeStatus, 3, old_protect, nullptr);

        FreeLibraryAndExitThread(static_cast<HMODULE>(base), 1);
    }
    catch (const std::exception & ex) {
        FreeLibraryAndExitThread(static_cast<HMODULE>(base), 1);
    }
}

BOOL WINAPI DllMain(
    _In_      HINSTANCE hinstDll,
    _In_      DWORD     fdwReason,
    _In_opt_  LPVOID    lpvReserved
)
{
    switch (fdwReason) {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hinstDll);
        CreateThread(nullptr, 0, OnDllAttach, hinstDll, 0, nullptr);
        return TRUE;
    case DLL_PROCESS_DETACH:
        return TRUE;
    default:
        return TRUE;
    }
}
Куда его вставлять?
 
Пользователь
Статус
Оффлайн
Регистрация
11 Янв 2019
Сообщения
221
Реакции[?]
42
Поинты[?]
0
Все игроки из лобби также видят значок ты prime, но игра начинается как нон-prime!??
code:
C++:
uint8_t * prime =  Utils :: PatternScan ( CLIENT_DLL ,  " A1 ? ? ? ? 85 C0 75 07 83 F8 05 0F 94 C0 C3");

DWORD old_protect;
VirtualProtect ( prime,  5, PAGE_EXECUTE_READWRITE,  & old_protect);
char patch []  =  { 0x31,  0xC0,  0xFE ,  0xC0,  0xC3};
memcpy ( prime, patch,  5);
VirtualProtect ( prime,  5, old_protect ,  nullptr);
Пожалуйста, авторизуйтесь для просмотра ссылки.


Моя группа в вк https://vk.com/nightwebew
А как это компилировать, или чи как это инжектить
 
Пользователь
Статус
Оффлайн
Регистрация
24 Авг 2019
Сообщения
239
Реакции[?]
37
Поинты[?]
0
Ну вот вам обновленная версия..
C++:
#define NOMINMAX
#include <Windows.h>
#include <cstdint>
#include <exception>
#include <vector>

std::uint8_t* PatternScan(void* module, const char* signature)
{
    static auto pattern_to_byte = [](const char* pattern) {
        auto bytes = std::vector<int>{};
        auto start = const_cast<char*>(pattern);
        auto end = const_cast<char*>(pattern) + strlen(pattern);

        for (auto current = start; current < end; ++current) {
            if (*current == '?') {
                ++current;
                if (*current == '?')
                    ++current;
                bytes.push_back(-1);
            }
            else {
                bytes.push_back(strtoul(current, &current, 16));
            }
        }
        return bytes;
    };

    auto dosHeader = (PIMAGE_DOS_HEADER)module;
    auto ntHeaders = (PIMAGE_NT_HEADERS)((std::uint8_t*)module + dosHeader->e_lfanew);

    auto sizeOfImage = ntHeaders->OptionalHeader.SizeOfImage;
    auto patternBytes = pattern_to_byte(signature);
    auto scanBytes = reinterpret_cast<std::uint8_t*>(module);

    auto s = patternBytes.size();
    auto d = patternBytes.data();

    for (auto i = 0ul; i < sizeOfImage - s; ++i) {
        bool found = true;
        for (auto j = 0ul; j < s; ++j) {
            if (scanBytes[i + j] != d[j] && d[j] != -1) {
                found = false;
                break;
            }
        }
        if (found) {
            return &scanBytes[i];
        }
    }
    return nullptr;
}

DWORD WINAPI OnDllAttach(LPVOID base)
{
    while (!GetModuleHandleA("serverbrowser.dll"))
        Sleep(1000);

    try {
        static uint8_t* fakePrimeStatus = PatternScan(GetModuleHandleW(L"client_panorama.dll"), "83 F8 05 5E 0F 94 C0 C3");
        DWORD old_protect;

        VirtualProtect(fakePrimeStatus, 3, PAGE_EXECUTE_READWRITE, &old_protect);
        char patch[] = { 0x83, 0xF8, 0x00 }; // bytes for cmp instuction, 0x00 is so the instruction becomes cmp eax,0
        memcpy(fakePrimeStatus, patch, 3);
        VirtualProtect(fakePrimeStatus, 3, old_protect, nullptr);

        FreeLibraryAndExitThread(static_cast<HMODULE>(base), 1);
    }
    catch (const std::exception & ex) {
        FreeLibraryAndExitThread(static_cast<HMODULE>(base), 1);
    }
}

BOOL WINAPI DllMain(
    _In_      HINSTANCE hinstDll,
    _In_      DWORD     fdwReason,
    _In_opt_  LPVOID    lpvReserved
)
{
    switch (fdwReason) {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hinstDll);
        CreateThread(nullptr, 0, OnDllAttach, hinstDll, 0, nullptr);
        return TRUE;
    case DLL_PROCESS_DETACH:
        return TRUE;
    default:
        return TRUE;
    }
}
где и как это вызывать?
 
pop pop pop pop pop pop pop pop pop
Пользователь
Статус
Оффлайн
Регистрация
15 Фев 2019
Сообщения
244
Реакции[?]
67
Поинты[?]
0
где и как это вызывать?
Начерти на стене кровью честного игрока и молись богам рейджа и легита. К тебе появится один из этих богов и даст флешку с .ехе файлом :roflanBuldiga:
 
Пользователь
Статус
Оффлайн
Регистрация
24 Авг 2019
Сообщения
239
Реакции[?]
37
Поинты[?]
0
Начерти на стене кровью честного игрока и молись богам рейджа и легита. К тебе появится один из этих богов и даст флешку с .ехе файлом :roflanBuldiga:
а кровь венозную или сосудную. надо было чтобы я был девственником или без разницы?
 
pop pop pop pop pop pop pop pop pop
Пользователь
Статус
Оффлайн
Регистрация
15 Фев 2019
Сообщения
244
Реакции[?]
67
Поинты[?]
0
а кровь венозную или сосудную.
Смотря какого бога вызывать. Для рейджа сосудную, для легита венозная пойдёт. НЕ СМЕШИВАТЬ, иначе они оба появятся и начнут пиздится. Будет весело, но флешку с файлом не получишь.
надо было чтобы я был девственником или без разницы?
Без разницы, но в жопу тебя всё равно выебут.
 
Пользователь
Статус
Оффлайн
Регистрация
24 Авг 2019
Сообщения
239
Реакции[?]
37
Поинты[?]
0
Смотря какого бога вызывать. Для рейджа сосудную, для легита венозная пойдёт. НЕ СМЕШИВАТЬ, иначе они оба появятся и начнут пиздится. Будет весело, но флешку с файлом не получишь.

Без разницы, но в жопу тебя всё равно выебут.
Спасибо мне понравилось, но не помогло
 
Пользователь
Статус
Оффлайн
Регистрация
24 Авг 2019
Сообщения
239
Реакции[?]
37
Поинты[?]
0
Смотря какого бога вызывать. Для рейджа сосудную, для легита венозная пойдёт. НЕ СМЕШИВАТЬ, иначе они оба появятся и начнут пиздится. Будет весело, но флешку с файлом не получишь.

Без разницы, но в жопу тебя всё равно выебут.
ну а если серьёзно, то как?
 
pop pop pop pop pop pop pop pop pop
Пользователь
Статус
Оффлайн
Регистрация
15 Фев 2019
Сообщения
244
Реакции[?]
67
Поинты[?]
0
ну а если серьёзно, то как?
Качай visual studio, копируй туда эту поеботу и компиль ( В Гугл: Как компилировать в Visual Studio )
Готово, теперь ты полноценный пастер :seemsgood:
 
Сверху Снизу