现在的游戏不像以前的,基本都采用的驱动保护游戏主程序,使其它RING3上的程序基本上没有权限访问游戏的内存,经过测试,OpenProcess只有结束游戏的权限.基它权限都是失败,所以不可能使用ReadProcessMemory读取内存.
但是又发现,在游戏启动的某段时间内,是应该可以读取的,比如WINDOWS的任务管理器.如果在启动游戏之前打开任务管理器,就可以得到改游戏进程的相关信息.如下图.
但游戏启动完成后,再打开任务管理器,就不能显示游戏的部分信息了.如下图.
在使用OD对任务管理器进行调试时发现,任务管理器的读取方法跟我们的方法是一样的,先OpenProcess,不过它居然分三次尝试使用不同的权限打开进程,不过全部是返回0,也就是失败.
到最后搜索来的信息说明,只有使用驱动进入RING0下才有可能,可惜只会VB,连真正的DLL都不会写,更不要说驱动.不过功夫不负有心人,今天通过调用第三方驱动成功读到了内存.以下是最初的截图.
可以读取到游戏当中工具的持久了.接下来是内存分析的任务.努力!
以上运行环境是VISTA U版,VB 6.0.