
يوضح اعتراض مؤشر D3D9 Present الخاص بـ OBS graphics-hook32.dll لتحقيق عرض محصّن ضد البث يتفادى كشف التقاط اللعبة من قبل مكافحة الغش.
ليس لي. للحفظ فقط. https://www.unknowncheats.me/forum/anti-cheat-bypass/501609-obs-graphics-hook32-hook.html
لقد درست العديد من أنواع الـ hooking من قبل، وهذا النوع من الأشياء لفت انتباهي لأنه يمكن استخدامه لإنتاج عرض محمي من البث.
لذا أود مشاركته مع المبتدئين هناك.

"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);
}
}
مؤشر الدالة الذي نستبدله هو "RealPresent" الظاهر في ida وليس present_begin (دالة RealPresent هي مؤشر .data). يمكنك أيضًا عمل hook لـ present_begin وتحقيق نفس النتيجة. هذا ينطبق أيضًا على نسخة x64 من obs.
ملاحظة: هذا يعمل فقط مع game capture و d3d9 game