L、梦 发表于 2011-11-2 20:45:14

仙四基址查找,云天河为例

本帖最后由 L、梦 于 2011-11-2 20:45 编辑

今天突然很想玩仙剑4,顺便看看能不能做修改器。打开ce,找到的居然是数组,唉,蛋疼的程序员……
找了半天,我突然醒悟,ce是找不到的……
祭出大杀器od,小样的还不是搞定。将过程发出来,抛砖引玉。
以云天河为例
首先查找动态血量基址,我找到的是7eb490b0,查找写入改地址的代码
0043fdc5 - 89 bc 9e cc 00 00 00 - mov ,edi
蛋疼的程序员……
下面打开od,定位到地址0043fdc5,可以看到写入的地址是esi+7*4+000000cc
往上走,找esi
0043FDAE   .8DB1 54010000 LEA ESI,DWORD PTR DS:   //esi=ecx+154
接着往上走找ecx
0043FD90   .51            PUSH ECX                              //到函数头了,说明ecx来自上层call,在这里下断来到0043ed2a
继续往上看 mov ecx,ebx                                                 //ecx=ebx
现在找ebx
0043ECC4   .8BD9          MOV EBX,ECX                        //ebx=ecx
继续找ecx,上去一点是函数头了,说明ecx来自上层call,在头部下断来到
0045189B|.8D9E 54060000 LEA EBX,DWORD PTR DS:         
004518A1|.8BCB          MOV ECX,EBX                        //ecx=ebx=esi+654
那么现在要找esi
004517E6|.8BF0          MOV ESI,EAX                         //esi=eax
eax的值一般都是函数的返回值,现在就看前面的几个call了
我找到的是这个call004517D3|> \E8 B8EEFEFF   CALL PAL4.00440690   //f8跟进去
呵呵,马上就可以看到eax了:   
004406CA|> \A1 28148E00   MOV EAX,DWORD PTR DS:
云天河的血量基址:+654+154+7*4+0cc=+890
其它的就不用我说了吧……
下面找韩凌纱的数据,还是先找动态的地址,我找到的是7EB49BC4,呵呵正好等于云天河的7eb490b0+b14,
那么数组长度就是b14,
云天河的血量基址:8e1428]+890+0*b14
等级:+884+0*b14
当前经验:+888+0*b14
精:+890+0*b14
最大精:+7ac+0*b14
气:+894+0*b14
神:+898+0*b14
最大神:+7b4+0*b14
武:+668+0*b14
防:+66c+0*b14
速:+670+0*b14
运:+674+0*b14
灵:+678+0*b14
韩凌纱的血量基址:8e1428]+890+1*b14
……
后面的以此类推
将人物锁定为奔跑状态,仙剑4中人物有3中走路状态,慢走、快走、奔跑,分别由0、1、2表示,经过查找可以到看到
00427dd4 - 89 41 28 - mov ,eax
用od附加
00427DD4    8941 28         MOV DWORD PTR DS:,EAX //eax=0,1,2人物3种状态
看看下面的代码,右边的注释,case2,case1,case0
MOV DWORD PTR DS:,EAX //将eax改为2就可以锁定人物为奔跑了
呵呵,挺喜欢仙剑这游戏的

L、梦 发表于 2011-11-2 20:47:50

本帖最后由 L、梦 于 2011-11-2 20:48 编辑

那个,先说明,这是转的,只是稍作修改,谢谢我爱秘籍的liming2345

深蓝 发表于 2011-11-2 21:09:27

很牛嘛~~~~~~

L、梦 发表于 2011-11-3 12:14:30

没人要啊,看来

镜花水月 发表于 2011-11-21 05:50:40

谢谢楼主分享!

Kell 发表于 2012-2-25 23:36:39

要学汇编了吗。

77630839413 发表于 2013-5-21 14:06:05

:dizzy:现在CE和VE被封杀了,被砍了一只手了
页: [1]
查看完整版本: 仙四基址查找,云天河为例