Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Исходник Clarity.tk v1 fix steam x64

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
12 Янв 2025
Сообщения
53
Реакции
15
Всем привет, пользователи YouGame!
В прошлой теме я сливал сам чит, но некоторые попросили ликинуть исходники, так что держите!


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

VT: (это сурсы...)
ss:
1774501884375.png
 
Всем привет, пользователи YouGame!
В прошлой теме я сливал сам чит, но некоторые попросили ликинуть исходники, так что держите!


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

VT: (это сурсы...)
ss:
Посмотреть вложение 331388
ты просто босссс
 
Всем привет, пользователи YouGame!
В прошлой теме я сливал сам чит, но некоторые попросили ликинуть исходники, так что держите!


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

VT: (это сурсы...)
ss:
Посмотреть вложение 331388
не можешь помочь?
я сделал простой dll с меседжбоксом и который инжектировал при помощи manualmap в блокнот, добавил несколько дебаг выводов чтобы получить OEP, base адрес и size.
через x64dbg я сдампил секцию с dll, использовав твой код я успешно смог загрузить её в процесс при помощи дампа dll из x64dbg (уже другое решение, не исходник с меседжбоксом), я застрял на стадии резольва импортов пробывал при помощи Scylla сдампить этот регион в виде PE формата и спарсил импорты через этот код:
парсер:
Expand Collapse Copy
#include <Windows.h>
#include <iostream>
#include <vector>
#include <tuple>
#include <iomanip>

int main(int argc, char* argv[])
{
    if (argc < 2)
    {
        std::cout << "usage: tool.exe <path_to_dll>\n";
        return 0;
    }

    const char* path = argv[1];

    HMODULE module = LoadLibraryExA(path, NULL, DONT_RESOLVE_DLL_REFERENCES);
    if (!module)
    {
        std::cout << "failed to load dll\n";
        return 0;
    }

    uintptr_t base = reinterpret_cast<uintptr_t>(module);

    auto dos = reinterpret_cast<PIMAGE_DOS_HEADER>(base);
    auto nt = reinterpret_cast<PIMAGE_NT_HEADERS>(base + dos->e_lfanew);

    auto importDir = nt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT];

    if (!importDir.VirtualAddress)
    {
        std::cout << "no imports\n";
        return 0;
    }

    auto importDesc = reinterpret_cast<PIMAGE_IMPORT_DESCRIPTOR>(base + importDir.VirtualAddress);

    std::cout << "#include <vector>\n#include <tuple>\n\n";
    std::cout << "std::vector<std::tuple<uint32_t, std::string, std::string>> g_aImports =\n{\n";

    while (importDesc->Name)
    {
        const char* dllName = reinterpret_cast<const char*>(base + importDesc->Name);

        auto thunk = reinterpret_cast<PIMAGE_THUNK_DATA>(base + importDesc->FirstThunk);
        auto origThunk = reinterpret_cast<PIMAGE_THUNK_DATA>(base + importDesc->OriginalFirstThunk);

        while (origThunk->u1.AddressOfData)
        {
            if (!(origThunk->u1.Ordinal & IMAGE_ORDINAL_FLAG))
            {
                auto import = reinterpret_cast<PIMAGE_IMPORT_BY_NAME>(base + origThunk->u1.AddressOfData);
                const char* funcName = reinterpret_cast<const char*>(import->Name);

                uintptr_t iatRVA = (reinterpret_cast<uintptr_t>(thunk) - base);
                std::cout << "    { 0x"
                    << std::hex << iatRVA
                    << ", \"" << dllName
                    << "\", \"" << funcName
                    << "\" },\n";
            }

            ++thunk;
            ++origThunk;
        }

        ++importDesc;
    }

    std::cout << "};\n";

    return 0;
}
файл который я использовал для парсинга это через scylla вначале dump потом dump fix.
сам мой основной код main.cpp:
Код:
Expand Collapse Copy
#define _WINSOCK_DEPRECATED_NO_WARNINGS // ratio + don't care
#define _CRT_SECURE_NO_WARNINGS // ratio + don't care
#include <iostream>
#include <Windows.h>
#include "cheat.h"


#include <vector>
#include <tuple>


std::vector<std::tuple<uint32_t, std::string, std::string>> g_aImports =
{
    { 0xaa5a0130, "?", "?" },
    { 0xaa5a0160, "?", "?" },
    { 0xaa5a0170, "?", "?" },
    { 0xaa5a1578, "?", "?" },
    { 0xaa5a2000, "kernel32.dll", "GetCurrentProcessId" },
    { 0xaa5a2008, "kernel32.dll", "GetCurrentThreadId" },
    { 0xaa5a2010, "kernel32.dll", "GetSystemTimeAsFileTime" },
    { 0xaa5a2018, "kernel32.dll", "InitializeSListHead" },
    { 0xaa5a2020, "kernel32.dll", "QueryPerformanceCounter" },
    { 0xaa5a2030, "user32.dll", "MessageBoxW" },
    { 0xaa5a2040, "vcruntime140.dll", "__std_type_info_destroy_list" },
    { 0xaa5a2048, "vcruntime140.dll", "__C_specific_handler" },
    { 0xaa5a2050, "vcruntime140.dll", "memcpy" },
    { 0xaa5a2060, "ucrtbase.dll", "_cexit" },
    { 0xaa5a2068, "ucrtbase.dll", "_initterm" },
    { 0xaa5a2070, "ucrtbase.dll", "_initialize_onexit_table" },
    { 0xaa5a2078, "ucrtbase.dll", "_initialize_narrow_environment" },
    { 0xaa5a2080, "ucrtbase.dll", "_configure_narrow_argv" },
    { 0xaa5a2088, "ucrtbase.dll", "_seh_filter_dll" },
    { 0xaa5a2090, "ucrtbase.dll", "_initterm_e" },
    { 0xaa5a2098, "ucrtbase.dll", "_execute_onexit_table" },
    { 0xaa5a20a8, "ucrtbase.dll", "__stdio_common_vswprintf" },
    { 0xaa5a20b8, "?", "?" },
    { 0xaa5a20c0, "?", "?" },
    { 0xaa5a20c8, "?", "?" },
    { 0xaa5a20d0, "?", "?" },
    { 0xaa5a20d8, "?", "?" },
    { 0xaa5a20e8, "?", "?" },
    { 0xaa5a2148, "?", "?" },
    { 0xaa5a21e8, "?", "?" },
    { 0xaa5a21f8, "?", "?" },
    { 0xaa5a2278, "?", "?" },
    { 0xaa5a2290, "?", "?" },
    { 0xaa5a2298, "?", "?" },
    { 0xaa5a2320, "?", "?" },
    { 0xaa5a2338, "?", "?" },
    { 0xaa5a2340, "?", "?" },
    { 0xaa5a2348, "?", "?" },
    { 0xaa5a2350, "?", "?" },
    { 0xaa5a2358, "?", "?" },
    { 0xaa5a3060, "?", "?" },
};
int main() {
    // я хз почему но у меня получаеться п росто так получить 0x6000 size
    MEMORY_BASIC_INFORMATION mem;
    uintptr_t base = 0x180000000;
    size_t expected_size = 0x6000;
    uintptr_t scanned = 0;

    while (scanned < expected_size)
    {
        if (!VirtualQuery(reinterpret_cast<void*>(base + scanned), &mem, sizeof(mem)))
        {
            printf("[-] failed to query memory at 0x%llx\n", base + scanned);
            TerminateProcess(reinterpret_cast<HANDLE>(-1), 0);
        }

        scanned += mem.RegionSize;
    }
    printf("[+] memory region is ok, total scanned = 0x%llx\n", scanned);


    void* hack_address = VirtualAlloc(
        nullptr,
        sizeof(cituxs),
        MEM_COMMIT | MEM_RESERVE,
        PAGE_EXECUTE_READWRITE
    );

    if (!hack_address)
    {
        printf("[-] VirtualAlloc failed\n");
        return 0;
    }

    memcpy(hack_address, cituxs, sizeof(cituxs));


    printf("    inited!\n");


    // импорты

    printf("    resolving imports...\n");
    for (const auto& CurrentImport : g_aImports)
    {
        HMODULE hModule = LoadLibraryA(std::get< 1 >(CurrentImport).c_str());
        if (!hModule)
            continue;

        uintptr_t  pFunction = (uintptr_t)GetProcAddress(hModule, std::get< 2 >(CurrentImport).c_str());
        if (!pFunction)
            continue;

        *reinterpret_cast<uintptr_t*>(std::get< 0 >(CurrentImport)) = pFunction;
    }

    printf("    resolved!\n");
    printf("    calling entrypoiny []...\n");
    using DllEntry_t = BOOL(__stdcall*)(void*, DWORD, void*);

    uintptr_t basee = (uintptr_t)hack_address;

    reinterpret_cast<DllEntry_t>(basee + 0x16D4)(
        (void*)basee,
        DLL_PROCESS_ATTACH,
        nullptr
        );
    printf("    called!\n");
}


bool __stdcall DllMain(HANDLE hinstDLL, uintptr_t fdwReason, void* lpReserved)
{
    if (fdwReason == DLL_PROCESS_ATTACH)
    {
        AllocConsole();
        SetConsoleTitleA("clarity.tk [ft.glowesp7]");
        freopen("CONOUT$", "w", stdout);
        CreateThread(0, 0, reinterpret_cast<LPTHREAD_START_ROUTINE>(main), 0, 0, 0);
    }
    return true;
}

крашиться именно на resolving imports
 
ты просто босссс
Всем привет, пользователи YouGame!
В прошлой теме я сливал сам чит, но некоторые попросили ликинуть исходники, так что держите!


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

VT: (это сурсы...)
ss:
Посмотреть вложение 331388
Extreme Injector v3Platform mismatch detected. You are trying to inject a 32-bit DLL (clarity.dll) into a 64-bit process (steam.exe) which is not supported. выдает ошибку при запуске
 
Назад
Сверху Снизу