修改苹果的ios游戏存档修改对手机有影响么

求高手指导苹果手机游戏(消除之星)如何更改分数?因为女朋友沉迷这款游戏,我想把分数记录调到很高的位置_百度知道
求高手指导苹果手机游戏(消除之星)如何更改分数?因为女朋友沉迷这款游戏,我想把分数记录调到很高的位置
求解 求解求 高手 指导 ! 最高追加至50分...
提问者采纳
然后新的树叶会再次萌芽.只要有树叶飞舞的地方就会有火在燃烧,那火光会照耀着村子参考答案 4
提问者评价
感谢你的回答。。Q
其他类似问题
按默认排序
其他3条回答
苹果手机 那能用塞班的把门神器
去找找 有关这款游戏的帖子
去论坛 找找
应该会有些人
做些补丁啊
或修改游戏数值
什么之类的东西
下个八门神器
手机上搜索不到这款软件啊
你看到哪个颜色的星星最多就不要消掉它,把附近离得较远的星星消掉,最后实在消不掉的时候,再将集在一起的星星一起消掉,这样保证能得高分。我才玩过两次就知道规律,你女朋友应该已经掌握了规律了.
苹果手机的相关知识
您可能关注的推广回答者:回答者:回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁只需一步,快速开始
查看: 2689|回复: 0
iPhone游戏常见修改方法总结
签到天数: 667 天[LV.9]以坛为家II
本帖最后由 Kevin.Ma. 于
12:24 编辑 【游戏修改】
由浅入深向大家介绍iphone游戏常见的几种修改方法&新手朋友也能从中得到一些认识与体会&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&还是那句话 这些技巧并不仅仅用于游戏的修改&
必要工具准备,只介绍最常用的工具与常见问题解答 Putty 中文版 &&FAQ: 1.主机名称(或IP地址)填什么? 答:你iphone的IP地址,一般填你无线路由器的IP地址 2.我已连上了无线路由,怎么知道我iphone的IP地址? 答:最简单的方法,在你的iphone手机上,点 设置-&Wi-Fi-&再点那个向右的箭头 即可看到IP地址,填好IP地址后,其他不要动,然后点Putty上的打开按钮&&&&&&&&&& 3,我点打开了,为什么秒退了? 答:那是因为你没有安装ncurses,因为我们选择的是ssh(security shell)方式连接,需要curses提供terminal library(终端库)的支持 安装方法: (1)点Cydia--&管理--&设置--&选开发者--&完成 不选开发者模式的话 会被过滤掉 (2)点搜索--&输入ncurses--&搜索并安装 (3)手动安装的话,输入 ,iphone默认一般都有这个源,选择最新版本安装,最好是最新版本,要不然还是会跳出 vbindiff (iPhone 上的十六进制查看差异及修改器,和上面的方式一样安装,搜索vbindiff,若没特别说明,都是一样的安装) &&&&&& OpenSSH (openssh) 及 OpenSSL(openssl)
在Cydia安装openssh的同时,自动安装openssl了 Darwin CC Tools (odcctools)
Diff Utilities (diffutils) (文本差异工具 diff)
adv-cmds (ps 查看进程工具)
unzip 及 zip (解压缩及压缩打包工具)
grep (grep 文本搜索工具)
less (文本查看工具)
常用按键: /&&&&-使用一个模式进行搜索,并定位到下一个匹配的文本 n&& - 向后查找下一个匹配的文本 ctrl + F - 向前移动一屏 ctrl + B - 向后移动一屏 ctrl + D - 向前移动半屏 ctrl + U - 向后移动半屏 上下方向键 上一行下一行移动 Vi IMproved&&(vim) (文本编辑工具)
vim是Linux/Unix下非常实用的编辑工具,在这些平台用惯的朋友,都有自己上手的配置文件 Linux/Unix 上 vimrc的位置 /etc/vimrc iphone 上&&&&&& vimrc的位置 /private/var/root/.vimrc 没有的话自己建立 GNU Debugger (gdb) (程序调试工具) 很多朋友最关心的就是这个问题了,怎么安装都不成功 iOS 4.3.x以上,在Cydia直接搜索gdb安装,最新版默认安装了gdb所需的库文件 运行gdb,默认会搜索&&.c&& .cpp&&这样的源文件&&就让你的iphone跑一下,这需要一定时间,结束后就能正常使用,如果跑不动了,出现死机、关机等现象,那说明最新版本的gdb不适合你的手机, 你要向iOS 4.3.x以下的用户一样手动安装,安装方法: 6. 5. 4. 3. 2. 1. 要想运行gdb的话,只能用这个低版本,注意:从下往上安装,安装完成后不要更新gdb,更新以后你的iphone又跑不动了 下载完这些包后,可以用91或者自己常用的方式来安装,弹出警告点“是”,安装失败再次安装,直到成功为止,一定要注意顺序 喜欢在命令行下安装的话 键入:apt-get install 或 dpkg -i来安装&&&& iphone上找不到apt-get命令? 答:Cydia上搜索-&Dedian-&找到APT 0.7 HTTPS Method 安装完毕就能用这个命令了&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 常见修改方法 1.修改plist文件 通过91或者ifunbox或者其他文件管理工具,找到游戏路径,其路径格式为: /var/mobile/Applications/xxxxxxx-xxx-xxx-xx-xxxxxxx/*.app/ xxxxxxx-xxx-xxx-xx-xxxxxxx为随机字符串 查看该目录下的*.plist内容,一些小游戏,游戏配置信息和游戏参数都会写在这些文件中,比如商店售价的信息等等,修改这里面的参数即能达到修改游戏的目的 比如僵尸农场的其中一个plist配置信息为:&&查找这些Key(键),修改自己想要的数值,比如growTime这个键就是生长时间,修改下面的数字(整型),是一种较简单的修改方法,这里只做简单提一下 2.修改存档 存档一般名为save.bin或*.bin这种二进制格式,其路径一般为: /var/mobile/Applications/xxxxxxx-xxx-xxx-xx-xxxxxxx/Documents/&& 在游戏中金钱,人物属性等都会保存在*.bin文件中,只要查到自己要改得数值,经过进制转换后,就能修改 单并不是所有的存档都能直接修改,因为他有防修改机制 关于存档校验: 1.游戏存档的时间和存档修改的时间不吻合. 游戏存档将只能读取 不能再保存 保存就死机 2.游戏存档的每个字节都要进行统计 也就是你只要单独变更一个字节的数据 那么存档损坏 <SPAN style="COLOR: #.过检验的方法,就是数据平衡原理 开始修改存档,我们以《最终幻想2》修改金钱为例,修改前注意备份好 SAVEDATA.SAV&&把SAVEDATA.SAV 这个存档文件复制到电脑,用16进制工具打开,16进制工具有WinHex UE GameMaster等等,这里用WinHex打开 如图所示 当前游戏的金币为400,用计算器转换为16进制,计算器就用系统自带的就行&&输入(Win+R----&calc)&&来打开计算器&&Win键就是Ctrl与Alt中间那个键,微软图标样式,不同的键盘分布情况略有不同&&<SPAN style="COLOR: #0(十进制)-----转换------190(十六进制) <SPAN style="COLOR: #0(十六进制) 等于 0190(十六进制) <SPAN style="COLOR: #0在16进制格式文件表示为:9001 (两位为一个单位,倒过来) 用WinHex打开,点望远镜(Hex) 输入9001,迅速定位9001所在位置 =700) window.open('/attachments/photo/Day_28_a76db4d285f71a09b.jpg');" border=0 src="/attachments/photo/Day_28_a76db4d285f71a09b.jpg" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';"> 如果我们要把金钱改为99999(十进制) 我们重新整理一下 <SPAN style="COLOR: #0(十进制)-------&190(十六进制)----------&十六进制文件表示为:9001 <SPAN style="COLOR: #999(十进制)--------&1869F(十六进制)--------&十六进制文件表示为:9F8601 <SPAN style="COLOR: #0变为99999,也就是9001变为9F8601 <SPAN style="COLOR: #0变为99999,增加了99599,十六进制为1850F 过游戏检验就是在哪里增加了,就要在哪里减少,始终保持数据的平衡,就这样 =700) window.open('/attachments/photo/Day_28_6ed7f04ed3587dd20.jpg');" border=0 src="/attachments/photo/Day_28_6ed7f04ed3587dd20.jpg" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';"> 用WinHex打开存档SAVEDATA.SAV ,往下走,就看到了一片片的FF FF FF,一般就在这些位置减少,理由如下: 十六进制文件表示为:9001----------&190(十六进制)----------&400(十进制) 十六进制文件表示为:FFFFFF----------&FFFFFF(十六进制)----------& 1.在十六进制文件的表示形式就是它的十六进制 2.它的十进制为位十六进制数为最大,游戏里面的数值一般不会这么大,除非你改过,不会占用其他数据,造成错误 好了,我们算算吧 <SPAN style="COLOR: #0变为99999,也就是9001变为9F8601 <SPAN style="COLOR: #0变为99999,增加了99599,十六进制为1850F, 增加了十六进制1850F,我们就要减少1850F FFFFFF(十六进制)- 1850F(十六进制) =&&FE7AF0 (十六进制) FE7AF0 (十六进制)在十六进制文件表示为:F07AFE 要改得地方: 9001变为9F8601 FFFFFF变为F07AFE =700) window.open('/attachments/photo/Day_28_5b0dabce1cc.jpg');" border=0 src="/attachments/photo/Day_28_5b0dabce1cc.jpg" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';"> =========================================================== =700) window.open('/attachments/photo/Day_28_37c49d2c.jpg');" border=0 src="/attachments/photo/Day_28_37c49d2c.jpg" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';"> 保存SAVEDATA.SAV ,上传到原游戏目录,修改成功&&FAQ: 1.要减少的数字为1850F,为什么不用FFFFF&&这5个F来减呢? 答:16进制文件数值存放格式为: FF FF FF FF FF FF FF FF FF FF 显然1850F --&18 50 F ,只能用FF FF FF来减它 FFFFF 5个F 没有这样的表示法 2.如果游戏里的金钱400,我用WinHex搜,有多个地方出现9001,我不确定到底哪个是金钱? 答:用比较法 游戏金钱是400时,存个档,复制到电脑上,命名为SAVEDATA1.SAV 打怪,金钱就会增加,比如当金钱到500时,再存个档,同样,命名为SAVEDATA2.SAV 比较 SAVEDATA1.SAV&&和 SAVEDATA2.SAV 的不同,就能得到金钱存放的具体位置&&得到:&&400 十六进制为190 低两位为90 500 十六进制为1F4 低两位为F4 所以得到存放金钱的Offset(文件偏移地址)为1224 用8为表示为
这个位置上的 1F4 就是游戏金钱500的数据 3.用GDB调试 (进阶篇) (一)数值型调试 还是以最终幻想2为例 假设你的iphone上已经安装完我所介绍的必须工具 Putty成功连接 输入 cd /&& --------进入根目录 =700) window.open('/attachments/photo/Day_28_cef477d4e6243bdc3.jpg');" border=0 src="/attachments/photo/Day_28_cef477d4e6243bdc3.jpg" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';"> 找到FinalFantasy2所在目录 方法1:输入 find -name FinalFantasy2 方法2:输入 ps ax 方法3:输入 locate FinalFantasy2&&(注意:locate要更新数据库才能使用,先打命令updatedb更新数据库,更新完毕就能用locate) 方法4:用91或ifunbox查到FinalFantasy2的路径,直接输入 cd /var/mobile/Applications/2EC589EF-A915-4699-A0EE-1BC75F1F0248 (91助手查到的 我FinalFantasy2路径,每个人的Applications/后面那段不同,是随机的 方法很多,自己选一种喜欢的方式进入FinalFantasy2目录 输入: cp FinalFantasy2.app/FinalFantasy2 FinalFantasy2.original&&&&----------备份FinalFantasy2 cp FinalFantasy2.original&&&&FinalFantasy2.v1&&&& ---------以后在FinalFantasy2.v1这个文件上做修改 输入: otool -tv FinalFantasy2.original & FinalFantasy2.original.txt&&------------反汇编FinalFantasy2的text段,重定向到FinalFantasy2.original.txt&& 用GDB调试两难 1.不能很快的定位到想要的函数名,关键词(敏感字符串)基本靠猜 2.定位成功还要分析反汇编代码,正确的分析才能明确要改的地方 提示: 反汇编工具OD=OllyDebug,一个动态追踪工具,Win下软件破解的人都知道,通过字符串查找来找到关键语句,GDB与OD类似,两个是不同平台的动态分析工具,所以用OD直接分析iphone下的软件会报错 输入:less FinalFantasy2.original.txt&&-------查找敏感字符串,定位函数名 什么是关键词(敏感字符串)? 答:敏感字符串就是你要改的数值的通俗名称,看看能不能定位到函数名 比如:金钱:money/gold/cash/wealth/coin 经验值:exp 血值/魔法值: hp/mp 升级:level/lel 买:buy/purchase 卖:sell/sale 商店:store 玩家脚步数:stepnum 刷新时间:RefreshTime&&等等 注意:敏感字符串区分大小写,很多时候明明找对单词,但还是搜不到,比如money与Money,一定要留意 如果找不到想要的函数,就用IDA列程序所有的函数名,慢慢的寻找,IDA的使用介绍见文章开头链接 输入 /Money&&&&&&-------ipod4g出的教程已经找对关键词,我们再进一步分析 按enter键开始寻找,按N键继续找寻,你会发现含有Money关键词的函数很多,没办法,只能一个一个试,一个一个分析,不对往下试,通过连续的尝试,最后来到像是要设置金钱的函数(SetMoney) =700) window.open('/attachments/photo/Day_28_edbba7bea.jpg');" border=0 src="/attachments/photo/Day_28_edbba7bea.jpg" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';"> 记录下这个函数开始的地址:0007a4ac 进入FinalFantasy2游戏,记录当前游戏的金钱为:500 输入 ps ax -------查看进程,PID为进程标示符,就是你要找的编号&&找到FinalFantasy2 游戏现时运行中的进程编号是 3399 用gdb 挂载正在运行的游戏的进程 输入 gdb -p 3399&&进入(gdb)提示符,游戏停止,声音暂停,这是正常形象 在刚才记录的地址处设置断点 输入:break *0x0007a4ac 或者&&break *0x7a4ac 或者&&b *0x0007a4ac 或者 b *0x7a4ac&&&&&&&&&&&&&&&&&&----------这四句话的意思是一样的,全称与简写而已 设置完断点后 输入 c&& -----------继续(continue) 将Final Fantasy 2 游戏进入战斗,胜利后在地址*0x0007a4ac处暂停 =700) window.open('/attachments/photo/Day_28_86eed9.jpg');" border=0 src="/attachments/photo/Day_28_86eed9.jpg" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';"> ()内本来应该显示函数名,但是我也是用低版本安装的GDB,所以这里没有显示,但这并不妨碍我们调试 输入 info reg&& ---------查看寄存器信息&&r1寄存器存放的正好是游戏金钱 (第一种方法) 输入 set $r1=99999&&&& -------------- 改变寄存器变量的值 硬性改法,这时你游戏的金钱就变了 进一步分析法: break *0x0007a4ac&& -----------设置断点,去外面打怪,然后游戏暂停 输入 x/10i $pc&&&&----------反汇编下面的十行代码 输入 stepi----------单步往下走 来到 0x7a4b4&&&&&& cmp r1 r3 处 输入 info reg 于是,得知 r1存放的是当前的金钱,r3存放的是游戏允许最大的金钱,当前金钱与最大金钱做比较,即使当前金钱超过最大金钱,处理会,你的金钱仍为
(第二种方法) 既然你知道金钱最大的额度,用第一种方法就是 set $r1= 第二种方法是改变程序的流程 把cmp r1 r3 语句变为 mov r1 r3 mov r1 r3-----------这句话的意思就是每次战斗结束后把最大的金钱赋给当前的金钱,每次战斗结束金钱数都是最大,无限金钱就是这样实现的 c ---------继续游戏 Ctrl+c --------切换到GDB 输入 q&&---------退出GDB 输入 vim armtest.s 输入 shift+: 输入 wq&&---------保存退出 输入&&as armtest.s -o armtest. otool -tv armtest.o 汇编与反汇编,查看机器码 mov r1,r3 的机器码为 e1a01003 输入 vbindiff FinalFantasy2.v1 输入G 输入 7a4bc-------------7a4bc为cmp r1,r3的Offset(文件偏移地址) 机器码 e1a01003 在文件的存放形式为 03 10 a0 e1 把 03 00 51 e1 变为 03 10 a0 e1 输入E修改 确认 按 ESC+Y --------动作要快一点,要不然就直接退出了 按&&ESC -------退出vbindiff 输入 cp FinalFantasy2.v1 FinalFantasy2.app/FinalFantasy2&& ----------替换原文件 最后进入游戏测试,成功后,每次战斗后不管金钱为多少,都是最大
重新以上步骤,输入stepi,继续往下走,来到了0x7a4bc bx lr bx lr&&---------这句指令的意思是子程序返回 继续往下走,跳到了0x3b4ac,下面的语句不好分析了, 输入 FinalFantasy2.original 输入 /0003b4ac&& --------看看这个地址在哪个函数下 按方向键上往上走,知道是在__ZN10FF2cBattle12SENRIHIN_CHKEP12thBATMonsterP6X86REG函数下 0003b4ac上面走几步,就来到了ipod4g教程里的例子了 add r1,r0,r5&& -------------这句指令的意思是 r1=r0+r5 ipod4g里教程的例子 add r1,r0,r5,#lsl 5&&-----------这句指令的意思是 r1=r0+r5*2^5 lsl的意思就是逻辑左移,lsl #5 就是逻辑左移5位,逻辑左移几位,就是2的几次方 所以 r1=r0+r5*2^5 等于 r1=r0+32*r5&& ---------32倍经验就是这样来的 所以 你就能随便改变经验倍数 我们变通一下思想 换个64倍经验来玩玩 怎么弄 当然就是 add r1,r0,r5,#lsl 6 ,就这么简单 第三种方法 (暴力搜索法) iphone 最终幻想2 里的金钱你进入游戏时就放在内存的堆(heap)里了 gdb里输入: set $x=0x800000 while (*++$x!=1480 && $x&0x880000) end&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&----------------这三句话的意思是,从内存地址0xx880000里搜索金钱1480,如果搜到就自动跳出 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&循环 跳出以后 输入 x/dw $x ----------查看内存变量里的十进制数 如果搜到0x85e28c这个内存地址存放1480这个金钱数 输入 set {int}0x85e28c=99999 &&或&& set *0x85e28c=99999&&&&&&&&&&&&&&&&&& ------------------把金钱改为99999 游戏初期,你的金钱不会太多,数值越小,在不同内存地址存放相同数值的几率很大,有可能在其他内存地址也存放着1480,你如果每个都试一遍,无疑工作量太大了 新暴力搜索法: set $x=0x800000 while (++$x && $x&0x880000) if (*$x==1480) || (*$x==200) set *$x=99999 end&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& end &&&&&&&&&&&&&&&&---------------------------这几句话的意思是从内存地址0xx880000自动搜索金钱1480,步数200步,只要是不同内存地址的相同数值,只要是含有这两个数字,统统替换为99999 分为两段: 两段 0xx880000 &&&&&&&& 0xx900000&&&&&&&&&& -----------前面段搜不到的话,用后面的段尝试 if (*$x==1480) || (*$x==200) 后面也可以添加多个条件,比如 if (*$x==1480) || (*$x==200) || (*$x==?) 问号就是你想搜索替换的数值,||后面的条件跟得越多,搜索起来就越慢,记住了 新暴力搜索法主要用于无论如何都找不到游戏断点,但又想修改游戏数值时用,是最后手段 (二)GDB条件型调试 在Win OD(动态调试工具)没有操作,空操作,就是什么都不做的指令是nop arm 32 bits nop&&的nop的指令是 mov r0,r0 机器码为:e1a00000 我们实验一下 输入 less FinalFantasy2.original.txt 输入 /Monster&&&& ---------搜索怪物有关的函数,往下搜索,我们定位到了以下函数 _ZN10FF2cBattle31btl_job_makeMonster_ConstructorEP20CSTATE_BATTLEMAINMNGj:&&&&--------制造怪物的构造函数 0002e06c&&&&&&&&e12fff1e&&&&&&&&bx&&&&&&lr __ZN10FF2cBattle30btl_job_makeMonster_DestructorEP20CSTATE_BATTLEMAINMNG:&&&& ---------制造怪物的析构函数 &&&&&&&&e12fff1e&&&&&&&&bx&&&&&&lr __ZN10FF2cBattle30btl_job_makePlayer_ConstructorEP20CSTATE_BATTLEMAINMNGj:&&&& ----------生成玩家模型的构造函数 &&&&&&&&e12fff1e&&&&&&&&bx&&&&&&lr __ZN10FF2cBattle29btl_job_makePlayer_DestructorEP20CSTATE_BATTLEMAINMNG:&&&&&&&&-----------生成玩家模型的析构函数 &&&&&&&&e12fff1e&&&&&&&&bx&&&&&&lr __ZN10FF2cBattle23btl_job_makePlayer_MainEP20CSTATE_BATTLEMAINMNG:&&&&&&&&&&&&&&&& -------------生成玩家模型的主函数 0002e07c&&&&&&&&e92d4080&&&&&&&&stmdb&& sp!, {r7, lr} &&&&&&&&e28d7000&&&&&&&&add&&&& r7, sp, #0&&&&&&; 0x0 &&&&&&&&e3a02006&&&&&&&&mov&&&& r2, #6&&; 0x6 &&&&&&&&e3a03000&&&&&&&&mov&&&& r3, #0&&; 0x0 0002e08c&&&&&&&&ebfff3a4&&&&&&&&bl&&&&&&__ZN10FF2cBattle12cstateChangeEP6CSTATEjj &&&&&&&&e3a00000&&&&&&&&mov&&&& r0, #0&&; 0x0 &&&&&&&&e8bd8080&&&&&&&&ldmia&& sp!, {r7, pc} && ...&&&&&&...&&&&&&&& ...&&&&&&&&&&&&...&&&&&&&&....&&&&&&&&&& ...&&&&&&&&&&&&...&&&&&&&&&& ...&&&&&&&& ...&&&&&&&&&&... 如果我们把前四个函数都nop掉,最后一个函数要保留,要是战场上没有玩家,没有怪物,这不是坑爹嘛,游戏就出错了 把&&e12fff1e&&&&&&bx&&&&&&lr&&&& 都变为&&&&&&e1a00000&&&& mov r0,r0 会有什么效果呢 进入战斗画面 点防御 或者 逃跑自动胜利,并且自动升级,点攻击的话会报错,因为没有怪,怎么攻击呢 这是一个条件型GDB调试的应用 再举一个例子 植物大战僵尸 里面每用一张卡片都有一定的刷新时间速度,而我们要干掉它,怎么办呢 用上面介绍的方法,找到了刷新时间的函数 __ZN5Plant14GetRefreshTimeE8SeedTypeS0_: 000dc138&&&&&&&&e92d4080&&&&&&&&stmdb&& sp!, {r7, lr} 000dc13c&&&&&&&&e28d7000&&&&&&&&add&&&& r7, sp, #0&&&&&&; 0x0 000dc140&&&&&&&&e24dd014&&&&&&&&sub&&&& sp, sp, #20&&&& ; 0x14 000dc144&&&&&&&&e58d0008&&&&&&&&str&&&& r0, [sp, #8] 000dc148&&&&&&&&e58d1004&&&&&&&&str&&&& r1, [sp, #4] 000dc14c&&&&&&&&e59d0008&&&&&&&&ldr&&&& r0, [sp, #8] 000dc150&&&&&&&&ebfe5082&&&&&&&&bl&&&&&&0x70360 000dc154&&&&&&&&e1a03000&&&&&&&&mov&&&& r3, r0 000dc158&&&&&&&&e3530000&&&&&&&&cmp&&&& r3, #0&&; 0x0 000dc15c&&&&&&&&0a000002&&&&&&&&beq&&&& 0xdc16c 000dc160&&&&&&&&e3a03000&&&&&&&&mov&&&& r3, #0&&; 0x0 000dc164&&&&&&&&e58d3000&&&&&&&&str&&&& r3, [sp] 000dc168&&&&&&&&ea000014&&&&&&&&b&&&&&& 0xdc1c0 000dc16c&&&&&&&&e59d3008&&&&&&&&ldr&&&& r3, [sp, #8] 000dc170&&&&&&&&e3530030&&&&&&&&cmp&&&& r3, #48 ; 0x30 000dc174&&&&&&&&1a00000a&&&&&&&&bne&&&& 0xdc1a4 000dc178&&&&&&&&e59d3004&&&&&&&&ldr&&&& r3, [sp, #4] 000dc17c&&&&&&&&e3730001&&&&&&&&cmn&&&& r3, #1&&; 0x1 000dc180&&&&&&&&0a000007&&&&&&&&beq&&&& 0xdc1a4 000dc184&&&&&&&&e59d0004&&&&&&&&ldr&&&& r0, [sp, #4] 000dc188&&&&&&&&ebfff8cd&&&&&&&&bl&&&&&&0xda4c4 000dc18c&&&&&&&&e1a03000&&&&&&&&mov&&&& r3, r0 000dc190&&&&&&&&e58d300c&&&&&&&&str&&&& r3, [sp, #12] 000dc194&&&&&&&&e59d300c&&&&&&&&ldr&&&& r3, [sp, #12] 000dc198&&&&&&&&e5933014&&&&&&&&ldr&&&& r3, [r3, #20] 000dc19c&&&&&&&&e58d3000&&&&&&&&str&&&& r3, [sp] 000dc1a0&&&&&&&&ea000006&&&&&&&&b&&&&&& 0xdc1c0 000dc1a4&&&&&&&&e59d0008&&&&&&&&ldr&&&& r0, [sp, #8] 000dc1a8&&&&&&&&ebfff8c5&&&&&&&&bl&&&&&&0xda4c4 000dc1ac&&&&&&&&e1a03000&&&&&&&&mov&&&& r3, r0 000dc1b0&&&&&&&&e58d3010&&&&&&&&str&&&& r3, [sp, #16] 000dc1b4&&&&&&&&e59d3010&&&&&&&&ldr&&&& r3, [sp, #16] 000dc1b8&&&&&&&&e5933014&&&&&&&&ldr&&&& r3, [r3, #20] 000dc1bc&&&&&&&&e58d3000&&&&&&&&str&&&& r3, [sp] 000dc1c0&&&&&&&&e59d3000&&&&&&&&ldr&&&& r3, [sp] 000dc1c4&&&&&&&&e1a00003&&&&&&&&mov&&&& r0, r3 000dc1c8&&&&&&&&e247d000&&&&&&&&sub&&&& sp, r7, #0&&&&&&; 0x0 000dc1cc&&&&&&&&e8bd8080&&&&&&&&ldmia&& sp!, {r7, pc} 其实很简单 只要把 第一条指令 000dc138&&&&&&&&e92d4080&&&&&&&&stmdb&& sp!, {r7, lr}&&&& 变为 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&000dc138&&&&&&&& e12fff1e&&&&&&&&&& bx lr 就完成了,bx lr 的意思就是子程序返回,刷新时间的时候要调用这个函数,而这个函数第一句话就返回了,什么都没做,当然刷新时间这个函数就等于废了, 没有时间限制的条件修改就这样完成了 当然了,你会问,能不能用 mov a0,a0 (nop) ,这是不行的,因为你第一句话虽然没有操作,但是下面的语句还在执行,由于缺少语句,游戏就会出错 假设已调试完成,便可将修改后的程序打包(ipa)发布 进入FinalFantasy2的目录 输入 cd /var/mobile/Applications/2EC589EF-A915-4699-A0EE-1BC75F1F0248 输入 mkdir Payload&& -------建立文件夹,注意大小写输入 cp -r FinalFantasy2.app Payload/&&------复制文件夹FinalFantasy2.app到Payload文件夹下 输入 zip -r FinalFantasy2_v1.XYZz.ipa *&& ---------开始打包成ipa &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&教程结束&
本帖子中包含更多资源
才可以下载或查看,没有帐号?
Powered by}

我要回帖

更多关于 ios游戏存档修改器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信