文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页资讯知识加油站 → gdb修改游戏方法分享

gdb修改游戏方法分享

时间:2012/3/1 9:10:59来源:www.pc6.com作者:lff我要评论(0)

5 页 第 4 页

  果然他自动跳出了一个地方,那就是 4ad2c处,我手上的COIN 由59 变为了 58, 我这里设置了R4=1,就是1个coin。那么回到IDA里面找到这个断点的程序代码吧。就是以下部分。

  __text:0004AD26 LDR R1, [R2]

  __text:0004AD28 SUBS R1, R1, R4

  __text:0004AD2A STR R1, [R2]

  __text:0004AD2C LDR R4, [R0,#4]

  仔细看他上面的一句,str就是写入内存的语句。这句话的意思是把R1寄存器里面的值(58)写入 R2寄存器值所代表的地址。你可以看到这个时候R2寄存器的值就是0X16D49C, 也就是我们找到的COIN手头值的存放地址。

  那么上语句SUBS R1, R1, R4显然就是把手头的值R1,减去购买的值,余额放回R1寄存器了。

  

  其实前面3句是最典型的了,先是读取内存值得到COIN值,放入R1寄存器,然后减去购买值,然后把余额放回原来的地址更新。

  所以这里最简单的就是把减法的语句去掉或者把R4设置为0, 那手头的COIN就不会变为负数了。甚至你可以自己改为任何COIN值。不过担心封号,所以我这里没有弄它。 其实当你知道COIN的地址后, 你直接在GDB里面设置

  set *0x16d49c=9999999, 那你已经有无限COIN了。不过还是那句,没法做成补丁分享。还是那句,自己爽比较简单,改好就行。但是要放出,还要继续想如何修改程序。

  好了,余额变为负数的地方找到了,心里就有底了。所以回过头来,继续看如何才能做出每次读取购买所需的COIN为0的补丁?

  

  我们已经知道调出大包价格的内存地址为 0x166430., 值为800. 那么如果我们换一个物品,他的价格变化了,这个内存地址的值就会变化,我只要知道在哪里变的就好了。一样的,设置监视内存断点。

  watch *0x166430, c 继续游戏,选择第一物品,那个要1000COIN.

  程序立即跳出断点了,显示是由800变为了0, 在memset 子程序里面。这里显然是reset. 然后c, 继续,他又跳出了下一个断点了, 数值由0变为了1000,哈哈,就是这里了。

  0x000461b4 in setBriefStoreItem ()

  在IDA里面找到这句语句以及他前面的部分如下

  __text:000461A8 MOVS R3, #4

  __text:000461AA MOV R0, R6

  __text:000461AC BL __Z16setBriefItemInfoP16_brief_item_infojjj ; setBriefItemInfo(_brief_item_info *,uint,uint,uint)

  __text:000461B0 LDR R3, [R4,#0xC]

  __text:000461B2

  __text:000461B2 loc_461B2 ; CODE XREF: __text:00046186j

  __text:000461B2 STR R3, [R6,#0x20]

  __text:000461B4 B loc_461D2

  可以看到他的内存修改来自于上面一句写入语句,R3寄存器的值就是购买的PRICE. 再看上面一句,

  text:000461B0 LDR R3, [R4,#0xC]

  这里就是R3寄存器的来源了,那么我只要把这句读取的语句改为设置R3为0,就万事大吉了。mov r3, #0

  把text:000461B0 LDR R3, [R4,#0xC] 改为 mov R3, #0, 就是我已放出补丁唯一修改的一个地方。

  还没有完,我们要做程序的修改了。

  

  把鼠标放在这句程序上,然后选择hex-view. 这样你就可以知道LDR r3, [r4, #0XC]的机器码代码了,为 E3 68.

  同样的,你也要知道你改为的 MOV R3, #0 的机器代码。这个可以用汇编工具做,IPOD4G帖子里面有。不过有个更简单,因为这句话很简单,所以你可以在IDA-VIEW里面找到类似的,然后在切换到HEX-VIEW里面就知道他的机器代码了。是00 23.

  所以你只要把E3 68 改为 00 23 就可以了,哈哈,很简单吧。

  我一般用WINHEX软件修改,打开那个程序文件,然后搜索e3 68 加上后面多几位红框里面的数字,以便可以找到唯一的地址 (记得要把空格去掉),然后就是把他改为00 23就行了,存盘,补丁就做好了。

  你如果把他直接拉进IPA也行,用winrar打开IPA后,放入APP目录即可,这样你的作弊版的IPA就做好了。

  这应该是我大学毕业后写得最长的一篇文章了,哈哈,感觉象在写毕业论文了,还要图文并茂。希望对你有些帮助。

  最后应该说,修改游戏最大的难题不是技术,而是自己的兴趣爱好,如果没有兴趣,那基本上是不可能改任何游戏的。只要有兴趣,那么改游戏是很有意思的事情,尤其是成功后的那种成就感和喜悦感。

  如果你真的把IPOD4G和我的这篇帖子都读完读懂了,那么说明你是很有兴趣改游戏玩的,希望早日弄成你的第一个自己的作品。

相关视频

    没有数据

相关阅读 使用GDB调试RB-tree的问题总汇流浪先知游戏攻略 流浪先知新手入门指南LOL小游戏指尖召唤师测试资格怎么获得 LOL指尖召唤师小游戏预约方lol指尖召唤师小游戏怎么玩 英雄联盟指尖召唤师小游戏介绍Wegame电脑游戏怎么用手机玩 Wegame手机玩电脑游戏教程Steam免费游戏怎么领 Steam免费游戏一键领取教程dnf防沉迷怎么解除 dnf防沉迷身份证修改教程战锤混沌祸根游戏攻略 战锤混沌祸根剧情流程攻略

文章评论
发表评论

热门文章 携号转网什么时候实行谷歌浏览器“Adobe Fl2015双11怎么抢红包_2odysseusota4win图文教

最新文章 2022蚂蚁庄园6月22日今2022蚂蚁庄园6月21日今 2022蚂蚁庄园6月20日今日答案 度量衡是我国2022蚂蚁庄园6月17日今日答案 夏季甜品烧仙2022蚂蚁庄园6月16日今日答案 为了减肥每天2022蚂蚁庄园6月15日今日答案 卫生纸和面巾

人气排行 B站答题答案大全 哔哩哔哩答题答案2019弹幕ipad3和ipad2的8大区别nfc功能是什么 nfc怎么用 NFC功能的手机有哪全国青少年禁毒知识竞赛在线答题 全国青少年bd版是什么意思?bd版和dvd版哪个好?手机cpu天梯图2020最新版11月 手机cpu性能天BD职位是什么?BD职业解析!硬盘划分主分区、扩展分区、逻辑分区、活动