Вопрос Длл не инжектит

Начинающий
Статус
Оффлайн
Регистрация
17 Дек 2023
Сообщения
15
Реакции[?]
1
Поинты[?]
1K
я создал свою базу для кс2 это было 3месяца назад, всё работало
сегодня хочу заинжектит но не хочет открывать имгуй меню

это чистая база, kierohook и Minhook + presenthook чтоб хукнут dx11

что изменилось? чё за проблема и как решить?

ps: код работал, значит что переделали

dlmain.cpp:
#include <Windows.h>
#include "hooks/hooks.h"

DWORD WINAPI mainThread(LPVOID lpReserved)
{
    bool initHook = false;
    do
    {
        if (kiero::init(kiero::RenderType::D3D11) == kiero::Status::Success)
        {
            kiero::bind(8, (void**)&oPresent, hkPresent);
            initHook = true;
        }
    } while (!initHook);
    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;
}
Hook.cpp:
#include "hooks.h"
#include "../kierohook/kiero.h"

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

Present oPresent;
HWND window = NULL;
WNDPROC oWndproc;
ID3D11Device* g_pd3dDevice = NULL;
ID3D11DeviceContext* g_pd3dDeviceContext = NULL;
ID3D11RenderTargetView* g_mainRenderTargetView;

void initImGui()
{
    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO();
    io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange;
    ImGui_ImplWin32_Init(window);
    ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext);
}

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 initPresent = false;
bool openMenu = false;
HRESULT __stdcall hkPresent(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
{
    if (!initPresent)
    {
        if (SUCCEEDED(pSwapChain->GetDevice(__uuidof(ID3D11Device), (void**)&g_pd3dDevice)))
        {
            g_pd3dDevice->GetImmediateContext(&g_pd3dDeviceContext);
            DXGI_SWAP_CHAIN_DESC sd;
            pSwapChain->GetDesc(&sd);
            window = sd.OutputWindow;
            ID3D11Texture2D* pBackBuffer;
            pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);
            g_pd3dDevice->CreateRenderTargetView(pBackBuffer, NULL, &g_mainRenderTargetView);
            pBackBuffer->Release();
            oWndproc = (WNDPROC)SetWindowLongPtr(window, GWLP_WNDPROC, (LONG_PTR)wndProc);
            initImGui();
            initPresent = true;
        }

        else
            return oPresent(pSwapChain, SyncInterval, Flags);
    }

    if (GetAsyncKeyState(VK_INSERT) & 1)
    {
        openMenu = !openMenu;
    }


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

        auto menuflags = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoScrollWithMouse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar;
        ImGui::SetNextWindowSize(ImVec2(500, 400));
        ImGui::Begin("Test", 0, menuflags);

        ImGui::End();

        ImGui::Render();

        g_pd3dDeviceContext->OMSetRenderTargets(1, &g_mainRenderTargetView, NULL);
        ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());
    }
    return oPresent(pSwapChain, SyncInterval, Flags);
}
Hook.h:
#pragma once
#include <Windows.h>
#include <d3d11.h>
#include <dxgi.h>
#include "../kierohook/kiero.h"
#include "../imgui/imgui_impl_dx11.h"
#include "../imgui/imgui_impl_win32.h"

typedef HRESULT(__stdcall* Present) (IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags);
extern Present oPresent;
HRESULT __stdcall hkPresent(IDXGISwapChain* swapChain, UINT syncInterval, UINT flags);

typedef LRESULT(CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
typedef uintptr_t PTR;
 
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,125
Реакции[?]
395
Поинты[?]
50K
Адреса (сигнатуры) функций, на которые хуки ставишь поменяй.
 
how to доказать всем что не еблан
Пользователь
Статус
Оффлайн
Регистрация
14 Авг 2019
Сообщения
393
Реакции[?]
112
Поинты[?]
21K
не инжектит или крашит?
не лоадлайбрари случаем юзаешь
 
Начинающий
Статус
Оффлайн
Регистрация
17 Дек 2023
Сообщения
15
Реакции[?]
1
Поинты[?]
1K
не инжектит или крашит?
не лоадлайбрари случаем юзаешь
я использую cheatengine
раньше все работало, там один kierohook и Minhook + presenthook чтоб хукнут dx11
сигнатур, offsets нету вообще

не инжектит, меню не видно
 
Сверху Снизу