
Démontre le hooking du pointeur D3D9 Present de OBS graphics-hook32.dll pour obtenir un rendu à l'épreuve de la diffusion qui échappe à la détection de capture de jeu par l'anti-triche.
Pas de moi. Uniquement pour sauvegarde. https://www.unknowncheats.me/forum/anti-cheat-bypass/501609-obs-graphics-hook32-hook.html
J'ai étudié de nombreux types de hooking auparavant, et ce genre de chose a retenu mon attention car il pourrait être utilisé pour produire un rendu indétectable par le streaming.
Je souhaite donc le partager avec les débutants.

« graphics-hook32.dll + 32DC8 » est notre adresse cible, qui devrait ressembler à ceci dans votre IDA ou https://github.com/obsproject/obs-st...pture.cpp#L651

Ensuite, tout ce que vous avez à faire est de remplacer le pointeur (à l'ancienne). Puisque mov eax, Hook_Present_Addr Hook_Present_Addr = &Present_hook ??? PROFIT Prêt pour le P2C KEKEKEKEKEKW
void MainThread()
{
while (!obsBase) // vérifie si graphics-hook32.dll n'est pas chargé
{
obsBase = (DWORD)GetModuleHandleA(XorStr("graphics-hook32.dll"));
if (!obsBase)
Sleep(200);
else
isOBSFound = true;
}
if (isOBSFound)
{
renderOBSPresent = obsBase + 0x32DC8;
while (!*reinterpret_cast<uintptr_t*>(renderOBSPresent))
{
Sleep(200);
}
OrigPresent = SwapPointer<Present_t>((uintptr_t)renderOBSPresent, (uintptr_t)&Hooked_Present);
}
}
Le pointeur de fonction que nous remplaçons est le « RealPresent » affiché dans IDA, et non le present_begin (la fonction RealPresent est un pointeur .data). Vous pourriez également hooker le present_begin et obtenir le même résultat. Cela s'applique également à la version x64 d'obs.
Remarque : cela ne fonctionne que pour la capture de jeu et les jeux d3d9