Visual Studio 2008win xp,win 7,win 2003.C# 语言基础会调试能够运行游戏:《魔兽争霸3冰封王座》拥有版本魔兽客户端版本切换器1.20E,1.24E,1.24D
当时做这个程序没考虑太多,下手直接写代码,所以感觉有很多不足,但还是要讲下我的设计思路。
首先:
把魔兽整个体系看做一个对象,而且它拥有属性字段如:魔兽版本信息、自身动态内存地址,扩展功能:窗体最大化、视野高度.等等。而且我们要把字段封装起来(也为了后期制作方便)字段设置为静态,以便快速获得信息。 无论是全图,还是改建改窗体,都是在调用系统API:kernel32.dll ,我们使用的接口大部分来自这里。所以你要知道如果失败了,那么调试时:库有没有导入成功、接口方法是否返回了正确的值、传参是否正确这都将是成功完成功能的关键所在。 写内存函数你必须了解。也就是:kernel32.dll。只要知道写入的内存地址,写入的值,以及进程,那么你就可以成功的调用,那么这些东西我们该如何获得呢?要得知游戏的内存地址也就是动态内存地址(基础+偏移),我们必须能获得Game.dll的信息,判断版本也靠它,所以它也是个关键。游戏分多个版本,1.20E一般为普通RPG地图娱乐使用,1.24B,1.24E是目前比较流行的,也是Dota的主流版本,所以如果把1.20E的内存如果你看完以上内容肯定会得出一个结论,也就是我们围绕在使用的: kernel32.dll <<< WriteProcessMemory <<< 信息 <<< Game.dll 而我们主要做的就是:获得信息,告知接口。
W.je(zlawliet)作品,转载注明出处:http://www.cnblogs.com/tango/articles/2407816.html
转载于:https://www.cnblogs.com/tango/archive/2013/03/25/2979848.html