前段时间看到个样本挺有意思的哈,具体是哪个公司在做就不说了目录底下有个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; }
[课程]Android-CTF解题方法汇总!