- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 600
- Реакции
- 16
Здарова, реверсеры. Пытаюсь ворваться в Overwatch со своей либой, но столкнулся с классической проблемой: инжектор рапортует об успехе, а на деле — полная тишина. Код внутри процесса просто не стартует.
Тестил через Xenos и Extreme Injector. Раньше они работали безотказно, а сейчас либо вообще фейлятся, либо пишут, что DLL успешно проброшена, но ни одна фича не подает признаков жизни. Пробовал проверить вход в процесс через банальный TerminateProcess прямо в аттаче:
Результат нулевой — игра даже не закрылась. Ладно, решил пойти через создание потока и аллокацию консоли, чтобы хоть какой-то выхлоп увидеть:
И опять глухо, консоль не вылетает. Похоже на то, что античит либо хукает LdrLoadDll и возвращает фейковый успех, либо модуль мгновенно выгружается системой защиты сразу после отработки загрузчика. Стандартный LoadLibrary метод сейчас в OW, видимо, вообще не котируется.
Думаю, есть ли смысл мучить юзермодные инжекторы из паблика или пора сразу упарываться в Manual Mapping и Thread Hijacking. Кто ковырял Overwatch в последнее время, античит там сейчас сильно душит импорт сторонних модулей или я где-то в базе косячу?
Интересно, был ли у кого опыт с подобным «фантомным» инжектом, когда поток дропается до выполнения DllMain.
Тестил через Xenos и Extreme Injector. Раньше они работали безотказно, а сейчас либо вообще фейлятся, либо пишут, что DLL успешно проброшена, но ни одна фича не подает признаков жизни. Пробовал проверить вход в процесс через банальный TerminateProcess прямо в аттаче:
Код:
#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;
}
Результат нулевой — игра даже не закрылась. Ладно, решил пойти через создание потока и аллокацию консоли, чтобы хоть какой-то выхлоп увидеть:
Код:
#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.