游戏调试与侦察工具全解析
1. 使用OllyFlow可视化控制流
OllyFlow是一款纯可视化插件,可在OpenRCE插件目录中找到。它能生成类似图2 - 9的代码图,并使用Wingraph32进行展示。需要注意的是,Wingraph32并不随OllyFlow提供,但可从IDA的免费版本中获取,下载地址为:https://www.hex - rays.com/products/ida/ ,下载后将.exe文件放入OllyDbg安装文件夹即可。
这些图虽不具交互性,但能让你轻松识别游戏代码中的循环和嵌套if()语句等结构,这在控制流分析中至关重要。安装OllyFlow后,可通过以下方式生成图:
- 前往Plugins > OllyFlow(或者在反汇编面板中右键单击,展开OllyFlow图子菜单),然后选择以下选项之一:
- Generate function flowchart:生成当前作用域内函数的图,将不同代码块拆分并显示跳转路径,这无疑是OllyFlow最有用的功能。
- Generate xrefs from graph:生成当前作用域内函数调用的所有函数的图。
- Generate xrefs to graph:生成调用当前作用域内函数的所有函数的图。
- Generate call stack graph:生成从进程入口点到当前作用域内函数的假定调用路径的图。
- Generate module graph:理论上可生成整个模块中所有函数调用的完整图,但实际很少能正常工作。
为了更好地理解OllyFlow的实用性,我们来看一个简单的汇编函数及其对应的图: