阅读731 返回首页    go 阿里云 go 技术社区[云栖]


对棋牌游戏捕鱼达人1.01 的全程破解分析

Dump dex

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




修复

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


通天源码论坛!专注源码分享,本论坛不仅有web源码,还有棋牌源码,游戏源码,android源码! 致力于打造中国最大的源码分享平台!我们期待您的加入!只要免费注册一个账号,即可下载本站上百G,极品商业源码资源!



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


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

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



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

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

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


后记
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,看懂了 修复的时候就知道从哪下手了。

最后更新:2017-07-06 16:32:15

  上一篇:go  以后看病都用互联网?这种医疗模式你可以接受吗!
  下一篇:go  [原创]TCP的backlog导致的HBase访问超时问题排查(续)