魔兽3内存修改器 v8

原文 http://tctianchi.yo2.cn/articles/%e9%ad%94%e5%85%bd3%e5%86%85%e5%ad%98%e4%bf%ae%e6%94%b9%e5%99%a8-v8.html

[下载]

Filename: war3trainerv8.rar
Filesize: 69 kB
Upload-Date: 2009/9/8
Download-Link:

請勿用下载工具下載,否则得到错误文件

http://rapidshare.com/files/277160783/war3trainerv8.rar

http://www.easy-share.com/1907675614

screenshot

[新特性]
这个程序区别于v7的特征包括:

  • 所有代码用C#重写。

    由于2009年年初的时候,我做出了彻底抛弃vb6的决定,所以一些vb6的旧工程,如果现在仍然需要使用,将不惜成本推倒重来。《修改器》也是其中的一员

  • 更多的游戏版本支持

    新的支持列表包括:1.20.4.6074、1.21.0.6263、1.21.1.6300、1.22.0.6328、1.23.0.6352、1.24.0.6372。

  • 允许修改的游戏金钱从10家改为12家

    这是v4版留下的陈年旧坑,一并填上。

  • 允许修改物品种类和使用次数

    现在可以将手上的物品替换成另一种物品。方法是:选中携带者的单位、更换物品的名称、物品扔在地上、捡起,即可。

[新版本的支持方法]
如果有下一个版本的魔兽3,我肯定不会马上更新修改器的,你可以用下面的方法更改修改器的代码,达到升级的目的。

修改的关键在于clsGameContext.cs中间部分,首先添加一组case,然后逐一找到War3AddressThisGame、War3AddressSelectedUnitList、War3AddressMoveSpeed的值,方法如下。

一、War3AddressThisGame
1、用通用修改器找到英雄的力量,4字节整数,唯一地址
2、查找谁访问了这个地址,该地址所在的函数我称为DrawHeroProperty,定义是:

  1. int  __thiscall DrawHeroProperty( int  *GameContext,  int  **HeroAttributes,  int  *AttributeBias, unsigned  int  *GBuffer)  


3、这个函数很有特点,一些颜色字符串的中间穿插了读取命令,其中一定有:
(1)[xxx + 94h],这是力量
(2)[xxx + A8h],这是敏捷
(3)同理,Storm_578(... "%d" ...)之前,必然还有一次函数调用,这是智力
4、稍微跟进1、2个函数就能看到常量值dword_xxx,这个xxx就是War3AddressThisGame

二、War3AddressSelectedUnitList
方法很多,我的方法是:
1、查找字符串"LOCAL_PLAYER",搜索时不必从头开始,从字符串段1/2处开始即可
2、引用该字符串的函数有很多,从最后一个开始看,没有的话看倒数第2个函数
3、一定会有一个函数,头部同时有"LOCAL_PLAYER"、"LOCAL_GAME",末尾形如

 
 
  1. if  ( !dword_6FAA2FFC )  
  2.     dword_6FAA2FFC = sub_6F0074F0();  

这个6FAA2FFC就是War3AddressSelectedUnitList

三、War3AddressMoveSpeed
这个最简单:
1、打开修改器源代码,在clsGameTrainer.cs中有一行注释:“... set breakpoint here ...”
2、在此处设置断点,在游戏中选择一个单位,并在修改器中扫描,程序会马上运行到这里中断
3、这是一个循环结构,tmpAddress2通常情况下是同一个数字,但是有一轮迭代时会是不同的数字,这个数字就是War3AddressMoveSpeed

[后记]
还真是懒得花时间说明修改器的原理了。反正v8的源代码比v7的源代码更难懂就是了,一定要看而看不懂v8代码的同学,去看v7的代码,你会发现我把代码用C#重写,不见得是明智的选择……

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值