-
-
[分享]直播软件obs-studio graphics-hook利用
-
发表于:
2019-10-28 21:53
8773
-
[分享]直播软件obs-studio graphics-hook利用
前段时间看到个样本挺有意思的哈,具体是哪个公司在做就不说了
目录底下有个graphics-hook.dll,搜了一下发现是个开源项目,用于直播录屏。然后然后,就关闭了ida,进入github逆向模式。woc,那这不就是一个非常适合利用的dll吗,怎么硕呢,各种dx版本已经适配好了,并且软件是经过用户充分测试和开源迭代的,拿来用省事,并且软件发行版本带有合法签名,在各个anticheat引擎中,这个模块很有可能是个超级白名单。下面讲一下这个模块可能会被利用的点
1、graphics-hook.dll hook游戏dx函数,自己再去hook graphics-hook
(至于hook graphics-hook可以改代码也可以不改代码,毕竟里面有原函数指针)
举个例子(源码摘自d3d9-capture.cpp):
static HRESULT STDMETHODCALLTYPE hook_present(IDirect3DDevice9 *device,
CONST RECT *src_rect,
CONST RECT *dst_rect,
HWND override_window,
CONST RGNDATA *dirty_region)
{
IDirect3DSurface9 *backbuffer = nullptr;
HRESULT hr;
if (!hooked_reset)
setup_reset_hooks(device);
present_begin(device, backbuffer);
unhook(&present);
present_t call = (present_t)present.call_addr;/*安排在这个全局变量*/
hr = call(device, src_rect, dst_rect, override_window, dirty_region);
rehook(&present);
present_end(device, backbuffer);
return hr;
}
- 2、共享内存中的backbuffer渲染到另一个窗口/设备中,再画几何图形,类似于直播的形式
- 3、基于2的基础上再加上按键、鼠标透传到游戏中,再画点几何图形,类似于云游戏的模式(假如老板给你安排云游戏项目,连gui开发都省了,你只用给obs开发额外的插件)
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2019-10-29 00:02
被练习生编辑
,原因: