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

Вопрос Overwatch — Инжект DLL проходит успешно, но код не исполняется

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
600
Реакции
16
Здарова, реверсеры. Пытаюсь ворваться в Overwatch со своей либой, но столкнулся с классической проблемой: инжектор рапортует об успехе, а на деле — полная тишина. Код внутри процесса просто не стартует.

Тестил через Xenos и Extreme Injector. Раньше они работали безотказно, а сейчас либо вообще фейлятся, либо пишут, что DLL успешно проброшена, но ни одна фича не подает признаков жизни. Пробовал проверить вход в процесс через банальный TerminateProcess прямо в аттаче:

Код:
Expand Collapse Copy
#include <windows.h>
#include <iostream>

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID) {
    if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
        TerminateProcess(GetCurrentProcess(), 0);
    }
    return TRUE;
}

Результат нулевой — игра даже не закрылась. Ладно, решил пойти через создание потока и аллокацию консоли, чтобы хоть какой-то выхлоп увидеть:

Код:
Expand Collapse Copy
#include <windows.h>
#include <iostream>
#include <cstdio>

DWORD WINAPI MainThread(LPVOID) {
    if (AllocConsole()) {
        FILE* fp = nullptr;
        freopen_s(&fp, "CONOUT$", "w", stdout);
        freopen_s(&fp, "CONOUT$", "w", stderr);
        freopen_s(&fp, "CONIN$", "r", stdin);
        SetConsoleTitleA("DLL Console");
        std::cout << "[+] DLL loaded successfully\n";
        std::cout << "[+] Console opened\n";
        std::cout << "[+] PID: " << GetCurrentProcessId() << std::endl;
    }
    return 0;
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID) {
    switch (ul_reason_for_call) {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hModule);
        CreateThread(nullptr, 0, MainThread, nullptr, 0, nullptr);
        break;
    case DLL_PROCESS_DETACH:
        FreeConsole();
        break;
    }
    return TRUE;
}

И опять глухо, консоль не вылетает. Похоже на то, что античит либо хукает LdrLoadDll и возвращает фейковый успех, либо модуль мгновенно выгружается системой защиты сразу после отработки загрузчика. Стандартный LoadLibrary метод сейчас в OW, видимо, вообще не котируется.

Думаю, есть ли смысл мучить юзермодные инжекторы из паблика или пора сразу упарываться в Manual Mapping и Thread Hijacking. Кто ковырял Overwatch в последнее время, античит там сейчас сильно душит импорт сторонних модулей или я где-то в базе косячу?

Интересно, был ли у кого опыт с подобным «фантомным» инжектом, когда поток дропается до выполнения DllMain.
 
Назад
Сверху Снизу