FPE修改教程进阶(地址编辑部分)
   
需要具备的几个初步知识
1.十六进制
   十六进制是进制中的一种,是我们在进行编辑的时候将要碰到的最多的问题,你接触修改,就不可避免的会遇到进制上的换算,简单的说来,十六进制就是满十六就进一位,同十进制的满十进一是一样的道理,我在这里要求大家记住最基本的前十六位的代码换算,和几个最常用的数值具体十六进制的代码,而不是去临时的找个什么进制换算器来进行换算,这点非常重要,有很多时候,一个地址的编辑,在某个标志码数值上不是很大,但是要求你有很高的数据敏感性,这点很重要,我在这里将要求记住的一些代码写出来
  01=01 02=02 03=03 04=04 05=05 06=06 07=07 08=08
  09=09 10=0A 11=0B 12=0C 13=0D 14=0E 15=OF 16=10
  特征数值
  0F=15  FF=255  FF FF =65535     32=50     64=100
  63=99  03 E7=999  27 0F=9999        01 86 9F=99999
2.真/假址的基本识别问题
  我在这里举一个例子
  一个正常的全空地址
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  
  正常数据全满地址
  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  假设我们寻求的目标是一个金钱的数量
  假设初始数量是1000的话,我们就开始以1000作为寻找目标
  1000>990>980>970> OK,我们找到了两个地址
   
  024F6A5C7BE..
  024F7BCDD3A..
  地址一我们打开以后看到
  CA 03 00 00 CA 03 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  地址二我们打开以后看到
  DE CA D3 B6 A7 D8 E9 FF D1 A3 A3 A3 DE FA FE D2
  D6 F7 F2 F8 FA 32 21 2F 2D 3E 4E 2D 6A 4E 5F 3A
  F6 5A 8D 8D 6E 7D 6E 7E 8A 9D 21 41 3A 3C D2 F2
如何判断呢,这是一个很明显的一个常见的真假地址并存的情况,我们的目标数值是970 ,换算过来是 CA 03 那么地址中有那个出现了这个十六进制的970呢?很明显是在第一个地址,我们就称为真址,而第二个没有任何的数字的规律的地址,我们称之为假址,但是并不因为其真正意义上的假址,其实,这个地址也是反映了一个关联的变量,只是所包涵的信息不是我们所需要的当前变量值,但这种地址在某种情况下仍然非常有用,起一个验证的作用,我稍后会详细解说。这就是基本的真/假地址的构成,很多时候,真实的地址通常不是这种“清版”(我们的术语,就是非常干净好认识,整版地址代码全表,无关的全部显示空码,只表达一个有关变量数值)而是在一大串没有用的数据中夹在一段特定的段落
  
  以下是一个样本
  
  DE CA D3 B6 00 02 00 00 D1 A3 A3 A3 DE FA FE D2
  D6 F7 F2 F8 FA 32 21 2F 2D 3E 4E 2D 6A 4E 5F 3A
  F6 5A 8D 8D 00 02 00 00 8A 9D 21 41 3A 3C D2 F2
  这是一个比较标准的夹码,在第二个段落的四位,一,三行包涵了一个角色的等级信息,其余部分是关于一个角色的等级相关的外表及外观,在这里就出现了非清版的地址全代码,需要大家仔细看,如果寻找的结果是2到3个这样的非清码的地址码表,不能够认为是误报而很简单的清除重新寻找,需要鉴别一下,这里不同于无规律的假址,望大家铭记。
  
  3,镜象修改
  我们知道,一个角色的资料有很多部分,最简单的比如体力数值,就有几个部分
  一具体的数值
  二表观的印象
  三显示出加成或者减少的效果
  我们在大范围的搜寻一个变动的地址的时候,会将这个真数值址所能产生的变化的及连带影响的部分全部搜寻在内,故同时间的搜寻,我们可以找出几个相关的变量数值址,我们在进行地址编辑的时候,要注意到这点区别,具体的语言描述就是,你可能修改了一个你认为是正确的,合法的地址,但当你切换到游戏部分的时候,却发现没有产生变动,但你在切换回编辑器,却发现数据已经自动恢复了原本没有修改的前样,这点我们称为,镜象修改,或者影子修改,被视同为不成功的修改,此时你要做的就是正确的分析你的地址,然后试着去修改另外的相同的或者数据上有对等点的地址,如果你不放心,就连镜象连同真址一起改动,但值得注意一点,我要提出,有时侯,真址和镜象不是绝对,在某种情况下,我们没有办法寻找真址,只有通过表观来间接修改,类似的有《骑士团》有时改掉镜象就可以把真址影响,很明显的例子PC版本的〈心跳回忆〉你可以追寻到7个地址 ,但是你改掉任何一个都没有用,要么连带修改7个,直接实现变动,要么你改任意一个,通过游戏的日历切换,对地址进行校验,换行为真址,达到修改。这点需要注意。
  正题:
  准备要求做好以后,我开始述说修改正题部分,我将以实例来分析,对读代码编辑做说明,会包涵目前的所有部分,希望大家认真想想,只要你能明白全部机理,就能很轻松明白修改学问的90%,我所写的代码部分只写主要,无关代码我不写,这样一来对初学者好看一点,而且也便于研究,真实的地址形式还是有一定出入,主要在于非清码的部分而不是00 00 00 00 之类的空节,就可能会增加认识上的困难,具体实践需要大家自己去亲自动手修改
  
  一 纯具体数值类型   
     对象举例:金钱
     在谈到一个具体数值的修改,我们很容易的就能想到一个非常常见的数据,金钱,我们在这里就以金钱做为目标,做第一个分析
   
     以益智力类型的游戏 《大富翁三》为例子
      
     初始   金钱10000     存款 10000
      
     寻找以后
     10 27 00 00 10 27 00 00 00 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     你看到的应该有这么一个部分
     好的,下面开始写上我要的数值
     ** ** ** ** ** ** ** ** 00 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     *部分很简单,也就是你所需要修改的部分,你可以填上你所需要的数值
     E7 03 00 00 E7 03 00 00 00 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     或者
     DA 34 00 00 DA 34 00 00 00 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     这就是金钱的修改了,这一步非常简单,我们完成了以后,不能停留在这一步,继续,我们来讨论更深层次的一个问题,在这一行真码,我到底能将金钱的数量改到多少?
      
   是FF FF FF 00 FF FF FF FF 00 00 00 00 00 00 00 00
     三邻位字节数
   还是四位
     FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00
   或者说根本就是
     FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    这个是个很简单的问题
    四位的全满
     FF FF FF FF = 4294967295 数值上换算过来就是这么多,我们再回头看看正常没有修改代码构成,很明显四邻位中E7 03 00 00 E7 03 00 00 中间有一个数位一定是间隔码,肯定是用来区别钱和存款的起始部分,具体是3位还是4位?鉴于游戏里有正常的钱数是2位不能足够显示的,我们可以确定是4位,所以我们能过理论上的正常的钱数 FF FF FF =16777215,所以通常我们能见到的正常的游戏的设定的钱的最大也就是10000000
   
    当然也有很多例外
    如果金钱单独是一个地址
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    全部占用了第一个四位的话很常见的就是 999 999 999 为最高上限数值,这里只要对比四数位全代码 FF FF FF FF 就能明白,取一个正常的惯用的9尾数,也就得出了4294967295 经过我们的取位数的话,也就是999 999 999 ,这就是大多数游戏金钱的最高数值的由来,这里道理大家仔细想一下,应该能明白的了。
    所以我们能做的修改,也就只在数位正常的情况下修改那个最大数值,这里就很明显的能够想到问题,当我们修改出一个数值超过间隔码,在理论上只能存在的时候,就会在显示上出了问题,很常见的就是数值溢出了那个数据框,被外面的文字,常见是:钱:字,或者一个黄色的图标盖住了,然后你再继续捡钱,怎么算呢?最后就是死机,循环错误,内存报错。精灵里面的这钟现象大家应该见到的很多。
   明白了这些,具体数值类型的,大家应该都能明白修改的基本道理和注意,也就是同上述没有太大的区别。常见的有钱,人物体力数值,级别,等等,此不繁琐的述说,请大家自行动手试验。
  
  二 非具体数据,非纯物品类的修改;连带修改
   
     这里大家首先要明白一个意思,非具体数据,非纯物品类的数据是指的什么?
   
     简单的说,拿游戏来举例,绝代双骄
     里面有很多种药水,从草药到解毒药,到还魂丹,到仙丹,本身具备物品的基本代码的编号,同时又具备单项上有数量的部分代码,我们假设现在全部的药水种类一共是100种,那么我们在真址,看到的全码,假设你一样都有一个,写出来就是
   
   
     01 01 00 00 02 01 00 00 03 01 00 00 04 01 00 00
     05 01 00 00 06 01 00 00 07 01 00 00 08 01 00 00
     09 01 00 00 0A 01 00 00 0B 01 00 00 0C 01 00 00
     0D 01 00 00 0E 01 00 00 0F 01 00 00 10 01 00 00
     11 01 00 00 12 01 00 00 13 01 00 00 14 01 00 00
     15 01 00 00 16 01 00 00 17 01 00 00 18 01 00 00
     19 01 00 00 1A 01 00 00 1B 01 00 00 1C 01 00 00
     如何解读这段代码?很明显的就是01 是对应的第一种草药的地址 后面的01 表示数量,02表示第2种药的名称的代码,01是第二种药的数量,依此类推,很明显的,我们可以以买卖的药水的数量来得到真址的获取,这就是非纯数据物品类型的意思,我们寻找地址类似于单纯的数据型,在看代码上,我们就要稍微注意下其区别。
      
     假设你并没有获得其中很多种类的药水,那么你看到就是这种形式
     00 00 00 00 02 01 00 00 03 01 00 00 04 01 00 00
     00 00 00 00 06 01 00 00 07 01 00 00 08 01 00 00
     09 01 00 00 0A 01 00 00 00 00 00 00 0C 01 00 00
     0D 01 00 00 00 00 00 00 00 00 00 00 10 01 00 00
     11 01 00 00 12 01 00 00 13 01 00 00 14 01 00 00
     00 00 00 00 16 01 00 00 00 00 00 00 18 01 00 00
     19 01 00 00 00 00 00 00 1B 01 00 00 1C 01 00 00
  
     残缺了一部分,我们看到这个时候,就应当吗上联想自己见过的东西。有草药,大草药,等等,再看看这段代码的形式,残缺的部分很多都很有规律,每四位一节,说明了什么呢,这里就是全部的药代码所在地,我现在需要做的就是把00 00 00 00 的地方按照顺序填上物品代码,就全部拥有了100种物品,恢复部分如下
     01 01 00 00 02 01 00 00 03 01 00 00 04 01 00 00
     05 01 00 00 06 01 00 00 07 01 00 00 08 01 00 00
     09 01 00 00 0A 01 00 00 0B 01 00 00 0C 01 00 00
     0D 01 00 00 0E 01 00 00 0F 01 00 00 10 01 00 00
     11 01 00 00 12 01 00 00 13 01 00 00 14 01 00 00
     15 01 00 00 16 01 00 00 17 01 00 00 18 01 00 00
     19 01 00 00 1A 01 00 00 1B 01 00 00 1C 01 00 00
     。。。。。。。。。。。。。。。。。
     。。。。。。。。。。。。。。。。。。。
     然后我们明白了四位结构就是名称代码,数量代码,间隔码,那么全部改上我们想要的数量数值以后,就变成如下
      
     01 OF 27 00 02 0F 27 00 03 0F 27 00 04 0F 27 00
     05 0F 27 00 06 0F 27 00 07 0F 27 00 08 0F 27 00
     09 0F 27 00 0A 0F 27 00 0B 0F 27 00 0C 0F 27 00
     0D 0F 27 00 0E 0F 27 00 0F 0F 27 00 10 0F 27 00
     11 0F 27 00 12 0F 27 00 13 0F 27 00 14 0F 27 00
     15 0F 27 00 16 0F 27 00 17 0F 27 00 18 0F 27 00
     19 0F 27 00 1A 0F 27 00 1B 0F 27 00 1C 0F 27 00
     。。。。。。。。。。。。。
     。。。。。。。。。。。 。。
     这样一来,我们就实现了全部的药的全部拥有及数量上的9999,看明白了吗,这里修改的数量的时候,要参照第一例,纯数据类型的修改的部分,而且事实上我们最初的获得地址的时候,可能残缺程度会更严重,这里就需要你有高敏感的数据感受能力和地址感受能力,并且,我们在这里就是通过一个草药的数量,实现了全程物品的代码获知和修改,这就是连带修改的最简单的一个实例,这里希望大家反复看,力求看懂。
如果你明白了这一点,接下来我们在看一个例子,比较难一点,我给大家演示的是CAPCOM的冒险类型的游戏,BIO HAZARD 2
   
     我们要通过一个开始的子弹的20发数量,实现全程道具,武器的修改。
      
     代码部分如下
   
     由于武器方面,很明显的初级给你的武器就是一把刀,所以很自然的联想到代码是01
这在真实地址中也确实如此,所以。开始就需要大家有一个比较清楚的修改的思想和猜测,然后我们在开枪模式下 20/19/18/17/10 OK
     代码出来,去掉假址
     进入真址
     你就会看到如下形式
   
     00 00 00 00 02 0A 01 00 16 01 00 00 3C 63 01 00
     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     这是代码部分,身上装备为*** 一把 子弹 10发  草药一个  99发子弹合一个
   
     对照上述代码,我们就知道。02 是*** OA 是剩余数量 16  后面的01 一顶是表示枪存在身上,是一把,也就是物品存在码 00 间隔 16就一定是草药 01 是一个。由于草药是吃的,所以其后不会有存在码,当然你也可以试着写上,并不影响,系统会自动帮你消失掉,3C就是一定是物品属性中,表示子弹合的代码了 63 ==99没有错,正确 ,01 存在码,就这样很清楚的就分析了出来,现在我们要改掉物品道具,很简单,程序一般相近的物品在一起,那么03可能是大枪 04 可能是冲锋枪,17可能是中药 18 可能是大药 3D就是下一个道具,就这样依此类推就可以做到全程物品的代码修改,按照其标准存在格式,自己往上面写就是了,但要注意,你的身上能装几个,就改几个,类似于金钱的溢出问题,还有要注意一点,限于一个游戏的开发人员的习惯,有很多东西在初期设计上,存在,但是在正式发行以后,可能就不要了,但是程序员为了赶时间,没有彻底删除掉,做了个屏蔽,本身也有编号,夹在正常物品中间,所以你在修改的时候,装备,道具可能就不是连续出现,而是出现一个垃圾码的装备,你可以试试,生化危机3的物品在2代里面就已经见到了,此点注意一下就可以了。修改的时候不要以为是自己的错误,也有可能是游戏里没有开放的东西,理解了这点,再去理解精灵的修改过程的问题就很容易了。
      
   三 人物属性的修改
     终于到了这部分了,如果大家对于上面所讲的理解很透彻,那么这里,你只要看看,就彻底明白了,包括精灵,请自己联想。
     连带修改可以是药水,可以是相同的装备,也一定可以是人物的属性,很简单《魔奇梦幻团传奇》人物作比方
      
      等级 01
      HP 100
      MP 100
      回合数 3
      带兵 20
      武器 小刀
      国家属性 特里斯雅
      队伍属性 敌军
      攻击  3
      经验 20
      金钱 50
      
      这就非常简单了
      
      01 01 00 00 64 00 00 00 64 00 00 00 03 00 00 00
      14 00 00 00 01 00 00 00 0A 00 00 00 02 00 00 00
      03 00 00 00 14 00 00 00 32 00 00 00 00 00 00 00
      已变化的经验数值找到这里,然后修改
   
      01 01 ? 一定是人物 名称 代码 等级  02 01 就是女主角 一级
      64 00 00 00  64 00 00 00 两个100的数值
      03 回合数量 14 带兵量 01 就是小刀那
      0A 国家的名称,你换个0B看看就变成了临近的国家的名称
      02 敌军 ,很简单的联想   01 是不是友军呢?
      03     14        32       就是剩下的三项了
      呵呵,全部都改掉吧!
     很简单吗~?  就这样?我还要说点什么呢?自己去试修改精灵吧!
      
     我写上常见的几大数据类型,大家参考之。
      
     一 夹码类型
        DE CA D3 B6 00 02 00 00 D1 A3 A3 A3 DE FA FE D2
        D6 F7 F2 F8 FA 32 21 2F 2D 3E 4E 2D 6A 4E 5F 3A
        F6 5A 8D 8D 00 02 00 00 8A 9D 21 41 3A 3C D2 F2
      
     二 清版类型
        10 27 00 00 10 27 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      
     三 无间隔码类型(与假址很类似,但含有真址数据)
        ** ** ** ** A7 D8 E9 FF D1 A3 A3 A3 DE FA FE D2
        D6 F7 F2 F8 FA 32 21 2F 2D 3E 4E 2D 6A 4E 5F 3A
        F6 5A 8D 8D 6E 7D 6E 7E 8A 9D 21 41 3A 3C D2 F2
        
        ** ** ** ** 部分是常见的数据所在地址
     四 纵向码类型
        31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        3E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        5D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     五 换行码类型
        01 01 00 00 01 01 00 00 01 01 00 00 01 01 00 00
        00 01 01 00 00 01 01 00 00 01 01 00 00 01 01 00
        00 00 01 01 00 00 01 01 00 00 01 01 00 00 01 01
        01 00 00 01 01 00 00 01 01 00 00 01 01 00 00 01
        00 01 00 00 01 01 00 00 01 01 00 00 01 01 00 00
        00 00 01 00 00 01 01 00 00 01 01 00 00 01 01 00
        (这个见于恋爱游戏,人偶情缘里的地址之一)
     六 镜象地址
        也就是全部需要你一起手动修改
         
        大概就这么些了
        
       希望大家耐着性子看完,并好好的想想这部分的意思。
    四  最后篇  模糊查找
      如果我们对一个游戏里的数据并不大清楚,换句话说,就是不是一个具体数值,而是一个感性的认识,游戏是有地址的,但是我们常规的找不到,比如,血条又降了一点,好感度又上升了一点,等等,我们就在修改器里写下?然后变化的时候。模糊的上升+ 模糊的减少-这样反复的搜寻,最后依旧可以找到在游戏中以数据形式的方式存放的地址,找到了以后,依旧可以修改,大同小异,这里,大家可以试验一下,修改一下电脑上的KOF97的1P 和 2P 的体力数值,试试看!
  
  
   实际的修改还有很多很多的东西要学习,并不是这里一句两句就说的清楚,希望大家在不断的修改试验中,理解我说的,不断创新,成为修改的高手,专家,神。
用FPE-学会用浮点修改法-学会用二进制分析修改游戏-巧用FPE的刷新-特殊存档
巧用FPE  
用FPE改游戏,一定要做到既狠又准。
比如用FPE改游戏,你知道有两个数值肯定在一起,象42,215,那么可用FPE进行一次搜索,输入“42,215”(若是16进制请在数后面加个H),这样一次找到的机率很大。
一些游戏在运行时将一些主要数值换了个方法存,用FPE直接找不到,怎么办呢。那么要转转弯,比如大家喜爱的足球经理,用任何方法都找不到金钱的地址,就这样放弃了?NO,动动脑筋,进入建设菜单,看见造看台所需的费用了吗,这里就是突破口,FPE不费力就发现了目标,下面么,将其改为负数,譬如原数为E4 07 00 00,就将最高位加个F,为E4 07 00 F0,就发现负数一大笔,按确定就发财了!
“帝国时代”大家都玩过,当你造了奇迹后,有2000年的倒记时,你的第一印象是搜索2000?那么,错!没看见它是成50递减的吗,所以,应该搜索2000/50=40,然后减1减1地搜索(要不就是2000/10=200,减5进行搜索,这东东改了没实用价值,只不过举个例子罢了)。而有些则是要加上位数,如显示200,却要搜索2000,变化多样,大家自己慢慢的体会吧!
FPE的修改内存功能很有用,多用用它,看看找出的地址周围的数,说不定有惊喜呢。反正我从不用什么内存锁定,一般都用内存编辑。然后看上下数,对于普通游戏,应该不试就看出这个存的是什么数值,而那里应该是存放魔法的地址,或这个地址肯定不是我 所要的……如果你还未达到看看就知的地步,那么快练练吧,以后可省许多时间呢。
一时想不出了,下次有再说吧。

  学会用浮点修改法

这个游戏是使用浮点数来存放的,在这里我说明一下如何以 FPE 2000修改他们。FPE 2000 可以直接分析浮点数,只要 直接输入就好了,例如 "100.0"。
或许你会问: TA 或 AoE 的资源量在画面上显示只有整数部分呢? 是的,他们隐藏了小数部分的数值,如果画面上显示的是 "1000",因为它隐藏了小数的部 分,若你直接在 FPE 2000 以 "1000" 或 "1000.0" 去分析他,可能是找不到的。那我们要怎麽办呢? 其实程式设计师还是比较喜欢整数的,例如我们刚刚进入游戏时,TA 或 AoE 的资源都有个初始值,例如 "400"。这时候这个值很可能 就是 400.0,一个农夫能够采的资源最大量是 10,也很可能是 10.0。如果你派个农夫去采资源,一直到他采完 10 搬回基地前不要做任何其他的事,一搬 回基地马上停止农夫的动作。这时你整的资源量变成 410,很可能就是 410.0。依照这个原则,一开始我们分析 "400.0",派农夫采满 10,搬回基地前不要做 任何其他的事,一搬回基地马上停止农夫的动作,分析 "410.0"。依此类推,就大概可以找到目标了。我们这个原则是猜想程式设计师会对每一个初始值及最大 值以 ***.0 的方式定义(一般人的习性嘛)。但是如果你在农夫搬回基地前做其他消耗资源的事或是在农夫没有采满 10 就搬回基地,那可能就会有小数点後的 数出现了,那就不能很准确的分析了。以前有网友说 100.0 到 100.9 的翻成四个十六进位 bytes 时,前两个 bytes 会一样。其实这不正确,根据测试,有些浮点数(如120.4和120.5)只有第一个 byte 会一样而已. 而且这个 byte 很难变动,必须整个浮点数有很大的变动才会变。所以比较好的分析方法如同刚刚说的才会比较正确。FPE 2000 也 可以把浮点数转换为十六进位数,在 "Others" 左下方那两个中间有个 "Hex"按钮的栏位,你只要在上面栏位输入浮点数,下面会出现十六进位值,你可以自行试试。
也许有的朋友看到标题时摸不到头脑,那么望下看吧。(仅适合FPE5.x)
我改金色步行鸟时,好不容易用名字找出步行鸟地址的大概位置时,却看见满屏陌生的数据而无从下手。茫茫的数据中,哪个是要害字节呢?要找步行鸟的什么速度、耐力之类的,游戏中又没有具体数据,高阶分析无从下手。用低阶分析?那可是本人最忌讳的。
山穷水尽想放弃时,眼睛一亮,OK,且听我慢慢道来。找到步行鸟名字的地址后,按E键进入内存编辑,不按任何键,切回游戏中。给步行鸟喂食,使它某一项能力增长,切到FPE,怎么还是上次的数据,那么按ESC键,恩,有几个数据在动啊(改变了),没看清?那么再照上面的方法来一边吧!发现改动的数据了吗,分析其上下的值,怎么样,有几行是很有规律的,对啦,那就是步行鸟的数据了。
没听懂?自己实践一下吧,这个方法可是很有用的喔!
学会用二进制分析修改游戏

不少游戏中都有什么诸如人物的特殊能力,比如DIABLO。那么它的魔法是如何存放的呢,每个魔法用一个字节,00代表无,01代表有?那也太浪费了吧,一般来说程序员都爱用二进制来存放各项能力,大家知道,一个字节有8位(如FFh化为二进制是11111111),游戏中的能力就是占了一位(bit),0代表无,1代表有。如果某一游戏的能力排放为00000011,那么在内存(硬盘)中存放就是03h,显然用二进制能有效地减少存储空间。
由上面看来,直接搜索能力的地址是不明智的,一般我们修改都找出这个人物(或其他什么东东)的数据所在地,然后找到能力的具体地址,将其改为FFh,一般就可拥有全部的能力。
下面我以早期的战略游戏经典“信长之野望——天翔记”为例来分析(当年还没有FPE4和5,用其他的内存修改工具会死机,只得用PCTOOLS)。记得当年我修改的时候,差点想破脑袋。天翔记中个各人物都有“智力/智才、政治/政才、战斗/战才”三项能力,你直接找智力或找智才,都是找不到的。而我拐了个弯,寻找他的勋功,然后上下分析,才得出结果。原来他的智力是按智才的百分比存放,而智才是将游戏中的数据除以2存放,怪不得找不到哩(光荣这个混蛋)!水到渠成,修改其它诸如兵力,训练……就是简单的事了。
找到了人物的特技和带兵能力后,按习惯都改为FF,特技到是PASS了,但带兵能力却不对,怎么都变一个个的O O O O了(应是S、A、B、C、D),思考良久,由于能力有6级,故一位是放不下的。两位?两位只有00、01、10、11四级啊,放不下6个级别,那么只有3位了,可从来没有一个游戏用了3位存放的,要么4位,要么2位,再说共有“陆、骑、枪、水”四个,4x3共12位,不足2个字节16位,而且3位能放8级的能力,难道见鬼了?又思考晾久并试出确是只有两个字节,干脆,赌一把。000代表E级,001代表D级,010代表C级,011代表B级,100代表A级,101代表S级,一个字节存2个能力,OK,把2个字节改为2Dh,2Dh(00101101),进入游戏,不对,怎么“X”都出来了。反回来再改,改为6D FB(01101101 11111011),哦(欢呼),对啦,全是S级喽,还有铁骑呢!
怎么样,够艰难吧,别看现在说说简单,在不知道的情况下要想出来是很难的。而这,也是修改游戏乐趣的所在之一。希望看了上面的分析,能给你有所收获(尽管以后可能用不到)。
巧用FPE的刷新

也许有的朋友看到标题时摸不到头脑,那么望下看吧。(仅适合FPE5.x)
我改金色步行鸟时,好不容易用名字找出步行鸟地址的大概位置时,却看见满屏陌生的数据而无从下手。茫茫的数据中,哪个是要害字节呢?要找步行鸟的什么速度、耐力之类的,游戏中又没有具体数据,高阶分析无从下手。用低阶分析?那可是本人最忌讳的。
山穷水尽想放弃时,眼睛一亮,OK,且听我慢慢道来。找到步行鸟名字的地址后,按E键进入内存编辑,不按任何键,切回游戏中。给步行鸟喂食,使它某一项能力增长,切到FPE,怎么还是上次的数据,那么按ESC键,恩,有几个数据在动啊(改变了),没看清?那么再照上面的方法来一边吧!发现改动的数据了吗,分析其上下的值,怎么样,有几行是很有规律的,对啦,那就是步行鸟的数据了。
没听懂?自己实践一下吧,这个方法可是很有用的喔!
 
特殊存档

FPE2000一个很好的功能是能把你已经修改好的东西存下来,下次你再打开游戏时可重新调入,这个存盘文件的后缀名就是FPE。方法很简单,只要按CTRL-2到表格处,按LOAD(读档),选择想要的FPE文件名即可。FPE2000会自动把那些地址锁定。不过要注意,存盘的文件名不能为中文名。另外,欢迎大家把自己修改了的游戏做成FPE存档,拿出来和大家分享。

转载于:https://www.cnblogs.com/seerlin/archive/2008/08/29/1279772.html

FPE修改教程进阶(地址编辑部分)相关推荐

  1. (转)FPE修改全教程1

    (转)FPE修改全教程1 [原创]FPE修改全教程       很早的时候,当出现了视窗系统以后,图形界面就深得人们的喜爱,从古老的DOS界面的幼稚的波斯王子开始,便逐渐的出现了更高意义上的游戏,更优 ...

  2. zb system login.php,zblog 修改后台登陆地址的教程

    Z-Blog PHP版本默认的后台地址修改相对困难.虽说这也算不上什么大问题,但如果zblog出现管理员密码泄漏问题,默认的后台将为入侵者大开方便之门.因此,网站的安全取决于细节,下面小编详细介绍Z- ...

  3. 【100个高大尚求职简历】简历模板+修改教程+行业分类简历模板 (涵盖各种行业) (简历模板+编辑指导+修改教程)

    文章目录 1 简历预览 2 简历下载 很多人说自己明明投了很多公司的简历,但是都没有得到面试邀请的机会.自己工作履历挺好的,但是为什么投自己感兴趣公司的简历,都没有面试邀请的机会.反而是那些自己没有投 ...

  4. linux 不小心删掉网卡配置文件的mac地址 如何恢复,linux/Centos下查看和修改网卡Mac地址(ifconfig命令)...

    本文转载自http://www.169it.com/article/14360294838474691537.html eth0 Link encap:Ethernet HWaddr 00:e4:56 ...

  5. php模板初级教程,风格模板初级不完全修改教程

    风格模板初级不完全修改教程 更新时间:2006年10月09日 00:00:00   作者: 就自己的一点点经验,希望能给初接触模版修改的朋友有个参考. 关于模版修改, 引用星星签名里的一句话" ...

  6. http sxyk.cdn_Discuz x3 开启cdn和https后链接修改教程

    Discuz x3 开启cdn和https后链接修改教程 开启支持https主要需要修改一下几个地方 1. .查找修改文件discuz_application.PHP :source/class/di ...

  7. android自动改,【玩机组ROM修改教程】自己修改安卓ROM 刷机包教程

    本帖最后由 威风凛凛77 于 2018-5-4 18:02 编辑 偉鎽凛凛头衔01.gif (279.94 KB, 下载次数: 85) 2018-5-4 12:41 上传 [玩机组ROM修改教程]自己 ...

  8. 《比特彗星-教程》(编辑于2023.02.08)

    <比特彗星-教程>(编辑于2023.02.08) 教程不定时更新:[https://torrnet.lanzout.com/b0dai9roh] QQ群:[836809335] 教程 1. ...

  9. 网址服务器地址修改,网址服务器地址修改

    网址服务器地址修改 内容精选 换一换 下载地址:https://github.com/pypa/setuptools打开网址后找到版本v29.0.1并下载,如下图所示.下载地址:https://pyp ...

最新文章

  1. Only call `sigmoid_cross_entropy_with_logits` with named arguments解决
  2. 安装VS2010 无法打开数据文件'C:\Users\Administrator\AppData\Local\Temp\SIT12124.tmp\deffactory.dat的解决方法...
  3. 在java中会存在内存泄漏吗?
  4. ps aux指令詳解
  5. 数学--数论--HDU 2582 F(N) 暴力打表找规律
  6. 如何自建云存储平台?
  7. Excel常见问题总结
  8. 二维 稳态边界层问题MATLAB,第三章 边界层理论.ppt
  9. 董明珠表示“格力不能更好运营,我绝不交班”,现实由不得她
  10. 认知计算、大数据及人工智能革命
  11. 有哪些原版英文书籍值得推荐?
  12. msgbox.html5.qq.com,怎样制作qq透明背景皮肤
  13. 常规机械硬盘分类应用场景与硬盘接口存储方案介绍
  14. 作业3 跟踪分析Linux内核的启动过程
  15. @Controller注解的一些理解吧
  16. Eclipse Plungins--Pydev
  17. 腾讯AI Lab姚建华博士入选2022 AIMBE会士
  18. 三足鼎立写博赚钱之道--献给2010年初互联网扫黄运动被错杀的兄弟
  19. 西门子杯企业命题”钞包分拣装箱系统”演示视频
  20. 沉睡者IT:零基础学习短视频与+玩转抖音快手

热门文章

  1. 利用css绘制三条横线的菜单图标
  2. java并发编程实战wwj----------------------第一阶段--------------31-32-33-34
  3. PCA(主成分分析法)的Python代码实现(numpy,sklearn)
  4. C/C++语言常用开发工具
  5. 游戏出现GetThreadContext failed报错 Unity开发
  6. 【数据库 关系代数和SQL】经典查询总结
  7. 搭建SNS游戏服务器
  8. JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
  9. 关于计算机在教室的文化建设方案,聊城大学教学楼、教室文化建设指导方案
  10. 小米春招编程题(第3题)