閱讀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訪問超時問題排查(續)