C# winform 魔兽MH全图制作教程(1): 开发准备工作

C# winform 魔兽MH全图制作教程(1): 开发准备工作

 

一、开发条件:

  1. Visual Studio 2008
  2. win xp,win 7,win 2003.
  3. C# 语言基础
  4. 会调试
  5. 能够运行游戏:《魔兽争霸3冰封王座》
  6. 拥有版本魔兽客户端版本切换器1.20E,1.24E,1.24D

 

二、设计思路:

当时做这个程序没考虑太多,下手直接写代码,所以感觉有很多不足,但还是要讲下我的设计思路。

首先:

  1. 把魔兽整个体系看做一个对象,而且它拥有属性字段如:魔兽版本信息、自身动态内存地址,扩展功能:窗体最大化、视野高度.等等。而且我们要把字段封装起来(也为了后期制作方便)字段设置为静态,以便快速获得信息。


  2. 无论是全图,还是改建改窗体,都是在调用系统API:kernel32.dll ,我们使用的接口大部分来自这里。所以你要知道如果失败了,那么调试时:库有没有导入成功、接口方法是否返回了正确的值、传参是否正确这都将是成功完成功能的关键所在。

  3. 写内存函数你必须了解。也就是:kernel32.dll。只要知道写入的内存地址,写入的值,以及进程,那么你就可以成功的调用,那么这些东西我们该如何获得呢?
  4. 要得知游戏的内存地址也就是动态内存地址(基础+偏移),我们必须能获得Game.dll的信息,判断版本也靠它,所以它也是个关键。游戏分多个版本,1.20E一般为普通RPG地图娱乐使用,1.24B,1.24E是目前比较流行的,也是Dota的主流版本,所以如果把1.20E的内存
  5. 如果你看完以上内容肯定会得出一个结论,也就是我们围绕在使用的: kernel32.dll <<< WriteProcessMemory <<< 信息 <<< Game.dll 而我们主要做的就是:获得信息,告知接口。

 

三、调用结构图:

结构图会根据文章进度解析其他参数来源,下一节会介绍基址的获得方法。

W.je(zlawliet)作品,转载注明出处:http://www.cnblogs.com/tango/articles/2407816.html

原文地址:https://www.cnblogs.com/tango/p/2979848.html