对 捕鱼达人1.01 的全程破解分析

前言
        第一版的时候我就对捕鱼达人进行过简单的分析,详见: http://blog.sina.com.cn/s/blog_92b6d74d0102uyz1.html 。对于第二版感觉应该大同小异,但是我具体做的时候 还是遇到各种各样的问题,在好友 @晴天 的指点下,慢慢的完成了 特意记录下来,也为新的博客增加一些内容。

Dump dex

        这个步骤遇到的问题是:到最后会dump到一个a.smali文件过不去。过不去就过不去吧,提取出samli文件夹照样用。其实我们平常反编译出的smali文件有很多是无用的 即可有可无。之所以存在有时是备用,有时是第三方SDK的冗杂,所以当意识到dump出的smali文件不完整时,就提取出来试试,能够编译成功就是成功的一半了。


对 捕鱼达人1.01 的全程破解分析_第1张图片

修复

        编译时,会出现和第一版同样的错误,同样的方法修复即可。安装运行后发现,会闪退。一开始我没想过看程序LOG,感觉可能是Dump不完整造成的。是 @晴天 提醒了,看了LogCat一目了然。


对 捕鱼达人1.01 的全程破解分析_第2张图片
        关键词“fuck exit1”,并不知道具体在哪个文件里,那就用Notepad++全词匹配全文件夹搜索,出现了armeabi、armeabi-v7a两个文件夹下的libfishingjoy3.so中,表示对应不同的cpu指令集,鬼哥的说法是删除-v7a 只修改armeabi的那个就行,这里我们就不偷懒,一个一个的来。IDA出马:

对 捕鱼达人1.01 的全程破解分析_第3张图片

[plain]  view plain copy
  1. 00200C30 00DO  //修改为 00EA  

       接下来修改armeabi-v7a下的libfishingjoy3.so,

对 捕鱼达人1.01 的全程破解分析_第4张图片

对 捕鱼达人1.01 的全程破解分析_第5张图片

[plain]  view plain copy
  1. 00200150 40F07281  //修改为90909090  
       修改完之后,运行倒是可以打开了,但是加载完100%后,还是会退出,小米弹出了下面的Log

对 捕鱼达人1.01 的全程破解分析_第6张图片

       可以推断是org.cocos2dx.Controller.ChinaMobileIAPSwitch$1中的CMGCIAP初始化失败

破解内购
破解内购的方法跟第一版的一样。鉴于很多童鞋问我绕过支付界面的方法,这里我就先笼统的说几个常见的,以后有时间就专门写个帖子:
1、有限额的游戏,就直接修改限额提示的方法,让它执行到“已经购买”的操作;
2、在onbillingfinash的方法中 找到成功跳到的方法,稍作修改 或赋值、或改跳,然后复制到支付界面的方法下,一般的标识是addpayment、pay、dopay等。

对 捕鱼达人1.01 的全程破解分析_第7张图片


后记
1、试想一下,如果作者将明显输出的LogCat抹去 恐怕比较难分析出来,但须处处留心,以前我记得Native层退出的代码:
[plain]  view plain copy
  1. loc_50AC20  
  2. MOV             R0, #0  
  3. BL              nativeExit  
  4. BL              getpid  
  5. MOV             R1, #2  ; sig  
  6. BL              kill  

2、一定要认真看程序输出的Log,看懂了 修复的时候就知道从哪下手了。


你可能感兴趣的:(对 捕鱼达人1.01 的全程破解分析)