|
其实我也是最近找来的,对于源码我真的不太通窍,可是网上有很多易语言模块和源码的。
我毕竟是个上班 族,只有午修那点时间来研究,下班~~不是得上个游戏~偶尔有个事儿之类的么~~~所以真正学习还真不多。
大家共同努力呗,真有兴趣的话,愚公总有一天能移山吧~~
报歉,今天回来晚了。
以下这个网上疯转~~
是工具 海最有用的CE教程之一。
有三篇。差不多找法。
最主要是熟练。。。
今天先上步骤,明天背包找法之二~会上图~
先以有数量的物品,如:红,蓝,注,查找的时候,不要将红蓝放到F1~F10中,这样会找到多个,再按下面的步骤进行查找:
1、将红放在背包第一个位置,蓝放在背包的第二个位置,查找红的数量,此时,会找出一大堆。
2、吃一个红,再找(一般情况下,就会只剩一个地址,如果还有多个,则再吃一个再找,直到吃剩一个为止)
3、交换红蓝的位置,你会发现,该地址的数值并不会变,哪怕红蓝的个数不一样,这说明一个问题,仓库位置存的,并不是物品的数量,由于物品的类型很多,所以,各种属性也不一样,可以判断出,一件物品,肯定是用一种自定义的结构存储,而背包的位置存放的,仅仅是物品的编号或者基地址
4、假设刚才找到的地址为A,现在查找A-1000~A这个范围的值(注意:要选中Hex),此时会找出一大堆,再交换红蓝的位置,接着查找Changed Value(变化的量),这样应该就只有一个了
5、将找到的地址,添加到CE下面的列表中,右键,选择 Find Out Write to this address
6、再交换红和蓝的位置,此时,在列表中,会出现两个列表,双击长的那个(因为背包的存放,肯定用的是数组,应该是基址+变址的方式,因此我们选择了长的那个),红色部分显示为: mov [ecx+esi*4+000000338],eax 解释一下
eax应该就是物品的地址,这个命令的作用就是将物品的地址写入背包的相应位置
查找此时ecx的值,为 0C9A4170(每次游戏启动都会不一样,所以要再找这个地址)
7、查找Hex值为 0C9A4170 此时也会找出一大堆,但是,重新启动游戏,再重复上面的方法,你会发现,前面三个,每次都有,这三个是 013F4B20 013F99E4 0452595C
可能是因为游戏启动后,有多个地方都要记录背包的位置,但这三个地址的存放的数据始终都一样,这个数据就是仓库的起始位置,因此,背包的位置应该就是:
'[013F4B20]+Esi*4+338
'[013F99E4]+Esi*4+338
'[0452595c]+Esi*4+338 三者都可以
再来看看Esi,不难猜出,这个Esi就是格子的标识,因为背包有36个位置,起始值为0
因此,Esi的取值为0~35
到此为止,背包的结果已经出来了,同样的方法,也可以找出个人仓库与综合仓库的地址,这三个里面存放的都是物品的地址
再来说说物品的存放格式
在找到背包的地址后,我们查看第一个4字节里的内存内容,并用右键选择:goto address,输入存放的地址(说明一下,如果刚才的存放地址为48 70 A7 13,则应该输入 13A77048,因为内存的数据存放是从低位到高位存储),现在转到了物品的基址,从这个地址往下,有很大一段是存放的该物品的信息,当然我们很难将所有的数据都破解出具体的意义来,不过,有些很直观的数据是很容易就找出来的,比如物品的名称,数量,价格等,具体的方法,你可以根据游戏里的数据,转换成十六进制,再到内存中去看,多对比几样,就可以找出来,这里面对成品的装备的分析可能要麻烦一些,不过多花时间,多对比几样,就应该可以找出
同鞋们。。。。CE不难,它不是语言,多实践就会熟练了。
以后改小游戏,就自然~~嘿嘿~~~~ |
|