RenderDoc 抓帧 Steam 及带启动器游戏通解
Preface 谁抓过谁知道。启动带 DRM 的游戏通常需要一个或多个启动器的支持(Steam,R* 等等) 这种情况下 RenderDoc 直接启动 EXE 本身只会拉起启动器,然后由常驻启动器本身启动游戏进程 反思RenderDoc帧本身需要在设备初始化之前就已经hook上——保证这一点的方法其实相当多: 从自带的全局appinit/Global Hook方法(上图),利用 Steamless 自制学习版绕过 Steam 到魔改 RenderDoc hook 过程 + 子进程 Capture,殊途同归 不过代价有大有小(且通常不小…),碰上一些难缠的DRM也容易暴毙 但 PC 玩家的创造力是无穷的——接下来介绍的手段将适用于 Windows 平台一切存在第三方修改/MOD的游戏 利用现成 ASI Loader 相当多 PC游戏 MOD 社区的起点都是这里。是否记得曾今打过 MOD 的后缀经常是 .asi? 他们只是更换了后缀名的.dll。在此,如果你的目标游戏用了.asi后缀,或者类似DLL Loader本身,你可以直接(注:假设Game为64位): 找到你 RenderDoc 安装目录下的 renderdoc.dll 和其他 ASI/DLL Mod 一样,复制到游戏目录并更名为renderdoc.asi 以大表哥2为例 正常启动游戏,左上角应时刻都显示着 RenderDoc Hud 此时可选的,你可以启动 RenderDoc,然后在 File > Attach to Running Instance 中找到,并同正常抓帧流程一样处理 不过即使不启动也是可以抓的:直接按下F12,你将在%TEMP%/RenderDoc中找到你的replay 照常打开 Replay 即可 手动注入 ASI Loader 有些时候可能社区并没有在MOD 注入方面做太多工作。如果没有类似的DLL Mod Loader,对没有刻意阻止注入的Game(如反作弊、反篡改),自己动手也值得一试...