魔兽争霸3的MapHack制作教程(一)显示敌对单位

本文参考了Chaotic的HowTo create a basic Maphack,
原文地址如下: http://www.skillhackerz.com/Chaotic/Tutorial/Mh1/index.htm
由于对原文做了较大的修改,最好将本文与原文参照起来看。
================================================
正文:
软件版本:
魔兽争霸3:1.20e
CheatEngine:5.3
WindowsXP
VisualBasic6.0
 
制作MH的前期准备:
-游戏修改器,推荐使用CheatEngine( http://www.cheatengine.org/
-基础的汇编语言知识
-基础的游戏修改知识
-基础的编程能力
-窗口模式下运行魔兽争霸3(加-window参数)
->为其创建一个快捷方式,右键点击,选择“属性”,在“目标”框的最后加上“-window”
 
第一部分 猜测地图迷雾的实现原理
经过测试,魔兽争霸3的地图迷雾的原理是:
敌对单位可见时,值为1
敌对单位不可见时,值为0
以下部分将基于这个进行内存地址的搜索。
 
第二部分 搜索内存地址
=用窗口模式启动游戏,随便选个小兵到野怪附近,这时由于该野怪在视野范围内所以可以看见它。
=打开CE,选择魔兽3的进程war3.exe,将Value值设为1,Value Type值设为Byte,点击First Scan开始搜索。
=搜索完毕后,切换到WC3,拉开小兵使那个野怪不可见,返回CE,将Value值改为0,点击Next Scan。
=搜索完毕后,再回到游戏,移动小兵,使那个野怪可见,返回CE,搜索1
=这样反复搜索,最后可以得到大约10多个地址,然后依次锁定为1,测试是否是我们在找的那个。
=我这次的值是09C15CE2,我锁定这个地址的值为1,切换到游戏中会看到那个野怪在不断的闪烁。
=找到了地址就可以对其跟踪了,非常方便CE就有这个功能!
=取消该地址的锁定,右键点击这个地址,在弹出的菜单中选择Find out what reads from this address
=马上就可以看到CE帮我们找到了这句6f2a08b1 -668b3c41 -mov di,[ecx+eax*2]
=点击 show disassembler 看看它附近的汇编代码,双击这句改为mov di,01
=哈,地图上所有的野怪都可见了!
=至此,最最简单的MH的前期准备就做完了,虽然只能在主地图上看到敌对单位(RPG地图好像不能正常显示),且只能用于你制作时所用的魔兽版本,但是我相信,读了这篇文章聪明的你一定能做出更完善的MH
mov di,[ecx+eax*2]
movzx esi,word ptr [esi+edx*2]

第三部分 编写代码
由于我不会C,所以只好把Chaotic的代码翻译过来用VB写了。
大致思路如下:
1.获取魔兽争霸3的进程号。
2.提升自己的debug权限(否则无法用writeprocessmemory)。
3.对魔兽进程的相关地址进行改写
最终效果如下:
 
 
具体代码不贴了,想看的自己下载。由于我用的是1.20e搜索的地址,所以其他版本需自行按教程找到相应的地址
 
 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值