Вопрос Что делать если нету энд сцены в dx11 kiero

Начинающий
Статус
Оффлайн
Регистрация
21 Фев 2021
Сообщения
8
Реакции[?]
0
Поинты[?]
0
В общем. по гайду дарвина делаю менюшку читиксов. но он юзает хук dx 9 , а у меня игра dx 11. от этого же разраба - kiero есть хук dx 11, но там нету эндсцены. т.е. я не могу никак сделать включение и отключение софта по бинду. только анлоад сумел по гайду сделать.
Пожалуйста, авторизуйтесь для просмотра ссылки.


вот мой говно код:
C++:
#include "includes.h"
#include "vars.h"


extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

Present oPresent;
HWND window = NULL;
WNDPROC oWndProc;
ID3D11Device* pDevice = NULL;
ID3D11DeviceContext* pContext = NULL;
ID3D11RenderTargetView* mainRenderTargetView;


void InitImGui()
{
    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO();
    io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange;
    ImGui_ImplWin32_Init(window);
    ImGui_ImplDX11_Init(pDevice, pContext);
}

LRESULT __stdcall WndProc(const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

    if (true && ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam))
        return true;

    return CallWindowProc(oWndProc, hWnd, uMsg, wParam, lParam);
}



bool init = false;
bool openmenu = false;
static int tabb = 0;


HRESULT __stdcall hkPresent(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
{
    if (!init)
    {
        if (SUCCEEDED(pSwapChain->GetDevice(__uuidof(ID3D11Device), (void**)&pDevice)))
        {
            pDevice->GetImmediateContext(&pContext);
            DXGI_SWAP_CHAIN_DESC sd;
            pSwapChain->GetDesc(&sd);
            window = sd.OutputWindow;
            ID3D11Texture2D* pBackBuffer;
            pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);
            pDevice->CreateRenderTargetView(pBackBuffer, NULL, &mainRenderTargetView);
            pBackBuffer->Release();
            oWndProc = (WNDPROC)SetWindowLongPtr(window, GWLP_WNDPROC, (LONG_PTR)WndProc);
            InitImGui();
            init = true;
               
        }

        else
            return oPresent(pSwapChain, SyncInterval, Flags);
       
       
    }
   
   
    if (GetAsyncKeyState(VK_F12))
    {
        kiero::shutdown();
    }

    if (GetAsyncKeyState(VK_F6) & 1)
    {
        openmenu = !openmenu;
    }

    // выгруз


    if (openmenu)
    {
        ImGui_ImplDX11_NewFrame();
        ImGui_ImplWin32_NewFrame();
        ImGui::NewFrame();
        // размер
        ImGui::SetWindowSize(ImVec2(400, 400));
        ImGui::JerryStyle();
        ImGui::Begin("Tom & Jerry");

        // Таблицы

        if (ImGui::Button("Aimbot", ImVec2(100.f, 0.f)))
        {
            tabb = 0;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Wallhack", ImVec2(100.f, 0.f)))
        {
            tabb = 1;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Misc", ImVec2(100.f, 0.f)))
        {
            tabb = 2;
        }
        ImGui::SameLine(0.f, 2.f);

        // Чекбоксы к таблицам

        if (tabb == 0)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Legit", &Vars::Aimbot::legit);
            ImGui::Checkbox("Rage", &Vars::Aimbot::rage);
        }

        else if (tabb == 1)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Visuals", &Vars::Wallhack::esp);
            ImGui::Checkbox("HealthBar", &Vars::Wallhack::healthbar);
            ImGui::Checkbox("Box", &Vars::Wallhack::box);
        }

        else if (tabb == 2)
        {
            ImGui::Spacing();
            ImGui::Button("Teleport", ImVec2(75.f, 0.f));
            ImGui::Checkbox("Spawn Ammo", &Vars::Misc::spawnerAmmo);
            ImGui::Checkbox("Spawn Veh", &Vars::Misc::spawnerVeh);
            ImGui::Checkbox("Change Bullet (in veh)", &Vars::Misc::changeCanon);
        }
    }
    ImGui::End();


    ImGui::Render();
    pContext->OMSetRenderTargets(1, &mainRenderTargetView, NULL);
    ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());
    return oPresent(pSwapChain, SyncInterval, Flags);
}
    DWORD WINAPI MainThread(LPVOID lpReserved)
    {
        bool init_hook = false;
        do
        {
            if (kiero::init(kiero::RenderType::D3D11) == kiero::Status::Success)
            {
                kiero::bind(8, (void**)&oPresent, hkPresent);
                init_hook = true;
            }
        } while (!init_hook);
        return TRUE;
    }

BOOL WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved)
{
    switch (dwReason)
    {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hMod);
        CreateThread(nullptr, 0, MainThread, hMod, 0, nullptr);
        break;
    case DLL_PROCESS_DETACH:
        kiero::shutdown();
        break;
    }
    return TRUE;
}
 
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
Эво как, включение/отключение софта. Может быть ты имел ввиду показать/скрыть саму менюшку ? У тебя же там и так есть бинд на F6...
 
Начинающий
Статус
Оффлайн
Регистрация
21 Фев 2021
Сообщения
8
Реакции[?]
0
Поинты[?]
0
Эво как, включение/отключение софта. Может быть ты имел ввиду показать/скрыть саму менюшку ? У тебя же там и так есть бинд на F6...
уже нашел нормальный хук. потому что тот без энд сцены. либо я тупой либо хз. щас с траблом воюю одним. не сможешь помочь?
 
Начинающий
Статус
Оффлайн
Регистрация
12 Сен 2016
Сообщения
28
Реакции[?]
3
Поинты[?]
0
скобку поставь после ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData()); которая отвечает за закрытие открытие менюшки
 
VirtualAllocEx
Пользователь
Статус
Оффлайн
Регистрация
30 Дек 2021
Сообщения
358
Реакции[?]
83
Поинты[?]
5K
В общем. по гайду дарвина делаю менюшку читиксов. но он юзает хук dx 9 , а у меня игра dx 11. от этого же разраба - kiero есть хук dx 11, но там нету эндсцены. т.е. я не могу никак сделать включение и отключение софта по бинду. только анлоад сумел по гайду сделать.
Пожалуйста, авторизуйтесь для просмотра ссылки.


вот мой говно код:
C++:
#include "includes.h"
#include "vars.h"


extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

Present oPresent;
HWND window = NULL;
WNDPROC oWndProc;
ID3D11Device* pDevice = NULL;
ID3D11DeviceContext* pContext = NULL;
ID3D11RenderTargetView* mainRenderTargetView;


void InitImGui()
{
    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO();
    io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange;
    ImGui_ImplWin32_Init(window);
    ImGui_ImplDX11_Init(pDevice, pContext);
}

LRESULT __stdcall WndProc(const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

    if (true && ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam))
        return true;

    return CallWindowProc(oWndProc, hWnd, uMsg, wParam, lParam);
}



bool init = false;
bool openmenu = false;
static int tabb = 0;


HRESULT __stdcall hkPresent(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
{
    if (!init)
    {
        if (SUCCEEDED(pSwapChain->GetDevice(__uuidof(ID3D11Device), (void**)&pDevice)))
        {
            pDevice->GetImmediateContext(&pContext);
            DXGI_SWAP_CHAIN_DESC sd;
            pSwapChain->GetDesc(&sd);
            window = sd.OutputWindow;
            ID3D11Texture2D* pBackBuffer;
            pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);
            pDevice->CreateRenderTargetView(pBackBuffer, NULL, &mainRenderTargetView);
            pBackBuffer->Release();
            oWndProc = (WNDPROC)SetWindowLongPtr(window, GWLP_WNDPROC, (LONG_PTR)WndProc);
            InitImGui();
            init = true;
              
        }

        else
            return oPresent(pSwapChain, SyncInterval, Flags);
      
      
    }
  
  
    if (GetAsyncKeyState(VK_F12))
    {
        kiero::shutdown();
    }

    if (GetAsyncKeyState(VK_F6) & 1)
    {
        openmenu = !openmenu;
    }

    // выгруз


    if (openmenu)
    {
        ImGui_ImplDX11_NewFrame();
        ImGui_ImplWin32_NewFrame();
        ImGui::NewFrame();
        // размер
        ImGui::SetWindowSize(ImVec2(400, 400));
        ImGui::JerryStyle();
        ImGui::Begin("Tom & Jerry");

        // Таблицы

        if (ImGui::Button("Aimbot", ImVec2(100.f, 0.f)))
        {
            tabb = 0;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Wallhack", ImVec2(100.f, 0.f)))
        {
            tabb = 1;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Misc", ImVec2(100.f, 0.f)))
        {
            tabb = 2;
        }
        ImGui::SameLine(0.f, 2.f);

        // Чекбоксы к таблицам

        if (tabb == 0)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Legit", &Vars::Aimbot::legit);
            ImGui::Checkbox("Rage", &Vars::Aimbot::rage);
        }

        else if (tabb == 1)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Visuals", &Vars::Wallhack::esp);
            ImGui::Checkbox("HealthBar", &Vars::Wallhack::healthbar);
            ImGui::Checkbox("Box", &Vars::Wallhack::box);
        }

        else if (tabb == 2)
        {
            ImGui::Spacing();
            ImGui::Button("Teleport", ImVec2(75.f, 0.f));
            ImGui::Checkbox("Spawn Ammo", &Vars::Misc::spawnerAmmo);
            ImGui::Checkbox("Spawn Veh", &Vars::Misc::spawnerVeh);
            ImGui::Checkbox("Change Bullet (in veh)", &Vars::Misc::changeCanon);
        }
    }
    ImGui::End();


    ImGui::Render();
    pContext->OMSetRenderTargets(1, &mainRenderTargetView, NULL);
    ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());
    return oPresent(pSwapChain, SyncInterval, Flags);
}
    DWORD WINAPI MainThread(LPVOID lpReserved)
    {
        bool init_hook = false;
        do
        {
            if (kiero::init(kiero::RenderType::D3D11) == kiero::Status::Success)
            {
                kiero::bind(8, (void**)&oPresent, hkPresent);
                init_hook = true;
            }
        } while (!init_hook);
        return TRUE;
    }

BOOL WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved)
{
    switch (dwReason)
    {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hMod);
        CreateThread(nullptr, 0, MainThread, hMod, 0, nullptr);
        break;
    case DLL_PROCESS_DETACH:
        kiero::shutdown();
        break;
    }
    return TRUE;
}
А причём тут кс и dx11?
 
Not bad
Пользователь
Статус
Оффлайн
Регистрация
30 Мар 2018
Сообщения
182
Реакции[?]
30
Поинты[?]
3K
В общем. по гайду дарвина делаю менюшку читиксов. но он юзает хук dx 9 , а у меня игра dx 11. от этого же разраба - kiero есть хук dx 11, но там нету эндсцены. т.е. я не могу никак сделать включение и отключение софта по бинду. только анлоад сумел по гайду сделать.
Пожалуйста, авторизуйтесь для просмотра ссылки.


вот мой говно код:
C++:
#include "includes.h"
#include "vars.h"


extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

Present oPresent;
HWND window = NULL;
WNDPROC oWndProc;
ID3D11Device* pDevice = NULL;
ID3D11DeviceContext* pContext = NULL;
ID3D11RenderTargetView* mainRenderTargetView;


void InitImGui()
{
    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO();
    io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange;
    ImGui_ImplWin32_Init(window);
    ImGui_ImplDX11_Init(pDevice, pContext);
}

LRESULT __stdcall WndProc(const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

    if (true && ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam))
        return true;

    return CallWindowProc(oWndProc, hWnd, uMsg, wParam, lParam);
}



bool init = false;
bool openmenu = false;
static int tabb = 0;


HRESULT __stdcall hkPresent(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
{
    if (!init)
    {
        if (SUCCEEDED(pSwapChain->GetDevice(__uuidof(ID3D11Device), (void**)&pDevice)))
        {
            pDevice->GetImmediateContext(&pContext);
            DXGI_SWAP_CHAIN_DESC sd;
            pSwapChain->GetDesc(&sd);
            window = sd.OutputWindow;
            ID3D11Texture2D* pBackBuffer;
            pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);
            pDevice->CreateRenderTargetView(pBackBuffer, NULL, &mainRenderTargetView);
            pBackBuffer->Release();
            oWndProc = (WNDPROC)SetWindowLongPtr(window, GWLP_WNDPROC, (LONG_PTR)WndProc);
            InitImGui();
            init = true;
              
        }

        else
            return oPresent(pSwapChain, SyncInterval, Flags);
      
      
    }
  
  
    if (GetAsyncKeyState(VK_F12))
    {
        kiero::shutdown();
    }

    if (GetAsyncKeyState(VK_F6) & 1)
    {
        openmenu = !openmenu;
    }

    // выгруз


    if (openmenu)
    {
        ImGui_ImplDX11_NewFrame();
        ImGui_ImplWin32_NewFrame();
        ImGui::NewFrame();
        // размер
        ImGui::SetWindowSize(ImVec2(400, 400));
        ImGui::JerryStyle();
        ImGui::Begin("Tom & Jerry");

        // Таблицы

        if (ImGui::Button("Aimbot", ImVec2(100.f, 0.f)))
        {
            tabb = 0;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Wallhack", ImVec2(100.f, 0.f)))
        {
            tabb = 1;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Misc", ImVec2(100.f, 0.f)))
        {
            tabb = 2;
        }
        ImGui::SameLine(0.f, 2.f);

        // Чекбоксы к таблицам

        if (tabb == 0)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Legit", &Vars::Aimbot::legit);
            ImGui::Checkbox("Rage", &Vars::Aimbot::rage);
        }

        else if (tabb == 1)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Visuals", &Vars::Wallhack::esp);
            ImGui::Checkbox("HealthBar", &Vars::Wallhack::healthbar);
            ImGui::Checkbox("Box", &Vars::Wallhack::box);
        }

        else if (tabb == 2)
        {
            ImGui::Spacing();
            ImGui::Button("Teleport", ImVec2(75.f, 0.f));
            ImGui::Checkbox("Spawn Ammo", &Vars::Misc::spawnerAmmo);
            ImGui::Checkbox("Spawn Veh", &Vars::Misc::spawnerVeh);
            ImGui::Checkbox("Change Bullet (in veh)", &Vars::Misc::changeCanon);
        }
    }
    ImGui::End();


    ImGui::Render();
    pContext->OMSetRenderTargets(1, &mainRenderTargetView, NULL);
    ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());
    return oPresent(pSwapChain, SyncInterval, Flags);
}
    DWORD WINAPI MainThread(LPVOID lpReserved)
    {
        bool init_hook = false;
        do
        {
            if (kiero::init(kiero::RenderType::D3D11) == kiero::Status::Success)
            {
                kiero::bind(8, (void**)&oPresent, hkPresent);
                init_hook = true;
            }
        } while (!init_hook);
        return TRUE;
    }

BOOL WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved)
{
    switch (dwReason)
    {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hMod);
        CreateThread(nullptr, 0, MainThread, hMod, 0, nullptr);
        break;
    case DLL_PROCESS_DETACH:
        kiero::shutdown();
        break;
    }
    return TRUE;
}
Как бы в dx11 нет end scene или я уже не помню,делал софт под генш юзал Hook Present и всё прекрасно работало.
 
VirtualAllocEx
Пользователь
Статус
Оффлайн
Регистрация
30 Дек 2021
Сообщения
358
Реакции[?]
83
Поинты[?]
5K
В общем. по гайду дарвина делаю менюшку читиксов. но он юзает хук dx 9 , а у меня игра dx 11. от этого же разраба - kiero есть хук dx 11, но там нету эндсцены. т.е. я не могу никак сделать включение и отключение софта по бинду. только анлоад сумел по гайду сделать.
Пожалуйста, авторизуйтесь для просмотра ссылки.


вот мой говно код:
C++:
#include "includes.h"
#include "vars.h"


extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

Present oPresent;
HWND window = NULL;
WNDPROC oWndProc;
ID3D11Device* pDevice = NULL;
ID3D11DeviceContext* pContext = NULL;
ID3D11RenderTargetView* mainRenderTargetView;


void InitImGui()
{
    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO();
    io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange;
    ImGui_ImplWin32_Init(window);
    ImGui_ImplDX11_Init(pDevice, pContext);
}

LRESULT __stdcall WndProc(const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

    if (true && ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam))
        return true;

    return CallWindowProc(oWndProc, hWnd, uMsg, wParam, lParam);
}



bool init = false;
bool openmenu = false;
static int tabb = 0;


HRESULT __stdcall hkPresent(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
{
    if (!init)
    {
        if (SUCCEEDED(pSwapChain->GetDevice(__uuidof(ID3D11Device), (void**)&pDevice)))
        {
            pDevice->GetImmediateContext(&pContext);
            DXGI_SWAP_CHAIN_DESC sd;
            pSwapChain->GetDesc(&sd);
            window = sd.OutputWindow;
            ID3D11Texture2D* pBackBuffer;
            pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);
            pDevice->CreateRenderTargetView(pBackBuffer, NULL, &mainRenderTargetView);
            pBackBuffer->Release();
            oWndProc = (WNDPROC)SetWindowLongPtr(window, GWLP_WNDPROC, (LONG_PTR)WndProc);
            InitImGui();
            init = true;
              
        }

        else
            return oPresent(pSwapChain, SyncInterval, Flags);
      
      
    }
  
  
    if (GetAsyncKeyState(VK_F12))
    {
        kiero::shutdown();
    }

    if (GetAsyncKeyState(VK_F6) & 1)
    {
        openmenu = !openmenu;
    }

    // выгруз


    if (openmenu)
    {
        ImGui_ImplDX11_NewFrame();
        ImGui_ImplWin32_NewFrame();
        ImGui::NewFrame();
        // размер
        ImGui::SetWindowSize(ImVec2(400, 400));
        ImGui::JerryStyle();
        ImGui::Begin("Tom & Jerry");

        // Таблицы

        if (ImGui::Button("Aimbot", ImVec2(100.f, 0.f)))
        {
            tabb = 0;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Wallhack", ImVec2(100.f, 0.f)))
        {
            tabb = 1;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Misc", ImVec2(100.f, 0.f)))
        {
            tabb = 2;
        }
        ImGui::SameLine(0.f, 2.f);

        // Чекбоксы к таблицам

        if (tabb == 0)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Legit", &Vars::Aimbot::legit);
            ImGui::Checkbox("Rage", &Vars::Aimbot::rage);
        }

        else if (tabb == 1)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Visuals", &Vars::Wallhack::esp);
            ImGui::Checkbox("HealthBar", &Vars::Wallhack::healthbar);
            ImGui::Checkbox("Box", &Vars::Wallhack::box);
        }

        else if (tabb == 2)
        {
            ImGui::Spacing();
            ImGui::Button("Teleport", ImVec2(75.f, 0.f));
            ImGui::Checkbox("Spawn Ammo", &Vars::Misc::spawnerAmmo);
            ImGui::Checkbox("Spawn Veh", &Vars::Misc::spawnerVeh);
            ImGui::Checkbox("Change Bullet (in veh)", &Vars::Misc::changeCanon);
        }
    }
    ImGui::End();


    ImGui::Render();
    pContext->OMSetRenderTargets(1, &mainRenderTargetView, NULL);
    ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());
    return oPresent(pSwapChain, SyncInterval, Flags);
}
    DWORD WINAPI MainThread(LPVOID lpReserved)
    {
        bool init_hook = false;
        do
        {
            if (kiero::init(kiero::RenderType::D3D11) == kiero::Status::Success)
            {
                kiero::bind(8, (void**)&oPresent, hkPresent);
                init_hook = true;
            }
        } while (!init_hook);
        return TRUE;
    }

BOOL WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved)
{
    switch (dwReason)
    {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hMod);
        CreateThread(nullptr, 0, MainThread, hMod, 0, nullptr);
        break;
    case DLL_PROCESS_DETACH:
        kiero::shutdown();
        break;
    }
    return TRUE;
}
C++:
HRESULT __stdcall hkPresent(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
{
    if (!init)
    {
        if (SUCCEEDED(pSwapChain->GetDevice(__uuidof(ID3D11Device), (void**)&pDevice)))
        {
            pDevice->GetImmediateContext(&pContext);
            DXGI_SWAP_CHAIN_DESC sd;
            pSwapChain->GetDesc(&sd);
            window = sd.OutputWindow;
            ID3D11Texture2D* pBackBuffer;
            pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);
            pDevice->CreateRenderTargetView(pBackBuffer, NULL, &mainRenderTargetView);
            pBackBuffer->Release();
            oWndProc = (WNDPROC)SetWindowLongPtr(window, GWLP_WNDPROC, (LONG_PTR)WndProc);
            InitImGui();
            init = true;
               
        }

        else
            return oPresent(pSwapChain, SyncInterval, Flags);
       
       
    }
   
   
    if (GetAsyncKeyState(VK_F12))
    {
        kiero::shutdown();
    }

    if (GetAsyncKeyState(VK_F6) & 1)
    {
        openmenu = !openmenu;
    }

    // выгруз

    ImGui_ImplDX11_NewFrame();
    ImGui_ImplWin32_NewFrame();
    ImGui::NewFrame();
    if (openmenu)
    {

        // размер
        ImGui::SetWindowSize(ImVec2(400, 400));
        ImGui::JerryStyle();
        ImGui::Begin("Tom & Jerry");

        // Таблицы

        if (ImGui::Button("Aimbot", ImVec2(100.f, 0.f)))
        {
            tabb = 0;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Wallhack", ImVec2(100.f, 0.f)))
        {
            tabb = 1;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Misc", ImVec2(100.f, 0.f)))
        {
            tabb = 2;
        }
        ImGui::SameLine(0.f, 2.f);

        // Чекбоксы к таблицам

        if (tabb == 0)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Legit", &Vars::Aimbot::legit);
            ImGui::Checkbox("Rage", &Vars::Aimbot::rage);
        }

        else if (tabb == 1)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Visuals", &Vars::Wallhack::esp);
            ImGui::Checkbox("HealthBar", &Vars::Wallhack::healthbar);
            ImGui::Checkbox("Box", &Vars::Wallhack::box);
        }

        else if (tabb == 2)
        {
            ImGui::Spacing();
            ImGui::Button("Teleport", ImVec2(75.f, 0.f));
            ImGui::Checkbox("Spawn Ammo", &Vars::Misc::spawnerAmmo);
            ImGui::Checkbox("Spawn Veh", &Vars::Misc::spawnerVeh);
            ImGui::Checkbox("Change Bullet (in veh)", &Vars::Misc::changeCanon);
        }    
        ImGui::End();
    }

    ImGui::Render();
    pContext->OMSetRenderTargets(1, &mainRenderTargetView, NULL);
    ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());
    return oPresent(pSwapChain, SyncInterval, Flags);
}
чееел ты... мой код скопируй, ты блять всё запорол с имгуи -_-
 
Олдфаг
Статус
Оффлайн
Регистрация
4 Янв 2020
Сообщения
2,992
Реакции[?]
1,274
Поинты[?]
4K
В общем. по гайду дарвина делаю менюшку читиксов. но он юзает хук dx 9 , а у меня игра dx 11. от этого же разраба - kiero есть хук dx 11, но там нету эндсцены. т.е. я не могу никак сделать включение и отключение софта по бинду. только анлоад сумел по гайду сделать.
Пожалуйста, авторизуйтесь для просмотра ссылки.


вот мой говно код:
C++:
#include "includes.h"
#include "vars.h"


extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

Present oPresent;
HWND window = NULL;
WNDPROC oWndProc;
ID3D11Device* pDevice = NULL;
ID3D11DeviceContext* pContext = NULL;
ID3D11RenderTargetView* mainRenderTargetView;


void InitImGui()
{
    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO();
    io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange;
    ImGui_ImplWin32_Init(window);
    ImGui_ImplDX11_Init(pDevice, pContext);
}

LRESULT __stdcall WndProc(const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

    if (true && ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam))
        return true;

    return CallWindowProc(oWndProc, hWnd, uMsg, wParam, lParam);
}



bool init = false;
bool openmenu = false;
static int tabb = 0;


HRESULT __stdcall hkPresent(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
{
    if (!init)
    {
        if (SUCCEEDED(pSwapChain->GetDevice(__uuidof(ID3D11Device), (void**)&pDevice)))
        {
            pDevice->GetImmediateContext(&pContext);
            DXGI_SWAP_CHAIN_DESC sd;
            pSwapChain->GetDesc(&sd);
            window = sd.OutputWindow;
            ID3D11Texture2D* pBackBuffer;
            pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);
            pDevice->CreateRenderTargetView(pBackBuffer, NULL, &mainRenderTargetView);
            pBackBuffer->Release();
            oWndProc = (WNDPROC)SetWindowLongPtr(window, GWLP_WNDPROC, (LONG_PTR)WndProc);
            InitImGui();
            init = true;
              
        }

        else
            return oPresent(pSwapChain, SyncInterval, Flags);
      
      
    }
  
  
    if (GetAsyncKeyState(VK_F12))
    {
        kiero::shutdown();
    }

    if (GetAsyncKeyState(VK_F6) & 1)
    {
        openmenu = !openmenu;
    }

    // выгруз


    if (openmenu)
    {
        ImGui_ImplDX11_NewFrame();
        ImGui_ImplWin32_NewFrame();
        ImGui::NewFrame();
        // размер
        ImGui::SetWindowSize(ImVec2(400, 400));
        ImGui::JerryStyle();
        ImGui::Begin("Tom & Jerry");

        // Таблицы

        if (ImGui::Button("Aimbot", ImVec2(100.f, 0.f)))
        {
            tabb = 0;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Wallhack", ImVec2(100.f, 0.f)))
        {
            tabb = 1;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Misc", ImVec2(100.f, 0.f)))
        {
            tabb = 2;
        }
        ImGui::SameLine(0.f, 2.f);

        // Чекбоксы к таблицам

        if (tabb == 0)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Legit", &Vars::Aimbot::legit);
            ImGui::Checkbox("Rage", &Vars::Aimbot::rage);
        }

        else if (tabb == 1)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Visuals", &Vars::Wallhack::esp);
            ImGui::Checkbox("HealthBar", &Vars::Wallhack::healthbar);
            ImGui::Checkbox("Box", &Vars::Wallhack::box);
        }

        else if (tabb == 2)
        {
            ImGui::Spacing();
            ImGui::Button("Teleport", ImVec2(75.f, 0.f));
            ImGui::Checkbox("Spawn Ammo", &Vars::Misc::spawnerAmmo);
            ImGui::Checkbox("Spawn Veh", &Vars::Misc::spawnerVeh);
            ImGui::Checkbox("Change Bullet (in veh)", &Vars::Misc::changeCanon);
        }
    }
    ImGui::End();


    ImGui::Render();
    pContext->OMSetRenderTargets(1, &mainRenderTargetView, NULL);
    ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());
    return oPresent(pSwapChain, SyncInterval, Flags);
}
    DWORD WINAPI MainThread(LPVOID lpReserved)
    {
        bool init_hook = false;
        do
        {
            if (kiero::init(kiero::RenderType::D3D11) == kiero::Status::Success)
            {
                kiero::bind(8, (void**)&oPresent, hkPresent);
                init_hook = true;
            }
        } while (!init_hook);
        return TRUE;
    }

BOOL WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved)
{
    switch (dwReason)
    {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hMod);
        CreateThread(nullptr, 0, MainThread, hMod, 0, nullptr);
        break;
    case DLL_PROCESS_DETACH:
        kiero::shutdown();
        break;
    }
    return TRUE;
}
Хочешь чему-то научиться - не смотри его гайды
 
VirtualAllocEx
Пользователь
Статус
Оффлайн
Регистрация
30 Дек 2021
Сообщения
358
Реакции[?]
83
Поинты[?]
5K
Not bad
Пользователь
Статус
Оффлайн
Регистрация
30 Мар 2018
Сообщения
182
Реакции[?]
30
Поинты[?]
3K
Хочешь чему-то научиться - не смотри его гайды
+ легче в гите искать что тебе нужно,99% что это уже кто то делал.И по примеру писать своё.
А не тупо брать что то из видео в чём сам не разбираешься.Ака сделайте так и всё заработает.
 
Сверху Снизу