|
学会用浮点修改法 |
||
|
|
||
|
这个游戏是使用浮点数来存放的,在这里我说明一下如何以
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"。依此类推,就大概可以找到目标了。我们这个原则是猜想程式设计师会对每一个初始值及最大 值以 XXX.0 的方式定义(一般人的习性嘛)。但是如果你在农夫搬回基地前做其他消耗资源的事或是在农夫没有采满 10 就搬回基地,那可能就会有小数点後的 数出现了,那就不能很准确的分析了。以前有网友说 100.0 到 100.9 的翻成四个十六进位 bytes 时,前两个 bytes 会一样。其实这不正确,根据测试,有些浮点数(如120.4和120.5)只有第一个 byte 会一样而已. 而且这个 byte 很难变动,必须整个浮点数有很大的变动才会变。所以比较好的分析方法如同刚刚说的才会比较正确。FPE 2000 也 可以把浮点数转换为十六进位数,在 "Others" 左下方那两个中间有个 "Hex"按钮的栏位,你只要在上面栏位输入浮点数,下面会出现十六进位值,你可以自行试试。====================================================================== FPE 2000使用特殊技巧,你只要知道整数部分(如1000),分析 "1000.*" 就可以分析所有整数部分为 1000 的浮点数,第二次如果变成 1200.XX,可以分析 "1200.*",很容易就可以分析出来了,完全不用考虑是不是 XXX.0 及隐藏小数点後面数值的问题。
|
||