1. 程式人生 > >Android逆向之旅--瘋狂兔子無敵跑跑 內購破解教程

Android逆向之旅--瘋狂兔子無敵跑跑 內購破解教程

感謝「一塊硬幣」同學投稿,也熱烈歡迎其他同學來投稿,分析是一種快樂,也是一種精神!

今日偶然看到一個還算熱門的遊戲,看到裡面有內購的方法。嘗試破解一下

1、拖入AK後重打包,一切順利安裝到手機上後發現黑屏了

2、然後安裝原版測試下,正常執行,那排除手機適配問題,應該就是有驗證了

3、既然這樣那我們為了確定到底驗證的哪裡,先只簽名測試下,重新安裝下,安裝手機後還是黑屏。到這裡我猜測十有八九是簽名驗證了

4、祭出四哥的工具,kstools拿出來一頓操作,然後自信滿滿的再次安裝到手機上。發現還是黑屏,這就尷尬了,看來應該不僅僅是簽名驗證了。這時候沒什麼捷徑可走了進程式碼分析吧

5、遊戲包太大,使用jadx單獨開啟dex檔案

6、然後使用Android Killer開啟apk。找到入口類後在jadx中開啟

640?wx_fmt=png

這個類通過類名不難看出只是一個閃屏,我們要分析的應該不在這裡,所以不用太關注,大致看下程式碼就行

640?wx_fmt=png

在oncreate最後執行了這個方法,看來是跳到了

640?wx_fmt=png

640?wx_fmt=png

定位到SplashScreen類中

640?wx_fmt=png

看起來也是一個閃屏,但是裡面有一些初始化和載入so的操作,進入到MobileAuth.init(this);發現走進了這個native方法裡。

640?wx_fmt=png

暫時先不管他了,繼續往下一個activity看。也就是OnyxActivity類;先看onCreate方法中:

640?wx_fmt=png

也沒有什麼可以一看看出來的驗證方法。懵逼,因為遊戲並沒有閃退,只是黑屏,看異常看不出有哪裡出了問題,所以我在這些方法下面插入log,看執行到哪一個時候卡住了。

640?wx_fmt=png

為了防止暫存器使用亂掉出錯,這裡直接在原來基礎上+2,增加兩個暫存器,增加自己的log程式碼

640?wx_fmt=png

然後再次打包執行,發現卡在了10之後,11沒有被打印出來,而且前面的日誌重複輸出,說明一直迴圈卡死了。

invoke-virtual {v2, p0},Lcom/ubisoft/OnyxEngine/OurpalmChannel;->Init(Landroid/app/Activity;)V

進到這個方法看看

640?wx_fmt=png

看著像是廣告和支付的初始化,這個方法裡有兩處初始化地方,在這兩處加完log資訊後發現卡在了

Ourpalm_Entry.getInstance(mActivity).Ourpalm_Init("2","1.0", "1.0", mListener);

進去之後我的內心是崩潰的,這麼多程式碼看的我頭大,真的不想再一個個列印了,還好猛地看到了RunSign這個jni方法,熟悉的味道,先看看這個方法

640?wx_fmt=png

就是他

640?wx_fmt=png

開啟IDA拖入so,方法在libourpalm_sdk_a.so內

640?wx_fmt=png

640?wx_fmt=png

到這兒幾乎一目瞭然了,是做了dex+簽名的效驗

640?wx_fmt=png

在checksign這個函式內也發現了退出遊戲的程式碼位置,既然這樣我們直接選擇簡單的操作方式給兩個跳轉nop掉。

640?wx_fmt=png

640?wx_fmt=png

把上面的兩條改為:C0 46(也就是NOP)

640?wx_fmt=png

改完後,再次重簽名,安裝,完美執行。

640?wx_fmt=png

接下來定位支付位置:其實剛剛分析程式碼時候已經大致看到支付位置了。為了確定還是分析下。剛剛分析到OurpalmChannel類時候,可以看到這裡他自定義了一個 ourpalm.tools.android.logs.Logs類

640?wx_fmt=png

點進去看下

640?wx_fmt=png

這裡我們把isShowLog的賦值改下

640?wx_fmt=png

這裡初始化時賦值改為true,再次打包運行遊戲,點選支付,成功列印日誌:

640?wx_fmt=png

支付頁面,我們沒登入

640?wx_fmt=png

log日誌頁面

640?wx_fmt=png

下面這個pay方法也是這個類中

640?wx_fmt=png

這就對上了,說明是這個支付方法。寫過支付的人應該都知道,支付的回撥一般在handler或者提供的介面中,這裡可以看出來他傳入了mListener這個回撥介面,我們看下這個介面初始化的地方

640?wx_fmt=png

640?wx_fmt=png

點進去OurpalmIAPListener中看下

640?wx_fmt=png

這裡就能看到支付成功的位置了,就是

OurpalmChannel.PayResultCallBackNative(true);

和上面的支付失敗也就是true/false的區別。至於為什麼不是下面的那一堆。我看了下方法內部走到最後是一些統計的東西。然後我們在執行pay的那裡,執行這個成功方法就行了。

640?wx_fmt=png

再次打包執行。點選購買,成功獲得

640?wx_fmt=png

嚴重說明

本文的目的只有一個就是學習逆向分析技巧,如果有人利用本文技術進行非法操作帶來的後果都是操作者自己承擔,和本文以及本文作者沒有任何關係,本文涉及到的程式碼專案可以去編碼美麗小密圈自取,長按下方二維碼加入小密圈和作者一起學習探討技術

640?wx_fmt=png

手機檢視文章不方便,可以網頁看

http://www.520monkey.com

《Android應用安全防護和逆向分析》

640?wx_fmt=jpeg

長按下面

相關推薦

Android逆向--瘋狂兔子無敵 破解教程

感謝「一塊硬幣」同學投稿,也熱烈歡迎其他同學來投稿,分析是一種快樂,也是一種精神!今日偶然看到一

Android逆向---靜態方式分析破解視頻編輯應用「Vue」水印問題

https http mpeg 朋友圈 無需 爆破 資料 不可 fill 一、故事背景 現在很多人都喜歡玩文藝,特別是我身邊的UI們,拍照一分鐘修圖半小時。就是為了能夠在朋友圈顯得逼格高,不過的確是挺好看的,修圖的軟件太多了就不多說了,而且一般都沒有水印啥的。相比較短視頻有

Android逆向---Hook神器家族的Frida工具使用詳解

常見 fin () 文件的 數值 isp extern dex文件 所有 一、前言 在逆向過程中有一個Hook神器是必不可少的工具,之前已經介紹了Xposed和Substrate了,不了解的同學可以看這兩篇文章:Android中Hook神器Xposed工具介紹 和 Andr

Android逆向---動態方式破解apk前奏篇 Eclipse動態除錯smail原始碼

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android逆向---靜態方式破解微信獲取聊天記錄和通訊錄資訊

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android逆向---Android應用的漢化功能 修改SO中的字串內容

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android逆向---靜態分析技術來破解Apk

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android逆向---抖音火山視訊的Native註冊混淆函式獲取方法

一、靜態分析 最近在小密圈中有很多同學都在諮詢有時候有些應用的動態註冊Native函式,在分析so之後發現找不到真的實現函式功能地方,我們知道有時候為了安全考慮會動態註冊Native函式,但是如果只是這麼做的話就會非常簡單,比如這樣的: 這樣的我們熟知Reigster

Android逆向---動態方式破解apk終極篇(加固apk破解方式)

一、前言 今天總算迎來了破解系列的最後一篇文章了,之前的兩篇文章分別為: 第一篇:如何使用Eclipse動態除錯smali原始碼  第二篇:如何使用IDA動態除錯SO檔案 現在要說的就是最後一篇了,如何應對Android中一些加固apk安全防護,在之前的兩篇破

Android逆向---解析編譯之後的Resource arsc檔案格式

                一、前言快過年了,先提前祝賀大家新年快樂,這篇文章也是今年最後一篇了。今天我們繼續來看逆向的相關知識,前篇文章中我們介紹瞭如何解析Android中編譯之後的AndroidManifest.xml檔案格式:http://blog.csdn.net/jiangwei09104100

Android逆向---動態方式破解apk進階篇 IDA除錯so原始碼

                一、前言今天我們繼續來看破解apk的相關知識,在前一篇:Eclipse動態除錯smali原始碼破解apk 我們今天主要來看如何使用IDA來除錯Android中的native原始碼,因為現在一些app,為了安全或者效率問題,會把一些重要的功能放到native層,那麼這樣一來,我們

Android逆向---SO(ELF)檔案格式詳解

第一、前言從今天開始我們正式開始Android的逆向之旅,關於逆向的相關知識,想必大家都不陌生了,逆向領域是一個充滿挑戰和神祕的領域。作為一名Android開發者,每個人都想去探索這個領域,因為一旦你破解了別人的內容,成就感肯定爆棚,不過相反的是,我們不僅要研究破解之道,也要

Android逆向---Android手機端破解神器MT的VIP功能破解教程

一、前言在破解app的時候,我們現在幾乎都是在PC端進行操作,但是之前bin神的MT管理器,可以在手機端直接破解,不過也有很大的侷限性,但是對於一些簡單的app破解沒問題的。這個工具其實原理也很簡單,就

Android逆向---動態方式破解apk前奏篇(Eclipse動態除錯smail原始碼)

一、前言今天我們開始apk破解的另外一種方式:動態程式碼除錯破解,之前其實已經在一篇文章中說到如何破解apk了:Android中使用靜態方式破解Apk  主要採用的是靜態方式,步驟也很簡單,首先使用ap

Android逆向---破解一款永久免費網路訪問工具

一、前言因為最近個人需要,想在手機上使用"高階搜尋",但是找了一圈發現都是需要收費的網路工具,奈何我沒錢,所以只能通過專業技能弄一個破解版的。二、應用分析下面就直接奔入主題。首先我們看到到期介面如下:提

Android逆向---基於對so中的section加密技術實現so加固

致謝:一、前言好長時間沒有更新文章了,主要還是工作上的事,連續加班一個月,沒有時間研究了,只有週末有時間,來看一下,不過我還是延續之前的文章,繼續我們的逆向之旅,今天我們要來看一下如何通過對so加密,在介紹本篇文章之前的話,一定要先閱讀之前的文章:so檔案格式詳解以及如何解析

Android逆向Android手機端破解神器MT的VIP功能破解教程

一、前言 在破解app的時候,我們現在幾乎都是在PC端進行操作,但是之前bin神的MT管理器,可以在手機端直接破解,不過也有很大的侷限性,但是對於一些簡單的app破解沒問題的。這個工具其實原理也很簡單,就是解析apk中的dex,arsc等檔案,然後支援修改其中的類方法資

Android逆向---Native層的Hook神器Cydia Substrate使用詳解

一、前言在之前已經介紹過了Android中一款hook神器Xposed,那個框架使用非常簡單,方法也就那幾個,其實最主要的是我們如何找到一個想要hook的應用的那個突破點。需要逆向分析app即可。不瞭解Xposed框架的同學可以檢視:Android中hook神器Xposed使用詳解;關於hook使用以及原理

Android逆向Android應用的漢化功能(修改SO中的字串內容)

本文轉載自趙四大神 一、前言 今天我們繼續來講述逆向的知識,今天我們來講什麼呢?我們在前一篇文章中介紹了關於SO檔案的格式,今天我們繼續這個話題來看看如何修改SO檔案中的內容,看一下我們研究的主題: 需求:想漢化一個Apk 思路:漢化,想必大家都瞭解,老外開發的

Android逆向---Android中分析某手短視訊的資料請求加密協議(IDA靜態分析SO)第三篇

一、逆向分析在之前的兩篇文章中,我們已經介紹了短視訊四小龍的某音,某山,某拍的資料請求加密協議,不瞭解的同學可以點選檢視:;那麼今天繼續最後一個短視訊那就是某手,不多說了,還是老規矩直接抓包找入口:看到