
OBS के graphics-hook32.dll के D3D9 Present पॉइंटर को हुक करके स्ट्रीम-प्रूफ रेंडरिंग प्रदर्शित करता है, जो एंटी-चीट गेम कैप्चर डिटेक्शन से बचता है।
यह मेरा नहीं है। केवल सहेजने के लिए। https://www.unknowncheats.me/forum/anti-cheat-bypass/501609-obs-graphics-hook32-hook.html
मैंने पहले कई प्रकार की हुकिंग का अध्ययन किया है, और इस तरह की चीज़ ने मेरा ध्यान खींचा क्योंकि इसका उपयोग स्ट्रीम-प्रूफ रेंडरिंग बनाने के लिए किया जा सकता है।
इसलिए मैं इसे उन शुरुआती लोगों के साथ साझा करना चाहूँगा।

"graphics-hook32.dll + 32DC8" हमारा लक्ष्य पता है, जो आपके IDA में या https://github.com/obsproject/obs-st...pture.cpp#L651 पर ऐसा दिखना चाहिए

इसके बाद, आपको बस पॉइंटर को बदलना है (पुराना तरीका)। चूँकि mov eax, Hook_Present_Addr Hook_Present_Addr = &Present_hook ??? PROFIT P2C के लिए तैयार KEKEKEKEKEKW
void MainThread()
{
while (!obsBase) // check if graphics-hook32.dll is not loaded
{
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);
}
}
जिस फ़ंक्शन पॉइंटर को हम बदल रहे हैं वह IDA पर दिखाया गया "RealPresent" है, न कि present_begin (RealPresent फ़ंक्शन एक .data पॉइंटर है)। आप present_begin को भी हुक कर सकते हैं और वही परिणाम प्राप्त कर सकते हैं। यह obs के x64 संस्करण के लिए भी लागू होता है।
नोट: यह केवल game capture और d3d9 game के लिए काम करता है