PC6下载站

分类分类

gdb修改游戏方法分享

关注+2012-03-01作者:lff

3 页 第 2 页

  好了,打完怪后,果然跳出了断点。

  输入指令i r $r0 $r1 $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12, 可以查看r0-r12寄存器的值。

  

  这里可以看到r0为6200, r3为99974.

  

  完全证实了我的猜想,R0是当前的经验值,R3是你升级到下个等级时所需要的经验值。那么这时候你直接把R0的值改为99974,那么你就可以直接升级了,不用再辛苦赚经验了。

  

  好了,写到这里,基本的方法就讲完了。找断点的还有一个常用的方法是在IDA VIEW TABLE里面搜索你可能想到的关键词,然后看下相应的子程序象不象,有没有可能,这里真的要猜,要不断调试。下面以我昨晚找到免费购买顶级物品的COIN作为一个列子。

  

  既然是COIN, 那么COIN肯定就是关键词啦,这是我的第一个反应,所以就在搜索窗口输入COIN, 查找子程序。

  这样搜下来有10几个和COIN有关的子程序,那么不知道是哪个,就只能一个个试,设置相应的断点,然后再在GDB里面一个一个调试,如果你设置了断点,但是当你用COIN买东西的时候,不跳出,那么这个断点就有可能不是的。即使跳出,还要查看寄存器值,才能确认。同时读这个子程序的代码。这里没有学过汇编语言的同学一定是很困难的,因为如果看不懂指令,那真是什么都白搭。ARM汇编语言其实还是比较容易学的,找下书看看就明白了,或者上网查指令学习大学学过8086汇编和单片机的同学那就是很容易了,无非就是读写指令,跳转指令,判断指令这些关键的指令。

  好了,昨晚我试了所有的和COIN有关的子程序,很悲惨的是一个都不是,这里基本上花去了我4小时的时间,这个时候是最痛苦的,因为你找不到断点,不知道该修改哪里了。

 
不过至少说明用COIN购买顶级物品的地方不是在我试过的子程序里面,哈哈。这是4小时后得出的结论。所以,任何的修改也许最后就是那么一句话,一个简单的断点,但是背后的努力很多人是看不到的。看到这里,你是不是要给我加点分啊?
 
哈哈。

  那就只能再试下其他的可能的关键词,我试了MONEY, STORE, BUY, PURCHASE , acquire, 这些都是些常用的和购买有关的,可是都没有用,有些地方的确是会跳出断点,但是不是所需要的。 这部分又花费了一大段时间。

  再得想别的脑筋了,购买物品还有一个关键词就是ITEM, 不过要查和他有关的语句就会跳出太多的地方,一般很少用。但是这时候也只能这样了。同样在IDA VIEW里面搜索 "item", 然后按“ctrl-t" 自动搜索下一个。每到一个就先根据子程序的名字猜下会不会是他,然后再用GDB设置断点测试。结果我就这样一直试一直试,试到一个子程序叫"keypressed_TradeItem"的时候,我眼前一亮,因为keypress可能就是按下购买键的时候,何况后面还跟着TRADEITEM. 修改靠的不是技术,靠的是哥德巴赫猜想!

 

  

展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消