NS版暗黑破坏神3金手指开发教程(2)

上一节,介绍了开发金手指所需的工具,这一节,正式开始简单的金手指修改

1. 首先,分别要准备好2.6.6的main.elf和原始版本待调试信息的DiabloIIINX64ra.elf,因为我们要修改的是2.6.6版本的elf,和最初带调试信息的elf数据是不一样的,不过暴雪更新游戏版本时并没有进行程序上的完全重构,因此大部分程序数据还是基本一致的,我们要做的就是要先找到原始版本的金手指地址,然后根据附近的汇编指令再找到2.6.6版本对应的地址,这个地址就是我们需要修改的数据地址,从网盘上下的2.6.6 Main文件是加密过的,所以需要用 “NS加密解密工具” 解密成完整的elf文件,DiabloIIINX64ra.elf是已经解密过的,就不用再解了,解密的方法很简单,把main文件放在同目录,然后运行“解密main.bat”就可以得到main.elf了,下面先从简单的开始

2. 现在已经万事俱备了,我们首先想要修改什么呢?对了,暗黑三人物的力量,智力,敏捷等数据不是直接影响人物的伤害么?我们想痛快地虐怪,那么就先试试修改人物属性吧,我们先打开hexworkshop, 然后打开main.elf, 比如修改力量,那么就搜索力量的英文Strength,看到好多搜索结果,没关系,我们一一查看下,发现00E50A01这个地址最可疑,因为此处Strength的出现数非常多,而且有+-*等数学运算符,我们猜测此处可能是Lua脚本的公式文本,在游戏加载后可能会被编译成字节码然后被游戏程序调用来计算人物的最终力量值,所以我们只用改这个公式就行了

3. 我们已经找到了力量公式的文件偏移地址0x00E50A01,那么下一步就是祭出神器IDA的时刻了,打开IDA Pro, 打开main.elf, 等待反汇编完成,然后点击跳转->跳转到文件偏移量 输入0x00E50A01,确定,我们就看到了力量公式所在的运行时地址0000000000E50FE7

4. 接下来,我们同步到十六进制视图,并鼠标右键同步到IDA View,我们看到了16进制的力量公式,现在我们就在这上面编辑公式吧

5. 我们在一个地方把1改成9999,也就是把力量计算公式放大了9999倍,这样我们的人物的力量值最终经过程序算出来就是原值的9999倍,修改后如下图,修改完成要右键然后点击应用更改

6. 经过上面一步,我们已经知道了需要修改的内存地址和内存数据,下一步就是制作我们的金手指代码啦,这一步就简单多了,我们只需要新建一个txt文件,命名为此游戏版本的<build id>.txt ,比如2.6.6的版本在ns金手指界面那里看到的build id,当然也可以从NS解密工具里找到(取build_id的前16个字符),然后在txt里按一定格式写下金手指代码即可,注意txt要以utf-8 无BOM编码格式存储,不是的话在notepad++里修改编码格式后保存,不然金手指界面读不出来,[...]里是该代码描述,04000000是表示4字节也就是32位的值写入,后面紧跟着的是运行时内存地址,也就是我们IDA里面显示的地址,然后是这个地址要被写入的32位值,按高低位字节顺序排列,因此和IDA Pro里显示的数据是反着的

7. 现在终于到验证我们辛苦努力成果的时候了,把txt放到ns tf卡里的相应目录,上一节有说明,然后启动暗黑三,1秒后马上切到金手指界面,选择开启力量9999倍,然后回到游戏,选择人物,进入场景查看人物状态,是不是发现人物力量变成9999倍了,好了,可以Hi起来了,下图是将力量敏捷智力体能属性均改成9999倍的效果,敏捷智力体能修改方法类似于力量公式,就不再敖述了

这一节我们知道了怎么通过Hexworkshop和IDA制作出自己的金手指代码,并且可以简单地制作出修改人物基础属性的代码,如果能耐心做到这一步,恭喜,你已经入门(入坑)了

下一节,我们将大概讲解一下人物全部属性的修改

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值