分类分类
关注+2012-03-01作者:lff
这时候跳出任何框子都选OK, 他会运行一段时间,这段时间也就是程序在左ARM的汇编的过程,做完后就是出现了程序的汇编语言了。下面就是要读汇编了。读汇编和GDB调试是最花时间的,我近年修改了有几十个游戏了,平均每次成功修改需要花8-10小时左右的时间,是不是太笨了啊我?还有很多时候是靠运气找到断点的,不是靠技术。很多时候就是要自己不断地去试,一步步走程序才能有结果的。
在FUNCTION这个TABLE里面,你可以看到所有的子程序名称。你需要自己去猜关键的修改子程序可能会是哪个?哈,很难的。主要找些关键字眼,比如“monry"/gold/exp/hp/mp/level up/buy/store/sell/coin" 这些字眼都合经验、金钱,升级有关。像救世主这个,有一个很明显的子程序名字,“add exp",很有可能就是加经验值的地方。.
然后双击它, 就进入IDA VIEW TABLE
iDA VIEW TABLE很重要, 你几乎所有的活动都是靠这里。那么这里就列出了所有的程序的汇编语言了。
在这个子程序里面按鼠标右键,选择graph view, 你可以看到程序流程。这个子程序流程比较简单,有些复杂的流程图很能帮你看清楚程序的走向。那些个判断的地方尤其是要注意的。你想,程序判断你有没有钱买东西,有没有经验值达到升级的条件,都不得依靠判断语句才能实现吗?
有没有发现这个流程里面有一个判断,CMP R0,R3, 然后跳转到了LEVEL UP子程序,很明显这里一定是判断你获得的经验值够不够升级,如果够了,就进入升级的子程序了。也就是说如果猜想正确的话,硬性修改R0,R3寄存器的值,你就可以直接升级了。那么什么时候会有经验值的变化呢?显然就是打完怪物的时候啦。所以这时候你就可以用GDB调试你的猜想了。GDB的使用不详述了,这里主要讲如何找到断点。小提示,PS AX 找到游戏进程后,就可以用GDB了。
在打怪物前设置断点,在PC的GDB里面输入break *0x6b4e4. 然后继续游戏打怪。
相关文章
更多+相同厂商
热门推荐
点击查看更多
点击查看更多
点击查看更多
说两句网友评论