Android破解實戰:遊戲蜂窩3.21版本破解記錄

Editor發表於2018-09-17

遊戲蜂窩321版本破解補充

修改VIP部分見319版本的文章——[原創]android破解實戰:遊戲蜂窩3.19版本破解記錄

.method public isVip()I

    .locals 1

    .prologue

    .line 771

    invoke-virtual {p0}, Lcom/mfwfz/game/manager/LoginManager;->isLoginV70()Z

    move-result v0

    if-eqz v0, :cond_0

    .line 772

    iget-object v0, p0, Lcom/mfwfz/game/manager/LoginManager;->mInfo:Lcom/mfwfz/game/model/LoginResultInfo;

    iget v0, v0, Lcom/mfwfz/game/model/LoginResultInfo;->IsVip:I

    .line 774

    :goto_0

    const/4 v0, 0x1

    return v0

    :cond_0

    const/4 v0, 0x0

    goto :goto_0

.end method

\smali\com\mfwfz\game\fengwo\*.smail


搜尋isLoginV70 函式呼叫

修改所有isLoginV70呼叫的返回值為“1”實現單擊中間免ROOT指令碼的遊戲免登入。

\smali\com\mfwfz\game\fengwoscript\.smail


搜尋isLogin函式的所有呼叫

修改所有isLogin呼叫的返回值為“1”,繼續找到下面兩句。

iget-boolean v1, v1, Lcom/mfwfz/game/vip/bean/VipRunPermInfo;->Run:Z

const v1,0x1

if-nez v1, :cond_2


iget-boolean v1, v1, Lcom/mfwfz/game/vip/bean/VipRunPermInfo;->Try:Z

const v1,0x1

if-eqz v1, :cond_0


\smali\com\mfwfz\game\fengwoscript\model\manager\HeartAndPermManager.smali


找到checkRunPerm函式的實現

iget-boolean v2, v0, Lcom/mfwfz/game/vip/bean/VipRunPermInfo;->KickedOut:Z

const v2, 0x0

if-eqz v2, :cond_0


iget-boolean v2, v0, Lcom/mfwfz/game/vip/bean/VipRunPermInfo;->BanRun:Z

const v2, 0x0

if-nez v2, :cond_1


iget-boolean v2, v0, Lcom/mfwfz/game/vip/bean/VipRunPermInfo;->TryExpired:Z

const v2, 0x0

if-eqz v2, :cond_2


\smali\com\mfwfz\game\fengwoscript\ui\help\SzScriptInfoSetHelp.smali


找到函式setInfo的實現,修改下面

iget-boolean v1, v1, Lcom/mfwfz/game/vip/bean/VipRunPermInfo;->Run:Z

const v1, 0x1

if-nez v1, :cond_0


iget-boolean v1, v1, Lcom/mfwfz/game/vip/bean/VipRunPermInfo;->Try:Z

const v1, 0x1

if-eqz v1, :cond_3


\smali\com\mfwfz\game\fengwoscript\model\manager\HeartAndPermManager.smali


找到函式isRun的實現,Return前面新增

const/4 v1, 0x1

return v1


\smali\com\mfwfz\game\fengwoscript\presenter\ScriptInfoPresenter.smali


找到startScriptOnClick函式的實現

iget-boolean v1, v1, Lcom/mfwfz/game/vip/bean/VipRunPermInfo;->Run:Z

const v1,0x1

if-nez v1, :cond_2


iget-boolean v1, v1, Lcom/mfwfz/game/vip/bean/VipRunPermInfo;->Try:Z

const v1,0x1

if-eqz v1, :cond_0


\smali\com\mfwfz\game\fengwoscript\model\manager\HeartAndPermManager.smali


找到onEventMainThread函式實現(可以用“Lcom/mfwfz/game/vip/bean/VipScriptHeartInfo;->Status”搜尋)

iget-boolean v4, v1, Lcom/mfwfz/game/vip/bean/VipScriptHeartInfo;->IsShowMsg:Z

iput-boolean v4, v2, Lcom/mfwfz/game/vip/bean/VipAdResultInfo;->IsShowMsg:Z

.line 180

iget v4, v1, Lcom/mfwfz/game/vip/bean/VipScriptHeartInfo;->Status:I

const/4 v4, 0x3

if-ne v4, v5, :cond_2

iget v4, v1, Lcom/mfwfz/game/vip/bean/VipScriptHeartInfo;->Status:I

const/4 v5, 0x6

const/4 v4, 0x3

if-ne v4, v5, :cond_3

\smali_classes2\com\cyjh\gundam\utils\UUIDManager.smali


找到generateUUID函式的實現,函式開始新增下面:

const-string/jumbo v0, "1c59f8d2-a569-4968-ba4c-89488b3f1f34"

return-object v0


找到isExist函式,函式開始新增

const/4 v0, 0x1

return v0

\smali\com\mfwfz\game\fengwoscript\ui\help\SzScriptInfoSetHelp.smali


搜尋字串"isSupportYGJ",一些遊戲支援雲掛機有個按鈕:

iget-object v1, p0, Lcom/mfwfz/game/fengwoscript/ui/help/SzScriptInfoSetHelp;->mGoToYGJTv:Landroid/widget/LinearLayout;

if-eqz v0, :cond_2

:goto_1

const/16 v2, 0x8

invoke-virtual {v1, v2}, Landroid/widget/LinearLayout;->setVisibility(I)V

首頁按鈕,沒有網路時會出現

\res\layout\view_homepage_ad_layout.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:orientation="vertical" android:layout_width="0.0dip" android:layout_height="0.0dip"

  xmlns:andro>

    <ImageView android: android:layout_width="0.0dip" android:layout_height="0.0dip" android:src="@drawable/game_image_default_9" android:scaleType="fitXY" />

</LinearLayout>

\res\layout\home_header_layout.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:orientation="vertical" android:layout_width="0.0dip" android:layout_height="0.0dip"

  xmlns:andro>

    <com.mfwfz.game.fengwo.ui.widget.homepage.HomePageAdView android: android:layout_width="0.0dip" android:layout_height="wrap_content" />

    <android.support.v7.widget.RecyclerView android: />

    <ImageView android: android:visibility="gone" android:layout_height="0.0dip" android:src="@drawable/game_image_default" android:scaleType="fitXY" />

    <com.mfwfz.game.fengwo.ui.widget.homepage.HomeHeaderCrackGamesView android:orientation="vertical" android: android:background="#ffffffff" android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_marginBottom="0.0dip" />

    <com.mfwfz.game.fengwo.ui.widget.homepage.HomeHeadlinesLayout android: android:background="#ffffffff" android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_marginBottom="0.0dip" />

</LinearLayout>

\res\layout\ab_index_list_layout.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:orientation="vertical" android:layout_width="0.0dip" android:layout_height="0.0dip"

  xmlns:andro>

    <RelativeLayout android:orientation="horizontal" android: android:background="#00000000" >

        <RelativeLayout android: android:background="@drawable/fw_index_head_solid" android:layout_width="32.0dip" android:layout_height="32.0dip" android:layout_marginLeft="8.0dip" android:layout_centerVertical="true">

            <LinearLayout android:gravity="center" android:layout_width="32.0dip" android:layout_height="32.0dip">

                <com.mfwfz.game.fengwo.ui.widget.RoundedImageView android: android:background="@drawable/fw_nav_left_nologin_img" android:layout_width="30.0dip" android:layout_height="30.0dip" />

            </LinearLayout>

            <ImageView android: android:background="@drawable/head_img_red" android:visibility="gone" android:layout_alignParentTop="true" android:layout_alignParentRight="true" />

        </RelativeLayout>

        <RelativeLayout android: >

            <ImageView android: android:layout_centerVertical="true" />

            <TextView android: android:text="@string/fw_head_search_edit" android:layout_centerInParent="true" />

        </RelativeLayout>

        <ImageView android: android:padding="8.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/fw_index_head_code_white" android:layout_alignParentRight="true" android:layout_centerInParent="true" />

    </RelativeLayout>

    <TextView android: android:text="@string/fw_index_head_search_notice" />

</LinearLayout>

\res\layout-v17\pop_script_advance.xml

有些遊戲指令碼提示需要VIP:

Android破解實戰:遊戲蜂窩3.21版本破解記錄

/api/GetScriptsByTopic:


該介面返回的所有指令碼列表裡面一個: "IsVip": 1 改為"IsVip": 0

/api/GetRunPerm:"AntiDetectionFlag": 0  (0代表非跳過VIP檢測)

{"RunPerm": {"Run": true, "ShowAd": false, "Try": false, "TryExpired": false, "BanRun": false, "KickedOut": false}, "PlayTime": 0, "EachTryTime": 0, "ScriptInfo": {"IsEncrypt": 1, "EncryptKey": "06zFBUyZlvEbN4yE6jGbmvpdmXg1qCqn3EEtr0tVBvDzps+de47QmQrB657kdzcgZaEkq7VhD78=", "NewEncryptKey": "7+ivPvWQRaDuix9EdwvX00n/3UaliZxTRo3FnCsXi4SoG90YCknSqD8+TZNVrXL0VmRJZZOLO+8=", "ScriptPath": "http://a.rrfengwo.com/res/script/153626/afef311031b665e3a9b2325092c79cc8_153626.zip"}, "IsShowMsg": false, "BtnType": 0, "HeartbeatInterval": 600, "IsReceiveCard": false, "IsBindPhone": true, "TipInfo": null, "AntiDetectionFlag": 2, "IsTmpAccount": false}

\smali\com\mfwfz\game\fengwo\pxkj\ui\view\MainHeaderView.smali

搜尋程式碼“paramList.add(1, new RedAppButton(getContext(), "2"));”

smail裡面刪掉這句程式碼(簽到紅包)       

const-string/jumbo v8, "2"

invoke-direct {v6, v7, v8}, Lcom/mfwfz/game/fengwo/pxkj/core/models/RedAppButton;-><init>(Landroid/content/Context;Ljava/lang/String;)V

invoke-interface {p1, v11, v6}, Ljava/util/List;->add(ILjava/lang/Object;)V


下面是對模擬器的處理

<service android: android:process=":x"/>

\smali\com\mfwfz\game\fengwo\presenter\WelcomeActivityPresenter.smali


com.cyjh.gundam:x 程式重簽名後不知道為什麼會崩潰。

\com\cyjh\gundam\fengwo\presenter\WelcomeActivityPresenter.java

找到initData函式的實現,刪掉“XServerFrontProServer.toXService(BaseApplication.getInstance());”


\smali\com\mfwfz\game\application\BaseApplication.smali


找到函式onKillProcess,刪掉” XServerFrontProServer.toXServiceForType(getInstance(), 1);”

這句對應上面的X程式的結束處理

Android破解實戰:遊戲蜂窩3.21版本破解記錄


this.getHomeShortcutsLayout.setLayoutManager((RecyclerView.LayoutManager)localObject);

this.getHomeShortcutsLayout.setAdapter((RecyclerView.Adapter)localObject);

\smali\com\mfwfz\game\fengwo\rootview\FreeRootView.smali

Android破解實戰:遊戲蜂窩3.21版本破解記錄

        this.mTowebview.setVisibility(0);

        this.mYDLView.setVisibility(0);

    .line 76

    const/16 v3, 0x8

    iget-object v0, p0, Lcom/mfwfz/game/fengwo/rootview/FreeRootView;->mTowebview:Landroid/widget/TextView;

    invoke-virtual {v0, v3}, Landroid/widget/TextView;->setVisibility(I)V

    .line 77

    iget-object v0, p0, Lcom/mfwfz/game/fengwo/rootview/FreeRootView;->mYDLView:Landroid/widget/TextView;

    invoke-virtual {v0, v3}, Landroid/widget/TextView;->setVisibility(I)V

const/16 v3, 0x0

/api/GetAllTopic

Android破解實戰:遊戲蜂窩3.21版本破解記錄

                 "SportYGJ": false,

                 "SportXBY": false


\smali\com\mfwfz\game\fengwo\ui\activity\AssistantLibActivity.smali


查詢函式initData

這句“this.mPresenter = new AssistantLibPresenter(this);”後面直接返回來避免載入輔助的詳細資訊.

.method public initData()V

    .locals 8

    .prologue

    .line 84

    iget-object v0, p0, Lcom/mfwfz/game/fengwo/ui/activity/AssistantLibActivity;->searchBtn:Landroid/widget/TextView;

    invoke-static {}, Lcom/mfwfz/game/tools/preparadata/PreparaLoadManager;->getInstance()Lcom/mfwfz/game/tools/preparadata/PreparaLoadManager;

    move-result-object v1

    invoke-virtual {v1}, Lcom/mfwfz/game/tools/preparadata/PreparaLoadManager;->getSearchHint()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

    .line 85

    new-instance v0, Lcom/mfwfz/game/fengwo/presenter/AssistantLibPresenter;

    invoke-direct {v0, p0}, Lcom/mfwfz/game/fengwo/presenter/AssistantLibPresenter;-><init>(Lcom/mfwfz/game/fengwo/ui/inf/IChooseLocalGamesActivity;)V

    iput-object v0, p0, Lcom/mfwfz/game/fengwo/ui/activity/AssistantLibActivity;->mPresenter:Lcom/mfwfz/game/fengwo/presenter/AssistantLibPresenter;

    return-void

Android破解實戰:遊戲蜂窩3.21版本破解記錄

\smali\com\mfwfz\game\fengwo\ui\activity\MatchingLocalGameActivity.smali


找到handleBackEvent函式,刪掉

IntentUtil.toAssistantLibActivity(paramContext);

invoke-static {p1}, Lcom/mfwfz/game/utils/IntentUtil;->toAssistantLibActivity(Landroid/content/Context;)V

Android破解實戰:遊戲蜂窩3.21版本破解記錄

單擊返回會返回到下面.

Android破解實戰:遊戲蜂窩3.21版本破解記錄

\smali\com\mfwfz\game\fengwo\viewholder\CrackGamesHolder*.smali


搜尋toSearchForTopicResultActivity函式的呼叫,在onClick函式裡面呼叫,onClick用來響應單擊事件。onClick函式頭直接返回。

itemYgj = (TextView)this.itemView.findViewById(2131625146);

Android破解實戰:遊戲蜂窩3.21版本破解記錄

\smali\com\mfwfz\game\fengwo\pxkj\ui\dialog\RedBagDialog.smali


找到showDialog函式直接返回

.method public static showDialog(Landroid/content/Context;)V

    .locals 1

    .param p0, "context"    # Landroid/content/Context;

return-void

或者找到紅包按鈕事件“get_redbag_btn”的xml檔案,然後再找到按鈕事件的原始碼資料夾。

Android破解實戰:遊戲蜂窩3.21版本破解記錄


版本號:

 Android破解實戰:遊戲蜂窩3.21版本破解記錄



原文作者:豬會被殺掉(看雪ID)

原文連結:https://bbs.pediy.com/thread-246795.htm

轉載請註明:轉自看雪論壇




看雪閱讀推薦:


1、比特幣原始碼研讀---開篇


2、分析了個簡單的病毒, 熟悉一下16位彙編


3、某核心注入型外掛樣本原理分析。震驚!火絨慘遭利用,藍洞或成最大輸家


4、一次逆向fb尋找密碼的記錄及還原相關演算法


5、不死鳥之眼——CVE-2012-0158的常見利用姿勢



相關文章