首页
社区
课程
招聘
[分享]直播软件obs-studio graphics-hook利用
发表于: 2019-10-28 21:53 8774

[分享]直播软件obs-studio graphics-hook利用

2019-10-28 21:53
8774

前段时间看到个样本挺有意思的哈,具体是哪个公司在做就不说了
目录底下有个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开发额外的插件)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-10-29 00:02 被练习生编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 9626
活跃值: (1838)
能力值: ( LV5,RANK:73 )
在线值:
发帖
回帖
粉丝
2
在你选择hook的那一刻,各个ac都笑了。
2019-10-29 04:15
0
游客
登录 | 注册 方可回帖
返回
//